使用代理连接远程主机

使用代理连接远程主机

本文介绍了如何使用代理 SSH 到远程主机。

方式一

使用 Socks5 代理。

假设在本地端口 10808 上有一个 Socks5 代理服务。打开或创建 ~/.ssh/config 文件,写入以下配置:

1
2
3
4
5
6
Host ${Target}
HostName ${Target}
# Windows
ProxyCommand connect -a none -S 127.0.0.1:10808 %h %p
# Linux or MacOS
#ProxyCommand nc -X 5 -x 127.0.0.1:10808 %h %p

注意,需要将 ${Target} 替换为真实的 Target 的地址,例如访问 github.com 时:

1
2
3
4
5
6
Host github.com
HostName github.com
# Windows
ProxyCommand connect -a none -S 127.0.0.1:10808 %h %p
# Linux or MacOS
#ProxyCommand nc -X 5 -x 127.0.0.1:10808 %h %p

方式二

使用 SSH 代理。

假设有一台可连接的 Proxy 主机,我们可以通过 SSH 代理,先连接到 Proxy,再连接到 Target。打开或创建 ~/.ssh/config 文件,写入以下配置:

1
2
3
Host ${Target}
HostName ${Target}
ProxyCommand ssh -W %h:%p ${Proxy}

注意,将 ${Target} 和 ${Proxy} 替换为真实的 Target 和 Proxy 的地址,例如通过 proxy.example.com 访问 github.com 时:

1
2
3
Host github.com
HostName github.com
ProxyCommand ssh -W %h:%p proxy.example.com