我有一个必须重建的wireguard VPN 服务器。旧服务器有一个在虚拟接口上运行的内部 DNS 服务器,172.16.0.1
. 我真的不需要/不想在此运行 DNS,有没有办法可以使用 iptables 拦截 DNS 查询172.16.0.1
并将它们发送到1.1.1.1
?
如果配置:
wg0: flags=209<UP,POINTOPOINT,RUNNING,NOARP> mtu 1420
inet 10.19.49.1 netmask 255.255.255.0 destination 10.19.49.1
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet xxx.xxx.xxx.xxx netmask 255.255.240.0 broadcast xxx.xxx.xxx.xxx
这是我在wireguard中的postup/down规则:
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
是的,这很简单:
最好使用直接多次
iptables-save/iptables-restore/iptables-apply
运行的替代脚本。iptables
使用iptables-persistent
包使规则永久化。为了更好地理解
iptables
你可以阅读iptables 教程。