VPSに nbound DNSサーバーを定義しましたが、機能しているようです。一部のISPはパブリックDNS IPをブロックしているため、パブリックDNSサーバーの代わりにDNSサーバーを使用する必要があります。私のopenvpn.confファイルは:
dev tun
proto tcp
# Notice: here I set the listening port to be 80 to avoid possible port blockage
port 80
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
user nobody
group nogroup
server 10.8.0.0 255.255.255.0
persist-key
persist-tun
#status openvpn-status.log
#verb 3
client-to-client
Push "redirect-gateway def1"
#pushing public DNS IPs
Push "dhcp-option DNS 208.67.222.222"
Push "dhcp-option DNS 208.67.222.220"
comp-lzo
それが示唆されているように here 、私は自分のサーバーのIPを使用しようとしました(たとえば11.22.33.44)。だから代わりに
Push "dhcp-option DNS 208.67.222.222"
Push "dhcp-option DNS 208.67.222.220"
私は置くだけ
Push "dhcp-option DNS 11.22.33.44"
上記のopenvpn.conf内。ただし、openvpnを再起動した後も、クライアントはOpenVPNサーバーに接続できますが、ページをレンダリングできなくなっています。
ここで何が悪いのでしょうか?この問題を解決するにはどうすればよいですか?
Windows 10
クライアントでは、次のディレクティブをclient.ovpn
に追加する必要があります。
script-security 2
dhcp-option DNS 10.0.8.1
dhcp-option DOMAIN example.lan
ウィンドウにこれ以上のディレクティブは必要ありません。
Ubuntu 16.04
クライアントでは、次のディレクティブをclient.ovpn
に追加する必要がある場合があります。
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
Windows用の最新のOpenVPNクライアントバージョンは、オプションDOMAIN-SEARCH
を正しく認識せず、DOMAIN
で動作します。
「動作しているように見える」と言います。これをどのように確認しましたか?サーバーがエラーなしで起動したという事実に基づいていますか、それとも実際にいくつかのクエリを実行しましたか?
まず、nslookupまたはDigを使用して、バインドされていないサーバーに接続し、いくつかのクエリを実行します。最近はDigの方が流行っていますが、nslookupの方が優れています。
$ nslookup
> server 11.22.33.44
Default server: 11.22.33.44
Address: 11.22.33.44#53
> set type=A
> www.google.com
Server: 11.22.33.44
Address: 11.22.33.44#53
Non-authoritative answer:
www.google.com canonical name = www.l.google.com.
Name: www.l.google.com
Address: 74.125.225.52
Name: www.l.google.com
Address: 74.125.225.48
Name: www.l.google.com
Address: 74.125.225.49
Name: www.l.google.com
Address: 74.125.225.50
Name: www.l.google.com
Address: 74.125.225.51
これが機能しない場合は、DNS構成をもう一度確認する必要があります。
これはプライマリDNSサーバーですか、それともキャッシュDNSサーバーですか?ローカルリソースまたはインターネットリソースを照会しようとしていますか? DNSサーバーをクライアントにプッシュしないと、期待どおりに動作しますか?
すべてのトラフィックをOpenVPNサーバーに渡す場合、ISPに関する限り、VPSへのトラフィックを生成するだけなので、ISPがパブリックDNSサーバーをブロックすることを心配する必要はありません。 VPSが同じISPの背後にある場合を除きます。
Windows以外のクライアントから接続しようとしている場合は、いくつかの追加手順を実行する必要があることがわかります。
Linuxの場合
この行をクライアント構成(client.conf
またはxxxx.ovpn
ファイル)
dhcp-option DNS 11.22.33.44
この方法でOpenVPNクライアントを呼び出します。
$ openvpn --script-security 2 --config xxxx.ovpn
それでうまくいきました。
2018年9月13日、Ubuntu 18.04でテスト済み
コマンドラインを介して必要なものを設定するための別の便利なコマンドがあります。しかし、私の場合は、コマンドラインとGUIの両方でVPN接続を制御できます。
Sudo nmcli connection add type vpn vpn-type openvpn con-name la.vpn.contoso.com ifname --
ifname --
はデフォルトで必須ですが、何にも影響しません
Sudo nmcli connection modify la.vpn.contoso.com ipv4.dns 172.16.27.1 Sudo nmcli connection modify la.vpn.contoso.com ipv4.dns-search int.contoso.com Sudo nmcli connection modify la.vpn.contoso.com ipv4.never-default yes
never-default
リモートゲートウェイをデフォルトルートとして使用しないでください
そして、もっと興味深く最終的なタッチ:
nmcli connection modify la.vpn.contoso.com vpn.data 'ca = /tmp/la.vpn.contoso.com/you/ca.crt, key = /tmp/you.key, dev = tun, cert = /tmp/you.crt, cert-pass-flags = 1, comp-lzo = adaptive, remote = la.vpn.contoso.com:1194, connection-type = tls'
その後、GUIでvpnを制御するか、次のコマンドを使用できます。
Sudo nmcli --ask connection up la.vpn.contoso.com Sudo nmcli connection down la.vpn.contoso.com