无法在端口 53 上运行 OpenVPN(DNS 停止工作)

Mat*_*ant 4 domain-name-system openvpn tunnel

所以我试图让 OpenVPN 在端口 53 上工作 - 遗憾的是这不起作用。

我使用 IP 表将端口 53 映射到端口 1194(标准 OpenVPN 端口)

这是我执行此操作的方法:

iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-port 1194
iptables -I INPUT -p udp --dport 53 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

这是因为连接很好,除非我尝试访问新域!DNS 根本不再起作用。

这是我的服务器配置:

local xxx.xxx.xxx.xxx #- your_server_ip goes here
port 1194 #- port
proto udp #- protocol
dev tun
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so /etc/pam.d/login
client-cert-not-required
username-as-common-name
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 5 30
comp-lzo
persist-key
persist-tun
#status 1194.log
verb 3
Run Code Online (Sandbox Code Playgroud)

我将 DNS 服务器指定为 8.8.8.8(Google 的 DNS 服务器),所以我不知道为什么 DNS 不起作用!

And*_*w B 5

将您的 NAT 规则绑定到openvpn正在侦听的 IP 地址。您当前的规则是拦截通过目标端口为 53 的服务器的所有流量(在本例中,流量通过您的tun接口)。始终尝试使您的规则尽可能具体;如果你不这样做,这样奇怪的事情就会发生。

尝试这样的事情:

iptables -t nat -A PREROUTING -p udp -d xxx.xxx.xxx.xxx -i appropriate_interface --dport 53 -j REDIRECT --to-port 1194