设想:
偏僻的:CentOS 6,有公网IP远程<-->互联网
当地的:Win10,NAT 后本地<--->本地路由器--->ISP NAT--->Internet
问题:
- 本地想要运行一个监听端口 1234 的服务,但是它位于 NAT 后面,因此本地无法被公众访问。
- 该服务将尝试自动获取公共 IP。
期望结果:
- 访问 Remote:1234 的任何人都将被重定向到 Local:1234。
如果没有的话,还有哪些其他选择?
提前致谢 !
答案1
此要求通常由网络安全工程师处理。
根据您的帖子,我理解您的内部托管服务器想要与托管在另一个网络中的远程服务器通信,对吗?
您的内部托管服务器应将 NAT 源设置为 ISP 分配的可用静态公共 IP,并且我们需要在防火墙中制定出站安全策略,如下所示:
源接口:防火墙内部接口
目标接口:防火墙外部接口
源地址:服务器私有IP(本地IP)
目标:远程服务器公网IP
服务:TCP-1234
操作:允许
安全配置文件:开启
同时,服务器源 NAT IP 需要在远程客户端列入白名单,以便我们的流量可以通过供应商防火墙
让我们看看流量
步骤1
当本地服务器发起流量时
- 源IP为本地服务器私网IP
- 目标 IP 是远程服务器公网 IP
- 端口 tcp-1234
第2步
当流量到达本地托管服务器网络外围防火墙时,服务器本地私有 IP 将转换为源 NAT 后的公有 IP
源将是本地服务器源 NAT 的公共 IP,目标将是带有端口 tcp-1234 的远程服务器公共 IP
现在流量将到达供应商。供应商已将我们的源 NAT 的 IP 列入白名单,因此流量是允许的,并将通过端口 tcp-1234 访问远程服务器
同样,反向流量流动,我们的本地服务器将能够访问远程服务器上的资源。
答案2
您可以使用您的 isp 提供的任何静态公共 IP。如果您没有来自 isp 的额外静态 IP。您也可以将目标 nat 公共 IP 用于源 nat。如果服务器没有目标 nat 公共 IP。那么您可以使用互联网访问 IP
例如,如果您的服务器由您的 ISP 提供互联网访问。在服务器中,转到浏览器并输入“我的 IP 地址是什么”,您将供应商的相同公共 IP 列入白名单。这仅适用于您没有源或目标 natted IP 的情况。
答案3
- 我无法控制 ISP 主路由器,因此源 NAT 不起作用
- 该服务将尝试获取公共 IP,因此反向 ssh 隧道将不起作用
解决方案
- 远程:VPN 服务器(我使用 WireGuard)
- 本地路由器:VPN 客户端
- 远程:端口转发至本地路由器(iptables /firewalld)
- 本地:DSCP 标记服务
- 本地路由器:将 DSCP 标签策略路由到 VPN 接口