使用 dnsmasq 作為 OpenVPN 的 DNS

使用 dnsmasq 作為 OpenVPN 的 DNS

據我所知,我的所有部分(即 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 請求。我似乎無法找到關於如何實現這一目標、要更改哪些文件以及要添加哪些內容的明確答案。

我是否缺少任何步驟?

編輯:使用上面的conf,當我 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 中啟用,並且 anetstat -plunt指示端口 53 已啟動並正在運行,由 dnsmasq 監聽。

答案1

好的,已經解決了。需要打開防火牆。

ufw allow out on tun0

ufw allow in on tun0

相關內容