通过带有端口转发的家庭路由器的 SSH

ben*_*ann 2 ssh router port-forwarding

我可以使用它的内部 IP 地址(如 192.168.10.2)从我的家庭网络中通过 SSH 连接到我的 linux 机器。或者从外部,我可以通过我的路由器上的端口转发通过我的外部 IP 地址(如 74.23.43.98)进行连接,我已设置将端口 22 上的传入连接转发到内部地址 192.168.10.2。但是,如果我在家,则无法通过外部 IP 地址进行连接。这仅适用于我的网络外部。这是普遍真实的还是我的特定摩托罗拉路由器的特点?

谢谢

wom*_*ble 9

这是一个与 NAT 和本地网络相关的普遍问题。基本上,当路由器将 74.23.43.98 重写为 192.168.10.2 时,源地址不会被重写,因此目标机器将数据包直接发送回源而不是通过路由器。由于源计算机不希望从 192.168.10.2 返回数据包(相反,它希望看到它们来自 74.23.43.98),因此它会丢弃这些数据包并且没有做任何有用的事情。

如果你的路由器很好,它应该可以配置为做正确的事情(重写内部到内部 NATed 流量的源地址),但如果它默认不这样做,它可能不算作“任何好的”。或者,如果它有功能,您应该能够为您的服务器设置第二个内部网络,这将确保所有流量都通过路由器。