如何在不丢失 http 访问权限的情况下转发 Web 端口?

如何在不丢失 http 访问权限的情况下转发 Web 端口?

我在家里的 Raspberry Pi 上配置了 NextCloudPi,它运行得很好。但是,adsl 调制解调器的 NAT 配置不稳定。因此,我在 DigitalOcean(Tinc 服务器)上配置了一个 Tinc VPN 服务器,NextCloudPi 连接到该服务器。

在 Tinc 服务器上,我使用 iptables 配置了端口转发。这是我用来激活它的脚本:

sysctl net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.0.7.3:80
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to-destination 10.0.7.3:443
iptables -t nat -A POSTROUTING -j MASQUERADE

但是,最后一个代码 MASQUERATE 阻止 Tinc 服务器连接到 http(即 apt 服务器)。到目前为止,我找到的解决方案是在需要更新 Tinc 服务器时停用 iptables 规则,但我相信有更好的方法。

问题:是否可以改进 iptables 脚本,使其不会阻止对 apt 服务器的访问?

或者,我可以调整 iptables 规则以将 Tinc 服务器的 8080 端口转发到 NextCloudPi 80 端口,但到目前为止我还没有成功(NextCloudPi 使用端口 80(http)和 443(https))。

提前感谢您的建议!

皮埃尔

答案1

好的,我最终找到了一个解决方案,以防其他人遇到同样的问题:在 MASQUERADE 规则中添加参数“-o [net]”:

iptables -t nat -A POSTROUTING -o [VPN/internal network] -j MASQUERADE

致以最诚挚的问候,皮埃尔

相关内容