SSH使用代理连接

文章目录
  1. 1. 1. 配置ProxyCommand选项
  2. 2. 2. 使用xshell配置代理

使用ssh连接服务器,有时候我们需要使用代理来连接目标服务器。这时候有两个方法可以达到这个目的:

  1. 使用ssh的ProxyCommand选项
  2. 使用xshell代理

1. 配置ProxyCommand选项

ssh可以通过使用ProxyCommand设置代理

1
ssh root@192.168.33.10 -o "ProxyCommand=nc -X connect -x 127.0.0.1:10080 %h %p"

其中192.168.33.10是目的服务器ip,%h表示目标地址即192.168.33.10%p表示目标地址端口,默认22

ProxyCommand本质上使用的是nc这个命令来设置代理。下面使用代理服务10.2.3.4的8080来访问目标服务host.example.com的80端口

1
nc -x10.2.3.4:8080 -Xconnect host.example.com 80

我们可以把上面配置写在~/.ssh/config文件中,那么每次ssh连接服务器时候,都会使用config配置中的代理:

1
2
Host 192.168.33.10
ProxyCommand nc -X connect -x 127.0.0.1:10080 %h %p

记得将config权限设置成644,否则将报错:Bad owner or permissions

1
chmod 644 ~/.ssh/config

然后使用下面命令连接服务器

1
ssh root@192.168.33.10

最后我们在目标服务器运行last命令来检查代理连接是否OK。

2. 使用xshell配置代理

xshell是一个很好用的ssh客户端。它支持代理连接。如果我们使用xshell来连接服务器,那么就可以设置【连接->代理】来使用代理

xshell使用代理