我有一个 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 地址。
贝弗