如何将 SSH 与 SOCKS 5 代理一起使用?

Rus*_*mur 51 linux ssh cygwin proxy socks

我通过 PuTTY 设置了一个 SOCKS5 代理,端口 7777 配置为动态端口。我可以通过配置 firefox/filezilla/etc 使用 SOCKS 代理localhost和 port来使用它们7777。但是我不知道如何使用动态端口 ssh(通过 Cygwin)到远程服务器。这可能吗?

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

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

    ProxyCommand /usr/bin/nc -X connect -x 127.0.0.1:7777 %h %p
    
    Run Code Online (Sandbox Code Playgroud)
  2. 运行 ssh -p22 user@remotehost

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

小智 47

您正在使用 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
Run Code Online (Sandbox Code Playgroud)

或者干脆:

ProxyCommand /usr/bin/nc -x 127.0.0.1:7777 %h %p
Run Code Online (Sandbox Code Playgroud)

我希望它有帮助。

  • 值得注意的是“netcat-traditional”不起作用。为此目的安装“netcat-openbsd”。 (2认同)

小智 16

ssh -o ProxyCommand='nc --proxy-type socks4 --proxy 127.0.0.1:9050 %h %p' user@host
Run Code Online (Sandbox Code Playgroud)

fc19 x86_64,Ncat:版本 6.25

  • 您能否对此添加更多解释以说明*为什么*这是解决方案。 (4认同)
  • 这是 [nmap](https://en.wikipedia.org/wiki/Nmap) `ncat` 程序(在 Ubuntu 和 Debian 等 APT 系统上通过 `apt install nmap` 来实现),它与 [netcat]( https://en.wikipedia.org/wiki/Netcat)(无论是 netcat-openbsd 还是 Hobbit 的 netcat-traditional)。 (2认同)

小智 6

tsocks ( http://tsocks.sourceforge.net/ ) 是一个很好的包装器,它使用 LD_PRELOAD 使任何程序透明地使用 SOCKS 代理:

tsocks ssh example.com
Run Code Online (Sandbox Code Playgroud)

正常工作,记得在/etc/tsocks.conf中配置SOCKS代理IP