「このサイトにアクセスできません」 「DNSサーバーが応答していません」 「ネットワーク上のコンピューターが見つからない」 「pingは通るのにブラウザでアクセスできない」
こんなエラーに遭遇したことはありませんか?これらの問題の多くは、**名前解決(Name Resolution)**が原因です。
名前解決とは、「google.com」のような人間が読める名前を、「142.250.196.110」のようなIPアドレスに変換する仕組み。この変換がうまくいかないと、インターネットやネットワークに接続できなくなります。
この記事では、Windowsの名前解決の仕組みから、トラブルシューティング、高度な設定まで、ネットワーク問題を解決するために必要な知識をすべて解説します。
名前解決とは?基本を理解しよう

なぜ名前解決が必要なのか
コンピューターが通信するには、必ずIPアドレスが必要です。でも、人間にとってIPアドレスは覚えにくい。
例えば:
覚えやすい:www.google.com
覚えにくい:142.250.196.110
覚えやすい:FileServer
覚えにくい:192.168.1.100
名前解決は、この人間向けの名前をコンピューター向けのIPアドレスに変換する橋渡し役です。
Windowsの名前解決の種類
Windowsは複数の名前解決方法を使います:
方法 | 用途 | 優先度 | 特徴 |
---|---|---|---|
DNSキャッシュ | 全般 | 1番目 | 高速、一時保存 |
hostsファイル | 手動設定 | 2番目 | ローカル優先 |
DNS | インターネット | 3番目 | 標準的 |
NetBIOS | Windows網 | 4番目 | 古いが現役 |
LLMNR | ローカル網 | 5番目 | Windows Vista以降 |
名前解決の流れ
ユーザーが「www.example.com」にアクセス
↓
1. DNSキャッシュを確認
(以前アクセスした記録があるか?)
↓
2. hostsファイルを確認
(手動設定があるか?)
↓
3. DNSサーバーに問い合わせ
(インターネット上で調べる)
↓
4. IPアドレスを取得
(192.0.2.1など)
↓
5. 実際に接続
DNSの仕組みと設定方法
DNSサーバーとは?
DNS(Domain Name System)サーバーは、インターネットの電話帳のような存在です。
DNSの階層構造:
. (ルート)
├── com
│ ├── google.com
│ └── microsoft.com
├── jp
│ ├── co.jp
│ └── ac.jp
└── org
└── wikipedia.org
WindowsのDNS設定を確認・変更
現在のDNS設定を確認:
方法1:コマンドプロンプト
# DNS設定を表示
ipconfig /all
# 特定のネットワークアダプタのみ
ipconfig /all | findstr "DNS"
方法2:設定アプリ(Windows 11/10)
- 設定 → ネットワークとインターネット
- イーサネットまたはWi-Fi
- ハードウェアのプロパティ
- DNS サーバーの割り当てを確認
DNSサーバーを変更する方法
GUI での変更手順:
- ネットワーク接続を開く
- Windows + R →
ncpa.cpl
- Windows + R →
- アダプターのプロパティ
- 該当接続を右クリック → プロパティ
- IPv4プロパティ
- 「インターネットプロトコルバージョン4」を選択
- プロパティをクリック
- DNSサーバーを手動設定
- 「次のDNSサーバーのアドレスを使う」を選択
- 優先/代替DNSサーバーを入力
推奨DNSサーバー:
プロバイダ | 優先DNS | 代替DNS | 特徴 |
---|---|---|---|
8.8.8.8 | 8.8.4.4 | 高速、安定 | |
Cloudflare | 1.1.1.1 | 1.0.0.1 | 最速、プライバシー重視 |
OpenDNS | 208.67.222.222 | 208.67.220.220 | セキュリティ機能 |
Quad9 | 9.9.9.9 | 149.112.112.112 | マルウェアブロック |
PowerShellでDNS設定を変更
# 現在のDNS設定を確認
Get-DnsClientServerAddress
# DNSサーバーを変更(管理者権限必要)
Set-DnsClientServerAddress -InterfaceAlias "Wi-Fi" -ServerAddresses 8.8.8.8, 8.8.4.4
# すべてのインターフェースで変更
Get-NetAdapter | Set-DnsClientServerAddress -ServerAddresses 1.1.1.1, 1.0.0.1
hostsファイルの活用方法
hostsファイルとは?
hostsファイルは、ローカルの名前解決テーブルです。DNSより優先されるため、強制的に特定の名前解決を設定できます。
場所:
C:\Windows\System32\drivers\etc\hosts
hostsファイルの編集方法
管理者権限でメモ帳を開く:
- スタートメニューで「メモ帳」を検索
- 右クリック → 管理者として実行
- ファイル → 開く
- ファイル名に以下を入力:
C:\Windows\System32\drivers\etc\hosts
- ファイルの種類を「すべてのファイル」に変更
- hostsファイルを開く
hostsファイルの記述例
# 基本的な書式
# IPアドレス ホスト名
# ローカルホスト(デフォルト)
127.0.0.1 localhost
::1 localhost
# カスタム設定例
192.168.1.100 fileserver
192.168.1.200 printer
# ウェブサイトのブロック
0.0.0.0 unwanted-site.com
0.0.0.0 ads.example.com
# 開発環境
127.0.0.1 dev.myapp.local
192.168.1.50 test.server
hostsファイルの活用例
1. 広告ブロック
0.0.0.0 doubleclick.net
0.0.0.0 googleadservices.com
2. 開発環境の設定
127.0.0.1 myproject.local
127.0.0.1 api.myproject.local
3. アクセス制限
0.0.0.0 facebook.com
0.0.0.0 twitter.com
4. サーバー移行時のテスト
203.0.113.10 www.mysite.com # 新サーバー
DNSキャッシュの管理

