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エージェントを"事業に載せる"ために【第3回】AI導入を止めないために、実務で先に設計すべきこと

AIエージェントを"事業に載せる"ために【第3回】AI導入を止めないために、実務で先に設計すべきこと

— AI導入を"事業に載せる"ために、いま設計すべきこと(全3回) こんにちは!Qualitegコンサルティングチームです。 今回の「AI導入を“事業に載せる”ために、いま設計すべきこと」シリーズも、いよいよ第3回です。 第1回では、実際のAI導入事故を通じて、AIエージェントのリスクが単なる技術不良ではなく、権限や運用設計の不在から生まれることを見てきました。第2回では、事故が起きたときに責任をどこに置くのか、法務・契約・組織の観点から責任分解の難しさを整理しました。 では、AI導入を止めずに前に進めるためには、実務として何を先に設計しておくべきなのでしょうか。 本記事では、品質保証の転換、人間レビューの限界、海外で進む保険市場の変化も踏まえながら、AIエージェント導入前に設計すべき5つの領域と、経営として先に答えるべき3つの問いを整理します。 1. 品質保証の転換:「AIは自信を持って間違える」を前提にする 従来のソフトウェアの品質保証は、少なくとも同じ入力に対して同じ結果を期待しやすく、仕様・テスト・再現性を軸に品質を確認する考え方に立っていました。 ISACA

By Qualiteg コンサルティング
主要LLMプロバイダーのAPI料金表 — Claude / GPT / Gemini/Grok 【2026年5月13日時点】

主要LLMプロバイダーのAPI料金表 — Claude / GPT / Gemini/Grok 【2026年5月13日時点】

こんにちは、 今回は、主要LLMプロバイダー( Claude / GPT /Gemini/Grok)のAPI料金表  をまとめてみました。(2026年5月13日時点) プロバイダ別 料金一覧 まずは各社の現行ラインナップを縦に並べた一覧をご紹介します。価格はすべて per 1M tokens、円表記は 1ドル=160円換算です。 Anthropic(Claude) モデル Status Context Input Output Cached Input Claude Opus 4.7 Fast Mode Beta(Opus専用) 1M $30.00<br>(¥4,800) $150.00<br>

By Qualiteg プロダクト開発部
コーディングエージェントの現状と未来への展望 【第3回】"書くAI"から"指揮するAI"へ──2026年の開発現場で起きている変化

コーディングエージェントの現状と未来への展望 【第3回】"書くAI"から"指揮するAI"へ──2026年の開発現場で起きている変化

こんにちは! コーディングエージェントシリーズ、ついに最終回です! 2026年に入り、Claude Code、Cursor 3、GitHub Copilot Coding Agentはいずれも、単なるコード補完やチャット型支援を超え、複数エージェントを使った開発ワークフローへ進化しつつあります。本稿では、AIコーディングエージェントの最新動向を、Claude CodeのAuto Memory / Subagents、Cursor 3のAgents Window、GitHub CopilotのCoding Agent、そしてSWE-benchの読み方まで含めて整理します。 第1回では、2025年12月時点で百花繚乱状態にあったAIコーディングエージェントの全体像を俯瞰し、商用からOSSまで20以上のツールを「CLIベース」「IDE統合型」「AI特化IDE型」「自律型」の4つのカテゴリに整理しました。 第2回では、Claude Code・Codex CLI・Aiderを詳細比較したうえで、現在のコーディングエージェントが共通して抱える構造的課題——コンテキストウィンドウの限界、セッ

By Qualiteg コンサルティング
Windows版 Claude Code を irm でインストールして「claude is not recognized」を直すまで

Windows版 Claude Code を irm でインストールして「claude is not recognized」を直すまで

こんにちは! 公式PowerShellインストーラー(irm https://claude.ai/install.ps1 | iex)で Claude Code を入れたのに、claude --version を叩くと「The term 'claude' is not recognized as a name of a cmdlet...」と怒られるときがあります これは Anthropic 公式 GitHub にも報告されている 既知のバグで、インストーラーが PATH の追加を忘れています。実際にインストール作業をやって詰まったので、最短の解決手順をまとめます。 環境 * Windows 11 * PowerShell 7.x(コードは PowerShell

By Qualiteg プロダクト開発部