通过代理在 Linux 中通过 SSH 客户端连接到主机

Agu*_*gus 3 linux ssh proxy

我真的很挣扎。

我的主机 (A) 在代理/防火墙 (PF) 后面,需要连接到主机 H。

代理配置了 HTTP/FTP/SOCK 代理,我在 Web 浏览器、wget 等中配置没有问题。

但是当我使用...

ssh H //to connect my host 
Run Code Online (Sandbox Code Playgroud)

我没有成功通过代理。它似乎尝试直接连接而不是通过 PF。

我正在使用 Ubuntu 12.10。

Sté*_*las 7

ssh没有本SOCKS机客户端支持,您需要为此使用 a ProxyCommand,例如socat

ssh -o ProxyCommand='socat - SOCKS4A:myproxy:%h:%p,socksuser=nobody' user@host
Run Code Online (Sandbox Code Playgroud)

或者使用诸如tsocksdante之类的东西socksify来透明地将 SOCKS 用于 TCP 流量。

对于 SOCKS5 与socat2:

ssh -o ProxyCommand='socat - "SOCKS5:%h:%p|tcp:myproxy:1080"' user@host
Run Code Online (Sandbox Code Playgroud)

对于CONNECT带有socat2 的HTTP 代理方法:

ssh -o ProxyCommand='socat - "PROXY:%h:%p|tcp:myproxy:80"' user@host
Run Code Online (Sandbox Code Playgroud)