首页 > 解决方案 > 将入站流量传递/重定向到专用网络内的客户端

问题描述

我有一个 IP 为 xxxx 的 OpenVPN 服务器 我有一个本地 IP 为 yyyy 的本地服务器,我想通过 VPN 从 Internet 访问其资源(http、ssh 等),因此我为服务器,它与 10.8.0.2 的 IP 连接所有本地服务器流量都通过 VPN,当我从本地服务器执行 whatsmyip 时,它显示 xxxx

我的问题是,如何在不使用 DDNS 的情况下从 Internet 访问本地服务器(所有入站请求的端口都应直接访问本地服务器),我有一个 VPN 服务器,因此它使事情变得更容易和更易于管理。例如,我可以为某些本地 wiki 页面设置 A 记录,创建本地电子邮件服务器并将其公开等。

我知道这与 IPTABLES、路由 natting 伪装等有关。有人可以帮忙吗?

标签: ubuntu-18.04openvpn

解决方案


这工作得很好:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to-destination 10.8.0.2:443

eth0 是 OVPN 服务器的物理接口,因此我希望所有入站流量从 eth0(公共服务器 IP)到位于 10.8.0.2 上的客户端服务器,并且我必须指定我想要预先路由的每个端口。

我也使用端口 22 和 80 做到了这一点:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2222 -j DNAT --to-destination 10.8.0.2:22

所以每当我这样做

ssh root@VPN_IP -p 2222

它会将 ssh 转发到客户端服务器。


推荐阅读