使用代理连接远程主机
记录了如何使用代理 SSH 到远程主机。
方式一
使用 Socks5 代理。
假设在本地端口 10808
上有一个 Socks5 代理服务。打开或创建 ~/.ssh/config
文件,写入以下配置:
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 时:
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
文件,写入以下配置:
Host ${Target}
HostName ${Target}
ProxyCommand ssh -W %h:%p ${Proxy}
注意,将 ${Target} 和 ${Proxy} 替换为真实的 Target 和 Proxy 的地址,例如通过 proxy.example.com 访问 github.com 时:
Host github.com
HostName github.com
ProxyCommand ssh -W %h:%p proxy.example.com