ipconfig — 端口转发不适用于 Wireguard

ipconfig — 端口转发不适用于 Wireguard

我有一个有效的 WireGuard 配置,并正在尝试设置端口转发以将流量从服务器路由到客户端。我正在尝试使用端口 80 进行一些测试——我在客户端上有一个运行良好的 nginx 服务器。10.20.40.2是客户端的内部 IP,10.20.40.1是服务器的 IP——

iptables -A FORWARD -i eth0 -o wg0 -p tcp --syn --dport 80 -m conntrack --ctstate NEW -j ACCEPT                                                      
iptables -A FORWARD -i eth0 -o wg0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT                                                              
iptables -A FORWARD -i wg0 -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT                                                              
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.20.40.2                                                          
iptables -t nat -A POSTROUTING -o wg0 -p tcp --dport 80 -d 10.20.40.2 -j SNAT --to-source 10.20.40.1

我跟着指南以进行端口转发,并运行上述命令。它们执行时没有错误,但似乎没有任何效果——当我尝试连接到服务器上的端口 80 时,我仍然收到“连接被拒绝”的消息。我已经尝试寻找解决方案几个小时了,所以任何帮助都非常感谢!

答案1

-i eth0最终通过从命令中删除所有 s 解决了该问题。我不知道为什么这样做有效,我问了 IRC 上的一个人,他告诉我这样做。

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.20.40.2                                                                  
sudo iptables -A FORWARD -o wg0 -p tcp --syn --dport 80 -m conntrack --ctstate NEW -j ACCEPT                                                              
sudo iptables -A FORWARD -o wg0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT                                                                      
sudo iptables -A FORWARD -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT                                                                     
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.20.40.2                                                                  
sudo iptables -t nat -A POSTROUTING -o wg0 -p tcp --dport 80 -d 10.20.40.2 -j SNAT --to-source 10.20.40.1

相关内容