目前,我正在寻求了解如何使用 GRE 隧道,并且有以下方案:
服务器 1 (200.1.2.3) ----> 服务器 2 (190.1.2.3)
两台服务器都有公共 IP
然后我使用在互联网上找到的以下命令设置了 GRE 隧道
在服务器1上:
iptunnel add tunX mode gre remote 190.1.2.3 local 200.1.2.3 ttl 225
ifconfig tunX 10.0.201.1/24
ifconfig tunX up
ifconfig tunX pointopoint 10.0.201.2
ifconfig tunX multicast
在服务器2上:
iptunnel add tunY mode gre remote 200.1.2.3 local 190.1.2.3 ttl 225
ifconfig tunY 10.0.201.2/24
ifconfig tunY up
ifconfig tunY pointopoint 10.0.201.1
ifconfig tunY multicast
然后我就可以使用它们的本地地址 ping 每台机器了(服务器 1 为 10.0.201.1,服务器 2 为 10.0.201.2)。
现在我想要一个在 Server1 中运行的程序来监听端口 5050 (tcp,udp),并且能够通过连接到 190.1.2.3:5050 从外部访问该端口
Server1 也应该能够通过公共 IP(200.1.2.3)监听端口(与我想要通过 GRE 隧道传输的端口不同)
我尝试在 Server2 中应用一些 iptables 规则来转发流量,但它们似乎不起作用,所以我认为我在这个设置中缺少了一些重要的东西来使其起作用。
来自互联网的客户端应该能够连接到 190.1.2.3:5050 来访问 Server1 上的服务,但他们永远不应该知道 Server1 的公共 IP
快速绘制方案如下:
谢谢