假设有主机A
和B
。根据其 IP 地址A
允许 SSH 访问。现在考虑另一台主机。无权访问,但如果我们可以将其流量路由到,则可以访问。问题是,如何进行这种地址转换?没有两台主机位于同一个 LAN 上。B
C
C
B
A
C
B
我的第一个想法是使用 iptables 进行 SNAT A
:
iptables -t nat -A POSTROUTING --protocol tcp --source C --destination B --sport 7777 --dport 22 -j SNAT A
这意味着C
应该尝试连接,A:7777
但我意识到在 SNAT 之前路由数据包会破坏一切,因此地址转换应该在 PREROUTING 中进行——不幸的是这是不可能的。另一个想法是设置 VPN,但我认为这太复杂了。有没有一种巧妙的方法可以做到这一点,最好使用像 iptables 这样干净的东西?