通常 SSH SOCKS 隧道让笔记本电脑获得服务器的网络出口。反向动态转发把这一安排反过来:远程机器上的程序可以使用你的 SSH 客户端所在网络。

在支持无目标远程转发的 OpenSSH 客户端上:

ssh -N -R 127.0.0.1:1080 [email protected]

SOCKS 监听器位于 remote.example.net,绑定在其回环地址上。那里的程序使用 127.0.0.1:1080。目标连接经由 SSH 回到客户端一侧,并从运行客户端的那一端发起。

先看方向,再看 IP

‎-R 的文档让省略目标这一点变得关键。带 port:host:hostport 的写法是固定转发,而非动态转发。不要假定老版本客户端支持较短的动态形式。

对外 IP 是客户端侧网络为这些连接所使用的地址。位于家用路由器之后的笔记本可能通过路由器转换后的公网地址出去。它并不自动就是 SSH 服务器的 IP,也不是直接分配给笔记本的地址。

让远程监听器保持受限。通配符绑定可能在服务器策略允许下让其他机器把你的客户端侧网络当作出口。即便是回环地址,也可能对远程主机上其他符合条件的进程可用;它不是单个进程的私有秘密。

对于受限的目标集合,请查看 PermitRemoteOpen 以及服务器的转发策略。这条路径还取决于你的客户端保持在线。该连接一关闭,远程代理路径就消失。反向转发改变的是连接的发起位置;它并不提供独立于 SSH 会话的单独代理。

相关文章