如何向 OpenVPN 隐藏真实 DNS 服务器?

如何向 OpenVPN 隐藏真实 DNS 服务器?

OpenVPN 在您连接时会清晰显示 DNS 服务器,但我想将其隐藏起来。(例如,它会在 Windows 中的日志和网络适配器中显示)

DNS 服务器已经有规则,只从 VPN IP 地址接收 DNS 请求。(我已经用 IP 表保护 DNS 服务器,以接收来自已经验证的 VPN IP 地址的请求)现在我想隐藏 IP,防止其遭受 DDoS 或其他类型的恶意攻击。

为什么?

因为所有 VPN 服务器只有 2 台服务器,但如果这两台服务器出现故障,VPN 就会停止工作。

我已经尝试过一条路线,但没有成功。

这就是我的实际 iptables 规则。

iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s cc.cc.cc.cc -j ACCEPT
iptables -A INPUT -p udp --dport 22 -s cc.cc.cc.cc -j ACCEPT
iptables -A INPUT -p udp --dport 53 -s xx.xx.xx.81 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -s xx.xx.xx.81 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
iptables -A INPUT -p udp --dport 22 -j DROP
iptables -A INPUT -p udp --dport 53 -s xx.xx.xx.81 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -s xx.xx.xx.81 -j ACCEPT
iptables -t nat -A OUTPUT -p udp --dport 53 -j DNAT --to yy.yy.yy.120:53
iptables -t nat -A OUTPUT -p tcp --dport 53 -j DNAT --to yy.yy.yy.120:53
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -o eth0 -j MASQUERADE
iptables -A PREROUTING -t nat -i eth0 -p udp --dport 443 -j REDIRECT --to-port 20303
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 13019

OpenVPN 服务器.conf

server 10.8.0.0 255.255.255.0
push "route 10.8.0.0 255.255.255.0"
push "redirect-gateway def1"
push "dhcp-option DNS yy.yy.yy.120"

注意:二十.81是 VPN 服务器,120年是 DNS 服务器。

答案1

您无法隐藏它,因为如果您希望 DNS 为客户端工作,则需要为客户端提供 DNS 服务器。您可以在 VPN 端点 (xxx81) 上设置 DNS 服务器,并告诉它只将所有查询转发到 xxx120,这样您的客户端就只能看到他们已经知道的 VPN 端点。

相关内容