通过多台机器建立 SSH 隧道(用于 SOCKS)

通过多台机器建立 SSH 隧道(用于 SOCKS)

我看到过有关通过多台机器建立 SSH 隧道的问题,但我想建立 SOCKS 连接隧道。

通常我会使用类似的ssh -C2qTnN -D 8080 username@remote_machine方法使本地端口 8080 成为通过远程计算机的 SOCKS 隧道。我想从 machine2 上的笔记本电脑打开一个袜子连接,该连接只能从 machine1 通过 SSH 访问。

因此,我想我希望在 machine1 上运行该命令,以便将本地端口 8080 重定向到 machine2,并以某种方式将 machine1 上的 8080 通过管道返回到笔记本电脑上的本地端口,而不是正常意义上的隧道 SSH 连接。

答案1

所以,如果我理解正确的话,你可以从机器 1 ssh 到机器 2,但不能从你的笔记本电脑(你可以从笔记本电脑 ssh 到机器 1)。您想在机器 1 上安装一个袜子服务器并从您的笔记本电脑上使用它吗?所以看起来您所需要的只是在笔记本电脑上运行 8080: 端口转发:

ssh -nL 8080:localhost:8080 machine1 ssh -C2qnN -D 8080 username@machine2

答案2

这个问题的 2018+ 答案将是RemoteCommand选项中指定~/.ssh/config

Host proxy
    Hostname ma.ch.in.e1
    RemoteCommand ssh -C2qnN -D 8080 username@machine2
    LocalForward 8080 localhost:8080

这需要OpenSSH 7.6从 11/2017 或之后。之前的版本需要使用@StéphaneChazelas 的答案。

如果您还想machine1在不启动代理的情况下进行连接,只需添加一个别名,例如m1

Host m1
    Hostname ma.ch.in.e1

相关内容