WSL2でDNS解決がうまくいかない問題と解決方法

WSL2でDNS解決がうまくいかない問題と解決方法

こんにちは!

Windows Subsystem for Linux (WSL2)は、Windows上でLinux環境を利用できる素晴らしい機能ですが、中にはDNS解決に関する問題が発生することがあります。この記事では、その症状と効果的な解決方法を紹介します。

検証環境

この記事で紹介する方法は、以下のバージョンで検証しています

WSL バージョン: 2.4.13.0
カーネル バージョン: 5.15.167.4-1
WSLg バージョン: 1.0.65
MSRDC バージョン: 1.2.5716
Direct3D バージョン: 1.611.1-81528511
DXCore バージョン: 10.0.26100.1-240331-1435.ge-release
Windows バージョン: 10.0.22631.3880

症状

以下のようなエラーメッセージが表示される場合、WSL2でのDNS解決に問題が発生している可能性が高いです:

  • コマンドラインから接続時: Could not resolve hostname ...
  • Pythonコードから接続時: [Errno -2] Name or service not known

これらのエラーは、WSL2内でDNSサーバーの設定が正しく行われていないことを示しています。

原因

WSL2は起動時に自動的に /etc/resolv.conf ファイルを生成し、Windows側のDNS設定を使用しようとします。しかし、この自動生成されるDNS設定が正しく機能しないケースがあります。上記のバージョン情報にあるように、2025年3月時点の最新WSL2(バージョン2.4.13.0)でもこの問題は完全には解決されていません。

解決方法

以下の3ステップで問題を解決できます

STEP1: WSL2が自動生成するDNS設定を無効化

WSL bashで以下のワンライナーを実行して、resolv.confが自動生成されるのを防ぎます。

注意:既存のwsl.conf があるばあいはvim等で編集してください。

sudo sh -c 'cat > /etc/wsl.conf << EOF
[network]
generateResolvConf = false
EOF'

このコマンドは、WSL2の設定ファイル /etc/wsl.conf を作成し、DNS設定の自動生成を無効にします。

STEP2: Windows側でWSLを再起動

Windows PowerShellまたはコマンドプロンプトで以下のコマンドを実行し、WSLを完全に再起動します

wsl --shutdown

STEP3: DNSサーバーを手動で設定

WSLを再度起動し、シェルで以下のコマンドを実行して、GoogleのパブリックDNSサーバーを手動で設定します

sudo sh -c 'cat > /etc/resolv.conf << EOF
nameserver 8.8.8.8
EOF'

これにより、GoogleのDNSサーバー(8.8.8.8と8.8.4.4)を使用するように設定されます。

確認方法

設定が正しく適用されたかを確認するには、以下のコマンドを実行してみてください

ping google.com

または、以下のPythonコードでの接続テスト

import socket
socket.gethostbyname('google.com')

WSLのカーネルバージョンを確認するには、以下のコマンドが使用できます

# カーネルバージョンの簡易表示
uname -r

# カーネルバージョンの詳細表示
cat /proc/version

# システム情報全体の確認(systemdが利用可能な場合)
hostnamectl

また、WindowsコマンドプロンプトまたはPowerShellからWSLのバージョン情報を確認するには

wsl --version

これらが正常に動作すれば、DNS解決の問題は解決されています。

注意点

  • この設定はWSLを再起動するたびにリセットされる可能性があります。その場合は、STEP3を再度実行する必要があります。
  • WSLのバージョンによっては動作が異なる場合があります。最新の情報については、Microsoftの公式ドキュメントを参照することをお勧めします。

まとめ

WSL2でのDNS解決問題は、自動生成されるDNS設定を無効化し、手動でDNSサーバーを設定することで解決できます。この方法は、最新のWSL2バージョンでも有効です。

Read more

「AIを作る国」から「AIで勝つ国」へ ── 日本のAI投資戦略を再設計する【後編】

「AIを作る国」から「AIで勝つ国」へ ── 日本のAI投資戦略を再設計する【後編】

