把 SOCKS 出口放在最后一跳 SSH 上
将 SSH 跳板主机传输与本地动态转发结合,同时让最终的网站连接停留在预期的网关。
把最后一台 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 监听器,那么用固定转发去连那个监听器就是另一种安排。