如何在SOCKS 5代理中使用SSH?


31

我通过PuTTY设置了SOCKS5代理,端口7777配置为动态端口。我可以使用firefox / filezilla / etc配置它们以使用带localhost端口的SOCKS代理7777。但我无法弄清楚如何使用动态端口ssh(通过Cygwin)到远程服务器。这可能吗?

我试过ProxyCommand通过以下方法使用。

  1. ~/.ssh/config使用以下行创建:

    ProxyCommand /usr/bin/nc -X connect -x 127.0.0.1:7777 %h %p
    
  2. 运行ssh -p22 user @ remotehost

我得到的信息是 ssh_exchange_identification: Connection closed by remote host


1
要制作一个不支持SOCKS的程序通过SOCKS,你可以使用一个所谓的proxifer; 请参阅en.wikipedia.org/wiki/Comparison_of_proxifiers。特别是,我推荐我的开源tun2socks proxifer(code.google.com/p/badvpn/wiki/tun2socks)。
Ambroz Bizjak

感谢Ambroz的评论。我需要它在cygwin中工作,我从维基百科页面上看到,它提到的所有提到的内容都没有在cygwin中实现或者不适用。有没有办法让代理商在cygwin中工作?

你不需要它专门支持Cygwin。Cygwin程序最终只是Windows程序,但是作为库实现了POSIX接口。如果一个proxifier在Windows上工作,它应该能够很好地代理Cygwin程序。
Ambroz Bizjak

Answers:


28

您使用HTTPS的'connect'作为代理版本,这是来自man nc:

-X proxy_version请求nc在与代理服务器通信时应使用指定的协议。支持的协议是“4”(SOCKS v.4),“5”(SOCKS v.5)和“连接”(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

我希望它有所帮助。


谢谢Saman,这很有效!另外,感谢您的解释,它有所帮助。

ProxyCommand一定是你的第一行~/.ssh/config', or else nested inside a specify Host`部分。不确定为什么。如果它是在最后一行它不工作~/.ssh/config
亚伦McDaid

@AaronMcDaid:From man ssh_config:“对于每个参数,将使用第一个获得的值。” 因此......全局设置需要任何Host部分之前。最后一行~/.ssh/config是最后一部分的Host一部分。
mpb

值得一提的是netcat在/bin/ncDebian和Ubuntu上。
Per Lundberg

10
ssh -o ProxyCommand='nc --proxy-type socks4 --proxy 127.0.0.1:9050 %h %p' user@host

fc19 x86_64,Ncat:版本6.25


只是好奇 - 为什么proxy-type socks4
嫌疑人2013年

2
你能为此添加一些解释来说明为什么它是解决方案。
ChrisF 2013年

1
@ChrisF它与已接受的解决方案相同,但它是单行的!无需修改任何配置文件。
j123b567 2015年

1
这是nmap ncat程序(来自apt install nmapAPT系统,如Ubuntu和Debian),它与netcat不同(无论是netcat-openbsd还是Hobbit的netcat-traditional)。
Adam Katz

1
@suspectus与@Adam Katz评论相关,这proxy-typesocks4因为nmap ncat程序直到最近才支持sock5。事实上,这是一个问题,即使是现在(NOV 2017),作为RHEL 7 / Centos的7切换到nmap包,但使用旧的构建不支持SOCKS5
兰德尔


1

以下命令将执行,只使用nc:

ssh examplehost.com -o "ProxyCommand=nc --proxy localhost:7000 %h %p"

默认为HTTP代理,端口7000上运行HTTP代理。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.