── SaaS再編の時代に、どこにポジションを取るか こんにちは! Qualitegコンサルティングです! ここ数年、「日本のAI戦略」というテーマでの相談やディスカッションが増えてきました。 生成AIの登場以降、経営層から現場のエンジニアまで、それぞれの立場で「自社はどこに張ればいいのか」「国としてはどう進むべきか」を模索している、というのが実感です。 本シリーズでは、その問いに対して少し腰を据えて向き合ってみたいと思い、前後編の構成で書いてみました。 前編では、国産LLM、データセンター投資、データ主権の3テーマを通じて、日本のAI投資が必ずしも「使われて勝つ構造」に向かっていない可能性を見てきました。投資の総額やプレイヤーの動きを並べてみると、号令の方向と実際の資金の流れにはちょっとしたズレがあるのではないか、という現在地が見えてきます。 後編では、その前提の上で視点をソフトウェア産業全体に広げます。もしAIによってアプリケーション層そのものの競争ルールが変わるなら、日本が張るべき場所もまた変わるはずです。海外で起きているSaaS産業の地殻変動を眺めたうえで、日本がど

By Qualiteg コンサルティング
PyCharmで npm start 実行時にIDEがサイレントクラッシュした事例と切り分け

PyCharmで npm start 実行時にIDEがサイレントクラッシュした事例と切り分け

こんにちは!Qualitegプロダクト開発部です! PyCharmの内蔵npmツールで npm start を実行した瞬間、何のエラーメッセージもなくIDEが消える。 再起動してもう一度試すとまた落ちる。ログを見ても手がかりがない——。 今回はこの「サイレントクラッシュ」に遭遇し、原因の絞り込みから回避策の確立まで至った過程を書き残しておきます。同じ現象で困っている方の参考になれば幸いです。 環境 項目 内容 OS Windows 10/11 PyCharm 2026.1(2023.1.6時代から連綿とUpdateをした状態) Python 3.11.4(venv使用) Node.js v25.2.1 プロジェクト Python + Node.js 混合構成 上記のとおり、PyCharmは執筆時点の最新版(2026.1)となります。 確認できたこと・推測していること まず最初に、

By Qualiteg プロダクト開発部
大企業のAIセキュリティを支える基盤技術 - 今こそ理解するActive Directory 第6回 よくある問題と解決方法

大企業のAIセキュリティを支える基盤技術 - 今こそ理解するActive Directory 第6回 よくある問題と解決方法

こんにちは、今回はシリーズ第6回トラブルシューティング - よくある問題と解決方法 について解説いたします! さて、前回(第5回)は、統合Windows認証がブラウザでどのように動作するかを解説しました。 「イントラネットゾーン」という概念を理解することで、同じサーバーでもURLの書き方(NetBIOS名、FQDN、IPアドレス)によって認証動作が変わる理由が明確になったかと思います。また、Chrome/Firefoxではデフォルトで統合認証が無効になっている理由と、グループポリシーによる一括設定方法も学びました。 しかし、設定が完璧なはずなのに「なぜかうまく動かない」という場面は、実際の現場では必ず訪れます。 「最近、ファイルサーバーへのアクセスが遅い」「金曜日は使えたのに、月曜日の朝にログインできない」「特定のサービスだけKerberosが失敗する」——これらはヘルプデスクに日々寄せられる典型的な問い合わせです。 原因はKerberosの失敗、時刻のずれ、SPNの設定ミス、DNS関連の問題など多岐にわたりますが、体系的にトラブルシューティングすることで必ず解決できます。

By Qualiteg コンサルティング, Qualiteg AIセキュリティチーム
AIエージェントを"事業に載せる"ために【第2回】AIエージェントの責任分解はなぜ難しいのか

AIエージェントを"事業に載せる"ために【第2回】AIエージェントの責任分解はなぜ難しいのか

— AI導入を"事業に載せる"ために、いま設計すべきこと(全3回) こんにちは!Qualitegコンサルティングチームです! 前回(第1回)では、Replit/Lemkin事件とDeloitte豪州政府報告書問題を通じて、AIエージェント導入の課題がモデル性能ではなく「権限・監査・責任の設計不在」にあることを見ました。 では、実際に事故が起きたとき、責任は誰が負うのでしょうか。第2回となる本記事では、法務・契約・組織の3つの観点から、AIエージェントの責任分解がなぜ難しいのかを構造的に整理します。 結論を先に言えば、法務だけでも契約だけでも組織論だけでも足りません。この3つを接続して設計しなければ、AIエージェントの責任分解は実務上機能しません。 1. 法的フレームワーク:複数の法理論が並走している AIエージェントが損害を出したとき、どの法理論で責任が問われるかについて、現時点でグローバルなコンセンサスは形成されていません。 Clifford Chanceの論考は、この状況の根本的な難しさを整理しています。法律は歴史的に、有害な行為がいつどのように発生したかを特定でき

By Qualiteg コンサルティング