通过 SSH 连接 VPN 后面的服务器

通过 SSH 连接 VPN 后面的服务器

我有两台服务器,服务器 A 和服务器 B。服务器 B 充当服务器 A 的 VPN。我正在尝试找出从第三台计算机直接 ssh 进入服务器 A 的方法,即使它位于服务器 B 的防火墙后面。

Sever A:
IP: 73.85.87.81
sshport: 222

Server B:
IP: 109.192.97.168
sshport: 22

我注意到我可以通过 VPN 进入服务器 B,然后 ssh 到服务器 A,或者通过 ssh 进入服务器 B,然后 ssh 到服务器 A,但我宁愿 ssh 一次并最终通过端口 222 到达服务器 A。

有没有什么方法可以设置,当我 ssh 109.192.97.168:222 时最终到达 73.85.87.81:222?

我不想 ssh 进入服务器 B,然后从那里 ssh 进入服务器 A。我更希望转发端口以允许我直接 ssh 到服务器 A。

答案1

使用IPTABLES您可以完成您想要做的事情:

在 109.192.97.168 (服务器 B) 上运行这些规则

iptables -t nat -A PREROUTING -d 109.192.97.168 -p tcp --dport 222 -j DNAT --to-d 73.85.87.81:222
iptables -t nat -A POSTROUTING -d 73.85.87.81 -p tcp --dport 222 -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward

解释:

  • 现在,您可以通过 ssh 在 109.192.97.168 的 222 端口上访问服务器 A
  • 第一条规则是将指定到服务器 A 端口 222 的流量重定向到服务器 B 端口 222
  • 第二条规则用于 MASQUERADE(转换传出流量以使用路由连接接口的 IP 地址)
  • 第三条规则用于启用 IP 转发(如果尚未启用)

相关内容