私の理解する限りでは、DNSmasq と OpenVPN はそれぞれ独立して正常に動作しています。私が行ったことは何でしょうか?
- これを使用して OpenVPN をインストールしました:https://github.com/Nyr/openvpn-install
- インストール後、クライアント (PC、電話) に接続でき、動作します。問題はありません。
- DNSmasqをインストールしましたが、期待通りに動作しているようです
- 私は1つか2つのサイトをブロックしました。つまり、ファイル
0.0.0.0
でそれらを指定しました/etc/hosts
。そうすると、応答がnslookup thatdomain.com
返されます。0.0.0.0
- 私は1つか2つのサイトをブロックしました。つまり、ファイル
これは現在私の/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 リクエスト。それをどうやって実現するか、どのファイルを変更するか、何を追加するか、明確な答えが見つからないようです。
何か手順が抜けているでしょうか?
編集:上記の設定で、openvpnサーバーにssh接続すると(dnsmasqも同じサーバー上で実行されます)、
nslookup google.com 10.8.0.1
、それは正しく解決されます
これを実行すると、ファイルに記載されているとおりに、期待どおりnslookup blockthis.com 10.8.0.1
に正しく解決されます。0.0.0.0
/etc/hosts
問題は、クライアントから openvpn に接続すると、何らかの理由で openvpn が dnsmasq に DNS 解決を渡さないのに、interface=tun0
dnsmasq で行が有効になっていて、netstat -plunt
ポート 53 が稼働中で、dnsmasq によってリッスンされていることを示していることです。
答え1
はい、解決しました。ファイアウォールを開く必要がありました。
ufw allow out on tun0
ufw allow in on tun0