我有一个自定义DNS服务器,它可以对用户进行身份验证(基于IP地址,因为我们没有其他方法)。问题是我无法在移动设备上使用它(除非在wifi上),因为您无法在移动互联网上设置自定义DNS服务器。
我对此问题的解决方案是还创建一个使用DNS服务器的Wireguard服务器。我连接到VPN,并在vpn配置中指定DNSServer作为该连接的DNS服务器。一切正常,但是我的DNS服务器(如预期)从本地客户端接收查询,例如10.0.20.3
。有什么方法或配置/ iptables奇迹可以使我对DNS服务器透明并传递真实/公共ip地址吗?
Wireguard服务器cfg:
[Interface]
PrivateKey = xxXXxx
ListenPort = 51820
Address = 10.0.0.1/24
SaveConfig = false
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = yyYYyy
AllowedIPs = 10.0.0.2/24