把最后一台 SSH 服务器配置为主机,并将中间服务器放进 ProxyJump:

Host proxy-exit
    HostName exit.example
    User operator
    ProxyJump [email protected]
    DynamicForward 127.0.0.1:1080

在这些主机上具备已授权账户后,启动 ssh -N proxy-exit。将本地应用配置为使用 127.0.0.1:1080 上的 SOCKS。监听器位于客户端;SSH 连接到达 exit.example,中间经过 jump.example。

所请求的网站连接从最后一跳 SSH 会话的远端打开——exit.example。跳板只负责把 SSH 传输带到那台主机,并不会仅仅因为它是第一台可达的机器就成为 SOCKS 出口。

目标端看到的是出口主机的路由以及任何 NAT 所选择的地址,它不必与主机名对应的登录地址一致。两台服务器都需要各自角色所要求的转发权限,主机密钥校验仍然适用于预期的 SSH 端点。

该配置通过SSH 动态转发建立 SOCKS 服务。如果网关已经在运行独立的 SOCKS 监听器,那么用固定转发去连那个监听器就是另一种安排。

相关文章