VPN を使用している Windows 上の Bash (Ubuntu) で DNS が機能しない

VPN を使用している Windows 上の Bash (Ubuntu) で DNS が機能しない

「Bash on Ubuntu on Windows」のテストを始めたばかりですが、気に入っています。

ただ、問題は、バックエンド サーバーと開発者サーバーにアクセスするには VPN を使用する必要があることです。また、たとえば、Windows Bash シェルを使用して開発サーバーに SSH 接続しようとすると、ホスト名を解決できません。

IP アドレスを使用して SSH を実行できること、またこれらのホスト名が Windows の他の場所でも問題なく機能することに注意してください。たとえば、putty、通常の cmd、ファイル エクスプローラーなどです。

/etc/resolv.conf も確認しましたが、そこに私たちの仕事用のネームサーバーがリストされているのがわかります。

ここからは私のネットワークスキルが不足しています。特に Linux に関しては。助けてください :D

答え1

これはルーティングの問題であり、WSL のバグではありません。ローカル サブネットがリモート サブネットと同じである可能性が非常に高いです。また、ブリッジ VPN を使用していると想定しています。

私も同じ問題に遭遇しました。私は OpenVPN を使用してオフィス (リモート) と自宅 (ローカル) を接続しています。2 つのサブネットはどちらも 192.168.1.0 で、これは多くのルーターで見られる最も一般的なサブネットです。

最終的に、次の設定で問題を解決しました。私の目標は、tun を使用してオーバーヘッドを削減し、トラフィックを宛先がオフィスにある場合にのみリダイレクトすることです。ただし、これはブリッジ VPN でも機能します。

;make the dhcp-option works on Windows 10.
script-security 2
;do not accept any pushed route command.
route-nopull
;make sure the connection still go through my home router. This line may not be necessary. You can try to remove this line and see it the VPN works.
route 192.168.1.1 255.255.255.0 net_gateway
;redirect the traffic where the destination is within the 192.168.1.0 subnet to OpenVPN gateway.
route 192.168.1.128 255.255.255.128
route 192.168.1.0 255.255.255.128
;set the DNS server which is in the office
dhcp-option DNS 192.168.1.254
dhcp-option DNS 192.168.1.253
dhcp-option DOMAIN my.company.domain

答え2

これは DNS が機能しない問題を解決するものではありませんが、機能しているように見せるための回避策です。

ホスト ファイル (/etc/hosts) を編集して、使用したいホスト名のエントリを追加できます。

IP アドレス、スペース、ホスト名の順に続くエントリを追加します。

123.456.1.1 target.host.net

sudo注意:編集コマンドが必要になります。sudo vi /etc/hosts

私の場合、編集内容は bash シェル セッション間で保持されます。これは Microsoft が将来修正するであろうバグだと思います。今のところ、私はこの回避策を使用しています。

答え3

私も同じ問題を抱えています。一時的に /etc/resolv.conf を編集して、ネームサーバー 1 つと検索ドメイン 1 つ (VPN ネットワーク用) のみを指定したところ、そのネットワーク上のホスト名が解決されました。この変更は永続的ではないため、Windows 上の Ubuntu で Bash を終了して再起動すると、/etc/resolv.conf がデフォルト設定に戻ります。

関連情報