我有一个通过 PuTTY 设置的 SOCKS5 代理,端口 7777 配置为动态端口。我可以通过配置 firefox/filezilla/etc 来使用带有localhost
端口的 SOCKS 代理7777
。但我不知道如何使用动态端口通过 Cygwin ssh 连接到远程服务器。这可能吗?
我已尝试ProxyCommand
通过以下方法使用。
~/.ssh/config
使用以下行创建:ProxyCommand /usr/bin/nc -X connect -x 127.0.0.1:7777 %h %p
- 运行 ssh -p22 用户@远程主机
我得到的信息是ssh_exchange_identification: Connection closed by remote host
答案1
您正在使用“connect”作为 HTTPS 的代理版本,这是来自 man nc:
-X proxy_version 要求 nc 在与代理服务器通信时使用指定的协议。支持的协议包括“4”(SOCKS v.4)、“5”(SOCKS v.5)和“connect”(HTTPS 代理)。如果未指定协议,则使用 SOCKS 版本 5。
因此您应该使用以下命令来使用 SOCKS 5:
ProxyCommand /usr/bin/nc -X 5 -x 127.0.0.1:7777 %h %p
或者简单来说:
ProxyCommand /usr/bin/nc -x 127.0.0.1:7777 %h %p
我希望它有帮助。
答案2
ssh -o ProxyCommand='nc --proxy-type socks4 --proxy 127.0.0.1:9050 %h %p' user@host
fc19 x86_64,Ncat:版本 6.25
答案3
袜子(http://tsocks.sourceforge.net/) 是一个很好的包装器,它使用 LD_PRELOAD 使任何程序透明地使用 SOCKS 代理:
tsocks ssh example.com
只需记住在/etc/tsocks.conf
答案4
以下命令即可完成,只需使用 nc:
ssh examplehost.com -o "ProxyCommand=nc --proxy localhost:7000 %h %p"
默认是HTTP代理,有一个HTTP代理在端口7000上运行。