如何设置 ssh -D 的反向操作?

如何设置 ssh -D 的反向操作?

我有两台机器:我的笔记本电脑和一台远程服务器。服务器位于防火墙后面,只允许传入的 ssh 连接。我可以使用笔记本电脑上的 ssh 登录到服务器,没有任何问题。由于我不想(不能)更改防火墙,我仍然希望能够apt-get upgrade在服务器上运行类似的命令,并且认为我可以轻松地执行“反向”操作ssh -D 1234 user@remote- 即将 更改-D为其他内容,以便在远程端获得可用的“反向 socks 代理”。(在设置正确的环境变量后,我可以稍后使用它。)

两台机器都运行 Ubuntu 15.04,并且我使用 OpenSSH。

我应该发出什么命令(或哪些命令)来设置 SSH 隧道,该隧道在我这边(可以访问互联网的笔记本电脑)有一个代理,并且远程服务器(仅接受端口 22 上的传入 tcp)?

答案1

OpenSSH 7.6引入了反向动态代理作为原生选项。它完全在客户端实现,因此服务器不需要更新。

ssh -R 1080 server

答案2

我刚刚意识到我可以用两个命令来解决这个问题。在笔记本电脑上,建立一个带有隧道的端口,连接到笔记本电脑:

ssh -R 10002:localhost:22 user_server@server

并在服务器上打开代理,使用该隧道:

ssh -D 8080 -p 10002 user_laptop@localhost

相关内容