Contents

ssh使用代理登录及创建隧道

两种方式

  • 使用Xshell或者SecureCRT
  • 命令行

工具获取

  • 使用命令行时,windows需要connect.exe;linux需要netcat。后者下载方便,先提供前者下载链接(360会报有风险,我用着没事): connect.exe
  • 下载完成后放到 C:\Windows\System32 文件夹,或者自行配置环境变量

Xshell连接

先与普通ssh连接一样

再在 连接->代理 里点击 浏览->添加代理;注意选择代理的类型

隧道

  • 访问源端口,即可访问到目标端口;
  • 连接->ssh->隧道 里可直接添加;
  • 查看->隧道窗格->转移规则 中可看到隧道是否建立成功
  • PS:如果是有用WSL2,需要访问本地隧道端口,需要使用主机地址加端口

命令行

windows

  • 先找到ssh文件夹,我的是在

C:\Users\Administrator.ssh

  • 编辑 config 文件 ,替换掉中文部分;connect 命令中的参数 -S 是指定使用 socks 5 协议,也可以使用 -H 来使用 HTTP 协议来代理
1
2
3
4
5
6
7
Host 一个代号而已
HostName 需要ssh上去的那台服务器地址
User 用户名
Port 端口
PreferredAuthentications publickey
IdentityFile ~/.ssh/密钥文件
ProxyCommand connect -H 代理服务器的地址:端口 %h %p
  • 建立隧道(源端口:目标)
1
ssh -fNg -L 8084:127.0.0.1:9090 {config文件中的Host}

linux

  • 连接同上,ProxyCommand 命令改为,其中 nc 命令中的参数 -X 5 指定代理协议为 socks 5 ,如果是 socks 4 则写为 -X 4 ,如果是 HTTPS 代理则为 -X connect:
1
 nc -X connect -x 代理服务器的地址:端口 %h %p
  • 建立隧道(源:目标)
1
ssh -L localhost:8084:127.0.0.1:9090 -N -f {config文件中的Host}

参考

coffee