![如何创建一个像 portmap.io 一样具有端口转发功能的 openvpn 服务器?](https://linux22.com/image/785788/%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%83%8F%20portmap.io%20%E4%B8%80%E6%A0%B7%E5%85%B7%E6%9C%89%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%E5%8A%9F%E8%83%BD%E7%9A%84%20openvpn%20%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%9F.png)
我目前正在使用 OpenVPN 将服务器后面的 NAT 公开给公众。我已成功利用 portmap.io VPN 服务实现了此目的,该服务允许公众用户直接使用 OpenVPN 服务器的 IP 和端口访问 NAT 资源,而无需 VPN 客户端。
但是,我现在正尝试通过创建 VPN 服务器并使用 iptables 进行端口转发和隧道传输,在我的 AWS 实例上实现相同的结果。虽然 VPN 连接已建立,但我遇到一个问题,即来自公众的请求没有通过隧道传输到 NAT 上的特定端口服务器。我想知道是否有可能解决这种情况。
以下是我目前已实现的 iptables 规则:
iptables -A FORWARD -i tun0 -o eth0 -p tcp --dport <port> -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -d <aws-instance-public-ip> --dport <port> -j DNAT --to-destination <ipv4-of-vpn-client-adapter:<port>
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
谢谢。