因此,据我所知,我已将所有组件(即 DNSmasq 和 OpenVPN)都运行良好,尽管它们彼此独立。我做了什么?
- 使用以下命令安装 OpenVPN:https://github.com/Nyr/openvpn-install
- 安装后,我可以连接客户端(PC、手机),一切正常。没有问题。
- 我已经安装了 DNSmasq,并且似乎运行正常
0.0.0.0
我已经屏蔽了一个或两个网站,即在文件中指向它们/etc/hosts
,当我这样做时nslookup thatdomain.com
,我得到了0.0.0.0
回应
这是目前我的/etc/openvpn/server/server.conf
local 134.122.60.252
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-crypt tc.key
topology subnet
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 10.8.0.1"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
verb 3
crl-verify crl.pem
explicit-exit-notify
duplicate-cn
我对默认文件做的唯一更改/etc/dnsmasq.conf
是取消注释并指示界面此行:
interface=tun0
我需要什么帮助?
如何让 OpenVPN 使用 DNSmasq全部DNS 请求。我似乎无法找到关于如何实现该目标、需要更改哪些文件以及需要添加什么内容的明确答案。
我是否遗漏了任何步骤?
编辑:使用上述配置,当我通过 ssh 进入 openvpn 服务器(dnsmasq 也在同一台服务器上运行)时,我会
nslookup google.com 10.8.0.1
,它正确解析
当我这样做时,nslookup blockthis.com 10.8.0.1
它会0.0.0.0
按照/etc/hosts
文件中概述的那样正确解析为预期结果。
问题是,当我从客户端连接到 openvpn 时,openvpn 不知何故没有将 dns 解析移交给 dnsmasq,但该线路interface=tun0
在 dnsmasq 中已启用,并且netstat -plunt
表示端口 53 已启动并正在运行,由 dnsmasq 监听。
答案1
好的,解决了。需要打开防火墙。
ufw allow out on tun0
ufw allow in on tun0