我在家里的 Raspberry pi 上设置了一个 OpenVPN 服务器。但是,我没有静态公共 IP 地址。因此,我在自定义公共 VPS 服务器上与另一台 OpenVPN 服务器建立了 OpenVPN 隧道。至少现在,即使我的公共 IP 发生变化(通过 VPN 隧道),我也可以在任何地方通过 ssh 连接到我的 Raspberry pi。
我正在尝试使用 iptables 转发该特定 vpn 隧道(10.8.0.3)上的 raspberry pi OpenVPN 服务器 tcp 端口 1195。
sudo iptables -A FORWARD -p tcp --dport 1121 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -A PREROUTING -i ens3 -p tcp --dport 1121 -j DNAT --to-dest 10.8.0.3:1121
sudo iptables -t nat -A POSTROUTING -d 10.8.0.3 -j MASQUERADE
我可以连接到我的 raspberry pi openvpn 服务器(通过我的 vps 上的 tcp 端口 1121),但我无法访问互联网,我不知道为什么。我的 raspberry pi 接收请求并将其发送回我的 vps(我用 tcpdump 检查过),但我的 vps 似乎无法将其发送回原始客户端(我的电脑)。
您知道更好的方法吗?有什么提示吗?如何解决这个问题?
答案1
我找到了解决方案。我忘记在 Raspberry PI 上设置 iptables 了。
sudo iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -o eth0 -j SNAT --to-source 192.168.1.14