DNSキャッシュとは?
一度解決した名前とIPアドレスの対応を一時的に保存する仕組みです。
メリット:
- 高速な名前解決
- ネットワーク負荷の軽減
- DNSサーバー障害時の一時的な動作継続
デメリット:
- 古い情報が残る可能性
- DNS変更が反映されない
DNSキャッシュを確認する
# DNSキャッシュの内容を表示
ipconfig /displaydns
# 特定のドメインのみ表示
ipconfig /displaydns | findstr google.com
# PowerShellでより詳細に確認
Get-DnsClientCache
# 特定のエントリーのみ
Get-DnsClientCache -Name "*google*"
DNSキャッシュをクリアする
方法1:コマンドプロンプト(管理者)
ipconfig /flushdns
方法2:PowerShell(管理者)
Clear-DnsClientCache
方法3:サービスの再起動
# DNS Client サービスを再起動
net stop dnscache
net start dnscache
自動クリアスクリプト
@echo off
echo DNSキャッシュをクリアしています...
ipconfig /flushdns
echo.
echo DNSキャッシュがクリアされました。
pause
NetBIOS名前解決
NetBIOSとは?
NetBIOS(Network Basic Input/Output System)は、Windows独自の古い名前解決方式です。主にローカルネットワークで使用されます。
特徴:
- コンピューター名で直接アクセス可能
- ワークグループ/ドメイン環境で使用
- 15文字までの制限
NetBIOS名前解決の順序
- NetBIOSキャッシュ
- WINSサーバー(設定されている場合)
- ブロードキャスト(同一サブネット)
- lmhostsファイル
NetBIOS名前を確認・管理
# NetBIOS名前テーブルを表示
nbtstat -n
# NetBIOSキャッシュを表示
nbtstat -c
# リモートコンピューターのNetBIOS名を確認
nbtstat -a コンピューター名
# NetBIOSキャッシュをクリア
nbtstat -R
lmhostsファイルの設定
場所:
C:\Windows\System32\drivers\etc\lmhosts
記述例:
# IPアドレス NetBIOS名 #タグ
192.168.1.10 SERVER1 #PRE
192.168.1.20 PRINTER1 #PRE
192.168.1.30 FILESERVER #PRE #DOM:MYDOMAIN
# #PRE: 起動時にキャッシュに読み込み
# #DOM: ドメインコントローラー
名前解決のトラブルシューティング
基本的な診断コマンド
1. ping – 基本的な接続確認
# ホスト名で確認
ping google.com
# IPアドレスで確認
ping 8.8.8.8
# 継続的にping
ping -t google.com
2. nslookup – DNS解決の詳細確認
# 基本的な名前解決
nslookup google.com
# 特定のDNSサーバーを使用
nslookup google.com 8.8.8.8
# 逆引き(IPからホスト名)
nslookup 142.250.196.110
# 対話モード
nslookup
> set type=MX # MXレコードを調べる
> google.com
3. tracert – 経路確認
# 経路を追跡
tracert google.com
# ホップ数を制限
tracert -h 10 google.com
よくある問題と解決方法
問題1:特定のサイトにアクセスできない
診断手順:
# 1. pingで確認
ping target-site.com
# 2. nslookupで名前解決確認
nslookup target-site.com
# 3. 別のDNSで試す
nslookup target-site.com 8.8.8.8
# 4. IPアドレスで直接アクセス
解決策:
- DNSキャッシュをクリア
- DNSサーバーを変更
- hostsファイルを確認
問題2:「DNSサーバーが応答していません」
解決手順:
- ネットワーク診断を実行
# Windows ネットワーク診断 msdt.exe /id NetworkDiagnosticsNetworkAdapter
- DNS設定をリセット
netsh winsock reset netsh int ip reset ipconfig /release ipconfig /renew ipconfig /flushdns
- DNSサーバーを変更
- Google DNS(8.8.8.8)に変更
- または自動取得に戻す
問題3:社内ネットワークのコンピューターが見つからない
確認事項:
# NetBIOS名で確認
nbtstat -a COMPUTER-NAME
# IPアドレスで確認
ping 192.168.1.100
# ネットワーク探索の確認
# 設定 → ネットワークとインターネット →
# ネットワークと共有センター →
# 共有の詳細設定 → ネットワーク探索を有効
高度な設定とテクニック

