在某些端口将互联网用户从 eth0 转发到 ppp+(VPN 客户端)

在某些端口将互联网用户从 eth0 转发到 ppp+(VPN 客户端)

我有在 VPN 客户端计算机上运行的 VNC 服务器,端口为 5900,它将连接到我的 VPN 服务器 (ppp),可通过 Internet 用户访问。VPN 服务器是 CentOS 6.8 x64。

但是,当前的 VPN 客户端 ISP(不是 VPN 服务器)不允许来自外部/互联网的传入连接。换句话说,他们已经保护了防火墙并采取了一些措施。目前,我的 VPN 客户端能够:

  • 无需 VPN 服务器即可连接到互联网
  • 使用 VPN 服务器连接到互联网
  • 端口 5900 为 VNC 服务器开放,以便每个人都可以从 LAN/MAN/WAN 进行连接
  • 由于 ISP 阻止了端口,因此能够接收 5900(仅限 LAN)

我的 VPN 服务器能够: - 从 VPN 和互联网接收和传输

在 VPN 服务器(即 Centos 6.8)中,这些是我的 VPN 客户端能够通过 VPN 服务器访问互联网的 iptables:

-A POSTROUTING -o eth0 -j MASQUERADE
-A INPUT -p tcp -m tcp --dport 5900 -j ACCEPT
-A FORWARD -d 210.48.222.2/32 -i eth0 -o ppp+ -p tcp -m tcp --dport 5900 -j ACCEPT
-A FORWARD -i ppp+ -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o ppp+ -j ACCEPT

这些是 CentOS 中的 ifconfig

eth0      Link encap:Ethernet  HWaddr 04:01:4C:C5:81:02
          inet addr:128.199.210.115  Bcast:128.199.255.255  Mask:255.255.192.0
          inet6 addr: 2400:6180:0:d0::45c:c001/64 Scope:Global
          inet6 addr: fe80::601:4cff:fec5:8701/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:163888 errors:0 dropped:0 overruns:0 frame:0
          TX packets:171866 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:178131279 (169.8 MiB)  TX bytes:179452807 (171.1 MiB)

eth1      Link encap:Ethernet  HWaddr 04:01:4C:C5:67:01
          inet addr:10.130.133.116  Bcast:10.130.255.255  Mask:255.255.0.0
          inet6 addr: fe80::601:4cff:fec5:8702/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:566 (566.0 b)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:24797 errors:0 dropped:0 overruns:0 frame:0
          TX packets:24797 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2914752 (2.7 MiB)  TX bytes:2914752 (2.7 MiB)

ppp0      Link encap:Point-to-Point Protocol
          inet addr:128.199.210.115  P-t-P:210.48.222.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1396  Metric:1
          RX packets:33106 errors:0 dropped:0 overruns:0 frame:0
          TX packets:43985 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:3997842 (3.8 MiB)  TX bytes:39318955 (37.4 MiB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00                                                                                        -00
          inet addr:10.50.0.1  P-t-P:10.50.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

我已经审查过iptables:如何将目标端口为 80 的数据包从 eth0 转发到 eth1?,它确实从 eth0 到 eth1 有效,并尝试从 eth0 到 ppp+ 应用,但它不起作用。或者也许我需要在 iptables 中添加更多内容。

对于 VPN,我按照文章中的步骤操作https://www.photonvps.com/billing/knowledgebase.php?action=displayarticle&id=58可以工作(VPN 客户端能够连接到 VPN 服务器)

但是,如果不连接 VPN 服务器,我仍然无法从互联网/其他 ISP 连接到我的 VPN 客户端的 VNC(端口 5900)。iptables 中是否有任何错误或缺失?

这些是我的计划:-

My PC (not the VPN user) > Remotely Access to > CentOS + VPN Server > Client (connected to the CentOS VPN)

答案1

没关系,问题解决了,它工作正常(通过 VPN 使服务器在被阻止的 ISP 上公开访问)我只需要在 /etc/sysconfig/iptables 中添加这些:

-A PREROUTING -p tcp -m tcp --dport 5900 -j DNAT --to-destination 210.48.222.2:5900
-A POSTROUTING -o ppp+ -j MASQUERADE

相关内容