通过 Wireguard 隧道进行端口转发

通过 Wireguard 隧道进行端口转发

我有一个 raspi 连接到互联网,并通过 Wireguard roadwarrior 隧道连接到办公室。

raspi 应该将“raspi 内部网”的流量转发到办公网络的特定服务器。此外,raspi 还可以访问端口 3000 上的特定服务器。

“Raspi Net 中的其他客户端(端口 3000)”->“raspi:3000”-> Tunnel->office->Server:3000

例如:Raspi Intranet eth0 有 192.168.13.201,隧道地址 wg0 有 10.10.10.15,端口 3000 的 Office Server 守护程序有 192.168.1.5:3000

我曾尝试过这个但没有成功:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 3000 -j DNAT --to-destination 192.168.1.5:3000
iptables -A FORWARD -p tcp -d 192.168.1.5 --dport 3000 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

答案1

根据以下规则找到了答案:

 iptables -P FORWARD DROP
    iptables -A FORWARD -i eth0 -o wg0 -p tcp --syn --dport 3000 -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 3000 -j DNAT --to-destination 192.168.1.5
    iptables -t nat -A POSTROUTING -o wg0 -p tcp --dport 3000 -d 192.168.1.5 -j SNAT --to-source 10.10.10.15

主要问题是最后一条规则。我必须将 --to-source 地址更改为隧道适配器地址,而不是 eth0 地址。

贝弗

相关内容