複数DNSサーバーの優先順位設定
# インターフェースごとにDNS優先順位を設定
$adapters = Get-NetAdapter | Where-Object {$_.Status -eq "Up"}
foreach ($adapter in $adapters) {
Set-DnsClientServerAddress -InterfaceIndex $adapter.ifIndex `
-ServerAddresses ("8.8.8.8","8.8.4.4","1.1.1.1","1.0.0.1")
}
条件付きDNS転送
特定のドメインだけ別のDNSサーバーを使用:
# 社内ドメインは社内DNSサーバーへ
Add-DnsClientNrptRule -Namespace ".company.local" `
-NameServers "192.168.1.1"
DNS over HTTPS (DoH) の設定
Windows 11/10でプライバシー強化:
- 設定 → ネットワークとインターネット
- イーサネット/Wi-Fi → ハードウェアのプロパティ
- DNS設定の編集
- DNS over HTTPS をオン
レジストリで設定:
# DoHを有効化
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters" `
-Name "EnableAutoDoh" -Value 2 -PropertyType DWord
名前解決の優先順位を変更
レジストリ編集:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\ServiceProvider
HostsPriority: 200 (小さいほど優先)
DnsPriority: 300
LocalPriority: 499
NetbtPriority: 500
パフォーマンス最適化
DNSベンチマークツール
最速のDNSサーバーを見つける:
DNS Benchmark(無料ツール):
- GRC.comからダウンロード
- 「Nameservers」タブで「Run Benchmark」
- 結果を確認して最速サーバーを選択
DNSプリフェッチの設定
ブラウザでDNS解決を先読み:
Microsoft Edge:
edge://settings/privacy
「プリロードページを使用して、閲覧速度とネットワーク速度を高速化する」をオン
Chrome:
chrome://settings/privacy
「ページをプリロード」をオン
DNSキャッシュサイズの調整
# レジストリでキャッシュサイズを増やす
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters" `
-Name "MaxCacheEntryTtlLimit" -Value 86400
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters" `
-Name "MaxSOACacheEntryTtlLimit" -Value 300
セキュリティ対策
DNSハイジャック対策
確認方法:
# 正しいDNSサーバーか確認
nslookup google.com
nslookup google.com 8.8.8.8
# 結果が異なる場合は要注意
対策:
- 信頼できるDNSサーバーを使用
- DNS over HTTPS(DoH)を有効化
- ルーターのDNS設定も確認
DNSキャッシュポイズニング対策
# DNSSECを有効化(Windows Server)
Set-DnsServerCache -EnablePollutionProtection $true
# クライアント側でDNSSEC検証
Set-DnsClientNrptGlobal -EnableDnsSecValidation $true
よくある質問と回答
Q1:IPv4とIPv6で名前解決の違いはある?
A: 基本的な仕組みは同じですが、IPv6では「AAAA」レコードを使用します。Windows は IPv6を優先する設定になっており、IPv6が利用可能な場合はそちらを使います。無効化したい場合は、ネットワークアダプターのプロパティでIPv6のチェックを外してください。
Q2:VPN接続時に名前解決がうまくいかない
A: VPN接続時は、VPNサーバーが提供するDNSサーバーが優先されることがあります。VPNクライアントの設定で、DNSリークを防ぐオプションを確認し、必要に応じて手動でDNSサーバーを指定してください。
Q3:hostsファイルの変更が反映されない
A:
- 管理者権限で編集したか確認
- ファイルの拡張子が「.txt」になっていないか確認
- DNSキャッシュをクリア(
ipconfig /flushdns
) - ブラウザのキャッシュもクリア
- Windows Defenderなどがブロックしていないか確認
Q4:社内と社外で異なるDNS設定を使いたい
A: ネットワークプロファイルごとに設定するか、PowerShellスクリプトで自動切り替えを設定できます。また、企業環境では、Active DirectoryのグループポリシーでDNS設定を管理することも可能です。
Q5:名前解決が遅い原因は?
A:
- DNSサーバーの応答が遅い → 別のDNSサーバーに変更
- ネットワークの遅延 → tracertで経路確認
- DNSキャッシュの問題 → キャッシュをクリア
- マルウェアの影響 → セキュリティスキャン実行
まとめ:名前解決をマスターしてネットワークトラブルを解決
Windowsの名前解決を理解することで、多くのネットワーク問題を自力で解決できるようになります。
重要ポイントのおさらい:
- 名前解決の優先順位を理解
- DNSキャッシュ → hosts → DNS → NetBIOS
- それぞれの役割と特徴を把握
- 基本的なトラブルシューティング
ipconfig /flushdns
でキャッシュクリアnslookup
で名前解決を確認- DNSサーバーを 8.8.8.8 に変更してテスト
- 高度な活用法
- hostsファイルで開発環境構築
- DNS over HTTPSでセキュリティ強化
- 複数DNSサーバーで冗長性確保
- 定期的なメンテナンス
- DNSキャッシュの定期クリア
- hostsファイルの整理
- DNSサーバーの応答速度確認
ネットワークトラブルの8割は名前解決が原因と言われています。この記事で学んだ知識を活用して、快適なネットワーク環境を構築しましょう!
コメント