将 openVPN 服务器上的传入流量路由到客户端

将 openVPN 服务器上的传入流量路由到客户端

我有一个具有运行 OpenVPN 的公共 IP 的 VPS 和一个本地服务器,这是唯一的 VPN 客户端。

是否可以将端口 80 上的传入流量路由到客户端?

我的本地服务器在移动数据上运行,我没有获得公共 IP。我寻找的结果是一个显示数据的简单网站,我可以通过浏览 VPN IP 来访问该网站。

答案1

正如所解释的这里您应该能够使用 iptables 将流量从一个接口中的端口转发到其他接口上的某个其他 IP。请记住,您可能需要配置 OpenVPN 服务器以始终向本地服务器发出相同的 IP,您可以了解如何操作这里

在本质上,

  1. 确保您的服务器允许转发
sudo sysctl net.ipv4.ip_forward=1
  1. 假设您的 VPN IP 是10.0.0.1并且您的服务器外部接口是eth0,将来自外部端口 80 的连接转发到您的 VPN IP 并允许其应答:
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j DNAT --to-destination 10.0.0.1:80
iptables -A FORWARD -p tcp -d 10.0.0.1 --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

调试连接问题tcpdump是您的朋友,如下所示:

# Print all packets on port 80 that pass through the eth0 interface
sudo tcpdump -ni eth0 port 80

请注意,作为一般建议,您应该始终使用加密,以至于默认情况下还需要 443 端口才能启用 HTTPS。

相关内容