我目前正在使用 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
谢谢。