- ネットワーク
デフォルトゲートウェイとは|調べ方・設定・決め方をLinuxで実演
結論
デフォルトゲートウェイは、自分のネットワークの外へ送るときに最初に渡すルーターです。無いと、外の宛先へは1つも届きません。
この記事でわかること
- Windows・Mac・Linuxの確認コマンド6つと読み方
- ゲートウェイ無し・誤設定で出るエラー原文7種
- .1か.254かの決め方とクラウド2社の予約アドレス
パソコンは送るたびに「宛先は同じネットワークか」を判断し、外ならデフォルトゲートウェイに渡します。
flowchart TD
A[送り先のIP] --> B{同じ<br>ネットワーク?}
B -->|同じ| C[直接送る]
B -->|外| D{経路表に<br>合う行?}
D -->|ある| E[その<br>ルーターへ]
D -->|ない| F[デフォルト<br>ゲートウェイへ]
OS ごとの調べ方は次のとおりです。
| OS | 確認コマンド | 見る所 |
|---|---|---|
| Windows | ipconfig |
「デフォルト ゲートウェイ」の行 |
| Windows(PowerShell) | Get-NetRoute -DestinationPrefix "0.0.0.0/0" |
NextHop の列 |
| Mac | route -n get default |
gateway: の行 |
| Linux | ip route show default |
via の後ろ |
| Mac・Linux 共通 | netstat -rn |
宛先 default・0.0.0.0 の行 |
| Linux(ip が無い) | cat /proc/net/route |
宛先 00000000 の行(16進) |
確認環境:Ubuntu 24.04.4・Linux カーネル 6.18・iproute2 6.1.0・iputils 20240117(ping)・traceroute 2.1.5・tcpdump 4.99.4・curl 8.5.0・Python 3.11.15。Linux の network namespace(1台の中に独立したネットワークを作る仕組み)で「PC・ルーター・サーバー」の3台と2つのネットワークを作り、ゲートウェイの有無・誤設定で何が起きるかを実際に動かして出力を載せています。Windows・Mac のコマンドと設定は Microsoft Learn・Apple サポート・FreeBSD の route(8)、Linux の設定ファイルは netplan と NetworkManager の公式ドキュメントで確かめました(確認日 2026年10月17日)。
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「デフォルトゲートウェイとは|調べ方・設定・決め方をLinuxで実演」
デフォルトゲートウェイとは
デフォルトゲートウェイ(default gateway)は、送り先への道が経路表(ルーティングテーブル)に無いときに使う「とりあえずの渡し先」です。 家庭なら Wi-Fi ルーターの LAN 側のアドレス(192.168.1.1 など)、会社ならフロアのルーターや L3 スイッチのアドレスがこれにあたります。
| 言葉 | 意味 | 例 |
|---|---|---|
| ゲートウェイ | 別のネットワークへの出入口になる機器 | ルーター、L3 スイッチ、ファイアウォール |
| デフォルトゲートウェイ | 行き先が分からないときに渡す、決まったゲートウェイ | 192.168.1.1 |
| デフォルトルート | 経路表の中で「それ以外すべて」を表す行 | 0.0.0.0/0(Linux は default) |
| ネクストホップ | 次に渡す相手のアドレス | デフォルトルートなら、デフォルトゲートウェイ |
デフォルトゲートウェイは「機器の名前」ではなく「設定の項目」です。 ルーターそのものではなく、パソコン側に設定する「ルーターのアドレス」を指します。Microsoft の Get-NetRoute のドキュメントにも、デフォルトルートのネクストホップのゲートウェイは、デフォルトゲートウェイとも呼ばれる、とあります。
同じネットワークか外かは、サブネットマスクで決まる
パソコンは、自分の IP アドレスとサブネットマスクから「自分のネットワークの範囲」を計算します。送り先がその範囲に入っていれば直接送り、外ならゲートウェイに渡します。この判断の手順は RFC 1122 の 3.3.1.1「Local/Remote Decision」で決められています。
| 自分の設定 | 送り先 | 判断 | 渡す相手 |
|---|---|---|---|
| 192.168.10.10/24 | 192.168.10.20 | 同じネットワーク | 192.168.10.20 へ直接 |
| 192.168.10.10/24 | 10.0.20.10 | 外 | デフォルトゲートウェイ |
| 192.168.10.10/24 | 8.8.8.8 | 外 | デフォルトゲートウェイ |
Linux の ip route get は、この判断の結果をそのまま見せます。via が付いていれば「ゲートウェイ経由」、付いていなければ「直接」です。
ip route get 192.168.10.20
ip route get 10.0.20.10
192.168.10.20 dev eth0 src 192.168.10.10 uid 0
cache
10.0.20.10 via 192.168.10.1 dev eth0 src 192.168.10.10 uid 0
cache
範囲の計算そのものは、関連記事「CIDR計算・サブネット早見表|/0〜/32一覧とPython計算コード」で扱っています。
宛先の IP はそのまま、MAC アドレスだけゲートウェイ宛てになる
ゲートウェイへ渡すとき、パケットの宛先 IP アドレスは書き換わりません。 変わるのは、同じネットワークの中で届けるための宛先 MAC アドレス(機器ごとの物理アドレス)です。PC(192.168.10.10)から外のサーバー(10.0.20.10)へ ping を送り、PC 側で tcpdump -e(MAC アドレスも表示する)を取った結果です。
32:54:a9:63:34:8f > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.10.1 tell 192.168.10.10, length 28
d2:01:1c:87:71:ff > 32:54:a9:63:34:8f, ethertype ARP (0x0806), length 42: Reply 192.168.10.1 is-at d2:01:1c:87:71:ff, length 28
32:54:a9:63:34:8f > d2:01:1c:87:71:ff, ethertype IPv4 (0x0800), length 98: 192.168.10.10 > 10.0.20.10: ICMP echo request, id 1132, seq 1, length 64
d2:01:1c:87:71:ff > 32:54:a9:63:34:8f, ethertype IPv4 (0x0800), length 98: 10.0.20.10 > 192.168.10.10: ICMP echo reply, id 1132, seq 1, length 64
- 1〜2行目:PC が ARP(IP アドレスから MAC アドレスを調べる仕組み)で聞いているのは、サーバーではなくゲートウェイ 192.168.10.1 の MAC アドレス
- 3行目:宛先 IP は 10.0.20.10(サーバー)、宛先 MAC は d2:01:1c:87:71:ff(ゲートウェイ)
この「IP は最終の宛先、MAC は次の相手」という分担が、ゲートウェイの仕組みの中心です。
デフォルトゲートウェイの調べ方(Windows・Mac・Linux)
| OS | コマンド・操作 | 何が出るか |
|---|---|---|
| Windows | ipconfig |
アダプターごとの IPv4 アドレス・サブネットマスク・デフォルト ゲートウェイ |
| Windows | route print |
経路表全体。宛先とマスクが 0.0.0.0 の行のゲートウェイ列 |
| Windows(PowerShell) | Get-NetRoute -DestinationPrefix "0.0.0.0/0" |
デフォルトルートの一覧(NextHop が ゲートウェイ) |
| Mac | route -n get default |
デフォルトルートの1行分の詳細 |
| Mac | netstat -rn -f inet |
IPv4 の経路表。Destination が default の行 |
| Linux | ip route show default |
デフォルトルートの行だけ |
| Linux | ip route get 送り先IP |
その宛先に実際に使われる経路 |
| Linux | route -n / netstat -rn |
net-tools の表形式。Flags に G が付いた行 |
Windows:ipconfig・route print・PowerShell
コマンドプロンプトで ipconfig を実行すると、アダプター(有線 LAN・Wi-Fi など)ごとに「デフォルト ゲートウェイ」(英語版は Default Gateway)の行が出ます。Microsoft のドキュメントでは、ipconfig はパラメーター無しで IPv4・IPv6 アドレス、サブネットマスク、デフォルトゲートウェイを表示する、とあります。
ipconfig
route print
route print では、「ネットワーク宛先」と「ネットマスク」がどちらも 0.0.0.0 の行がデフォルトルートです。その行の「ゲートウェイ」列がデフォルトゲートウェイ、「メトリック」列が優先度(小さいほど優先)です。
PowerShell では、Microsoft のドキュメントの例と同じ書き方で、ゲートウェイのアドレスだけを取り出せます。
Get-NetRoute -DestinationPrefix "0.0.0.0/0" | Select-Object -ExpandProperty "NextHop"
# IPv6 のデフォルトゲートウェイ
Get-NetRoute -DestinationPrefix "::/0" | Select-Object -ExpandProperty "NextHop"
画面で見るときは、「設定」の「ネットワークとインターネット」から、使っている接続のプロパティを開くと、IPv4 の項目にゲートウェイが表示されます。
Mac:route get・netstat・システム設定
route -n get default
netstat -rn -f inet
route get は FreeBSD の route(8) と同じく「宛先への経路を調べて表示する」コマンドで、-n はアドレスを名前に変換せず数字のまま出すオプションです。出力の gateway: の行がデフォルトゲートウェイ、interface: の行がそのとき使われるインターフェイス(en0 など)です。
画面では、アップルメニュー →「システム設定」→ サイドバーの「ネットワーク」→ 使っているサービス →「詳細」→「TCP/IP」の「ルーター」の欄に出ます(Apple サポートの macOS ユーザガイドの手順)。
Linux:ip route と出力の読み方
ip route show default
ip route
今回の検証用の PC で、ゲートウェイを設定したあとの出力です。
default via 192.168.10.1 dev eth0
192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.10
| 出力の部分 | 意味 |
|---|---|
default |
デフォルトルート(0.0.0.0/0 と同じ) |
via 192.168.10.1 |
ネクストホップ。ここがデフォルトゲートウェイ |
dev eth0 |
送り出すインターフェイス |
proto kernel |
カーネルが自動で入れた行(アドレスを付けたときにできる) |
proto dhcp・proto static |
DHCP で受け取った行・管理者が入れた行 |
scope link |
同じリンク上に直接いる相手への行(ゲートウェイを使わない) |
metric 100 |
優先度。小さいほど優先 |
proto と scope の意味は ip-route(8) のマニュアルのとおりです。デフォルトルートが無いときは、ip route show default は何も出さずに終わります(エラーにはなりません)。
net-tools の route -n と netstat -rn でも、同じ内容が表の形で見られます。Flags の G はゲートウェイ経由、U は有効な経路を表します。
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.10.1 0.0.0.0 UG 0 0 0 eth0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
スクリプトで使うなら、JSON で出すと扱いやすくなります。
ip -j route show default
[{"dst":"default","gateway":"192.168.10.1","dev":"eth0","flags":[]}]
ip コマンドが無いコンテナで調べる
最小構成のコンテナには ip も route も入っていないことがあります。その場合は /proc/net/route を読みます。アドレスは16進で、バイトの並びが逆です。
Iface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTT
eth0 00000000 010AA8C0 0003 0 0 0 00000000 0 0 0
eth0 000AA8C0 00000000 0001 0 0 0 00FFFFFF 0 0 0
010AA8C0 を2桁ずつ後ろから読むと C0.A8.0A.01 で、10進にすると 192.168.10.1 です。Python なら次のように変換できます。
import socket, struct
for line in open("/proc/net/route").read().splitlines()[1:]:
f = line.split()
if f[1] == "00000000": # 宛先 0.0.0.0 = デフォルトルート
print(f[0], socket.inet_ntoa(struct.pack("<L", int(f[2], 16))))
eth0 192.168.10.1
ip コマンドのほかの使い方は、関連記事「Linuxネットワークコマンド一覧|ip/ss/ncで障害切り分け」で扱っています。
ゲートウェイが無いとどうなるか(Linuxで再現)
1台の Linux の中に network namespace を3つ作り、次の構成を組みました。ルーターは2つのネットワークの両方にアドレスを持ち、間で転送します。
flowchart TD
PC[PC<br>192.168.10.10/24] --- R1[ルーター eth0<br>192.168.10.1]
R1 --- R2[ルーター eth1<br>10.0.20.1]
R2 --- SV[サーバー<br>10.0.20.10/24]
作り方の要点です(どれも namespace の中だけを変え、ホストの経路表は変えません)。
ip netns add s259-pc; ip netns add s259-rt; ip netns add s259-srv
ip link add s259a type veth peer name s259b # PC とルーターをつなぐ線
ip link add s259c type veth peer name s259d # ルーターとサーバーをつなぐ線
ip link set s259a netns s259-pc; ip link set s259b netns s259-rt
ip link set s259c netns s259-rt; ip link set s259d netns s259-srv
ip -n s259-pc link set s259a name eth0
ip -n s259-rt link set s259b name eth0
ip -n s259-rt link set s259c name eth1
ip -n s259-srv link set s259d name eth0
ip -n s259-pc addr add 192.168.10.10/24 dev eth0
ip -n s259-rt addr add 192.168.10.1/24 dev eth0
ip -n s259-rt addr add 10.0.20.1/24 dev eth1
ip -n s259-srv addr add 10.0.20.10/24 dev eth0
# 各 namespace で lo と eth0(ルーターは eth1 も)を up にする
終わったら ip netns del s259-pc(ほかの2つも)で消すと、中の線や経路もまとめて消えます。
段階1:ゲートウェイ無しでは Network is unreachable
PC の経路表には、自分のネットワーク(192.168.10.0/24)の行しかありません。
$ ip route
192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.10
この状態で外のサーバーへ送ると、パケットを1つも出さずに、その場でエラーになります。 同じネットワークのゲートウェイ(192.168.10.1)には届きます。
$ ping -c 2 -W 1 10.0.20.10
ping: connect: Network is unreachable
$ ping -c 2 -W 1 192.168.10.1
64 bytes from 192.168.10.1: icmp_seq=1 ttl=64 time=0.034 ms
64 bytes from 192.168.10.1: icmp_seq=2 ttl=64 time=0.040 ms
$ ip route get 10.0.20.10
RTNETLINK answers: Network is unreachable
$ curl -sS -m 3 http://10.0.20.10:25900/
curl: (7) Failed to connect to 10.0.20.10 port 25900 after 0 ms: Couldn't connect to server
$ traceroute -n 10.0.20.10
traceroute to 10.0.20.10 (10.0.20.10), 30 hops max, 60 byte packets
connect: Network is unreachable
Python で接続すると OSError: [Errno 101] Network is unreachable になりました。Network is unreachable は「経路表に合う行が無い」という意味で、ゲートウェイ未設定の典型です。
段階2:ゲートウェイを設定しても、帰りの道が無いと届かない
PC にデフォルトゲートウェイを設定します。
ip route add default via 192.168.10.1
$ ip route get 10.0.20.10
10.0.20.10 via 192.168.10.1 dev eth0 src 192.168.10.10 uid 0
cache
$ ping -c 2 -W 1 10.0.20.10
2 packets transmitted, 0 received, 100% packet loss, time 1030ms
エラーは消えましたが、まだ返事が来ません。 原因を2か所で調べました。
- ルーターの転送(
net.ipv4.ip_forward)が 0 のとき:ルーターの PC 側(eth0)には ping が届いていますが、サーバー側(eth1)には1つも出ていませんでした。ルーターの反対側のアドレス 10.0.20.1 への ping は、転送が 0 でも返ってきます(ルーター自身宛てのため)。 - 転送を 1 にしても、まだ 100% packet loss でした。サーバー側で
tcpdumpを取ると、行きの ping は届いています。
IP 192.168.10.10 > 10.0.20.10: ICMP echo request, id 1437, seq 1, length 64
IP 192.168.10.10 > 10.0.20.10: ICMP echo request, id 1437, seq 2, length 64
返事(echo reply)が1行もありません。サーバーにもデフォルトゲートウェイが無く、192.168.10.10 へ返す道が無いためです。サーバーから PC へ ping すると、段階1と同じ ping: connect: Network is unreachable になりました。
段階3:両側にゲートウェイがあると届く
サーバーにもデフォルトゲートウェイ(ルーターのサーバー側 10.0.20.1)を設定します。
# サーバー側
ip route add default via 10.0.20.1
$ ping -c 2 -W 1 10.0.20.10
64 bytes from 10.0.20.10: icmp_seq=1 ttl=63 time=0.029 ms
64 bytes from 10.0.20.10: icmp_seq=2 ttl=63 time=0.049 ms
2 packets transmitted, 2 received, 0% packet loss, time 1005ms
$ curl -sS -o /dev/null -w 'status=%{http_code}\n' http://10.0.20.10:25900/
status=200
$ traceroute -n 10.0.20.10
traceroute to 10.0.20.10 (10.0.20.10), 30 hops max, 60 byte packets
1 192.168.10.1 0.019 ms
2 10.0.20.10 0.007 ms
ttl=63 は、ルーターを1台通るごとに TTL(生存時間)が1減るためです(同じネットワークのゲートウェイへの ping は ttl=64)。traceroute の1つ目にゲートウェイが出ています。
「ゲートウェイを設定したのに届かない」ときは、相手側(またはその先のルーター)の帰りの経路を疑います。 家庭や会社のネットワークでは、帰りの道はルーターや上流の機器が持っているため、ふだんは意識しません。自分でネットワークを組むときや、VPN・複数の NIC があるサーバーで、この形のつまずきが起きます。
デフォルトゲートウェイの設定方法
Linux:ip route(一時的)
# 追加(すでにあると File exists)
sudo ip route add default via 192.168.10.1
# 追加または置き換え
sudo ip route replace default via 192.168.10.1
# 削除
sudo ip route del default
ip-route(8) では、replace は「変更するか、無ければ追加する」です。ip route で入れた設定は再起動で消えます。 残すときは、次の設定ファイルに書きます。
Linux:netplan(Ubuntu など、再起動後も残る)
netplan のドキュメントでは、デフォルトルートは routes に to: default と via で書きます。以前の gateway4 は非推奨(Deprecated)と書かれています。
# /etc/netplan/01-static.yaml
network:
version: 2
ethernets:
eth0:
addresses:
- 192.168.10.10/24
routes:
- to: default
via: 192.168.10.1
nameservers:
addresses: [192.168.10.1]
sudo netplan try # 確認つきで適用(既定の120秒以内に確定しないと元に戻る)
sudo netplan apply
ドキュメントには、デフォルトルートは IP の種類(IPv4・IPv6)とルーティングテーブルごとに1つだけ定義できる、とあります。
Linux:NetworkManager(nmcli)
sudo nmcli connection modify "接続名" ipv4.method manual \
ipv4.addresses 192.168.10.10/24 ipv4.gateway 192.168.10.1
sudo nmcli connection up "接続名"
NetworkManager のドキュメントでは、ipv4.gateway を設定すると、そのゲートウェイをネクストホップにした標準のデフォルトルートが作られる、とあります。ipv4.never-default yes にした接続は、デフォルトルートを持ちません(VPN や管理用の NIC で使います)。
Windows:PowerShell・route・画面
IP アドレスと一緒に設定するときは New-NetIPAddress の -DefaultGateway を使います(InterfaceIndex は Get-NetAdapter で確かめます)。
New-NetIPAddress -InterfaceIndex 12 -IPAddress 192.168.0.10 -PrefixLength 24 -DefaultGateway 192.168.0.1
Microsoft のドキュメントには、IPv4 アドレスを追加するとき、デフォルトゲートウェイは追加する IPv4 アドレスと同じサブネットになければならないと書かれています。
経路だけを足すときは、New-NetRoute か route add です。
New-NetRoute -DestinationPrefix "0.0.0.0/0" -InterfaceIndex 12 -NextHop 192.168.0.1
route add 0.0.0.0 mask 0.0.0.0 192.168.0.1
| 書き方 | 再起動後 | 注意 |
|---|---|---|
route add ... |
消える | mask 0.0.0.0 を省くと既定のマスク 255.255.255.255 になり、デフォルトルートにならない |
route /p add ... |
残る | レジストリの PersistentRoutes に保存される |
New-NetRoute(既定) |
残る | 既定で ActiveStore と PersistentStore の両方に保存。-PolicyStore ActiveStore で一時的のみ |
New-NetRoute の -RouteMetric 省略 |
― | 既定値は 256 |
画面からは「設定」→「ネットワークとインターネット」→ 使っている接続を開き、IP 割り当ての「編集」で「手動」を選んで IPv4 をオンにし、IP アドレス・サブネット マスク・ゲートウェイの各欄に入れて保存します(Microsoft サポートの「TCP/IP 設定を変更する」の手順)。
Mac:システム設定・networksetup
画面からは「システム設定」→「ネットワーク」→ サービス →「詳細」→「TCP/IP」で、「IPv4 の構成」を「手入力」にすると、IP アドレス・サブネットマスク・ルーターを入れられます。コマンドでは、Apple のドキュメントにある networksetup -setmanual(サービス名・IP・マスク・ルーターの順)を使います。
networksetup -listallnetworkservices
sudo networksetup -setmanual "Ethernet" 192.168.100.100 255.255.255.0 192.168.100.1
sudo networksetup -setdhcp "Ethernet" # DHCP に戻す
デフォルトゲートウェイの決め方(.1か.254か)
ゲートウェイのアドレスに、規格で決まった番号はありません。 守る条件と、よく使われる慣習は次のとおりです。
| 種類 | 内容 |
|---|---|
| 必ず守る | 端末と同じサブネットの中のアドレスにする |
| 必ず守る | ネットワークアドレス(/24 なら .0)とブロードキャストアドレス(/24 なら .255)は使わない |
| 必ず守る | ほかの機器と重ならないようにし、DHCP で配る範囲から外す |
| 慣習 | 範囲の先頭(.1)か末尾(.254)に置く。同じ組織の中ではどちらかにそろえる |
| 慣習 | 冗長化(ルーター2台)では、2台の実アドレスとは別に共有の仮想アドレスを置き、それをゲートウェイにする |
.1 と .254 の判断表
| 状況 | 選ぶもの | 理由 |
|---|---|---|
| 家庭用ルーター・既定のまま使う | 機器の初期値(.1 が多い) | 端末は DHCP で受け取るので、変える理由が少ない |
| 社内で新しくネットワークを作る | 既存のネットワークと同じ側 | 「ゲートウェイは必ず .1」のように覚えやすい |
| サーバーの固定アドレスを .1 から順に振っている | .254 | 先頭側をサーバー、末尾側をネットワーク機器に分けられる |
| AWS の VPC | サブネットの先頭+1(自動) | AWS が VPC ルーター用に予約している |
| Azure の仮想ネットワーク | サブネットの先頭+1(自動) | Azure がデフォルトゲートウェイ用に予約している |
AWS のドキュメントでは、10.0.0.0/24 のサブネットなら 10.0.0.1 が VPC ルーター用、10.0.0.2 が DNS 用、10.0.0.3 が将来用に予約されます。Azure も x.x.x.1 をデフォルトゲートウェイ用、.2・.3 を DNS 用に予約しています。クラウドでは自分で決めるのではなく、先頭+1が自動でゲートウェイになります。 VPC の経路の作り方は、関連記事「AWS CLIでVPCを作成する手順|サブネットからIGWまで一式」で扱っています。
よくある設定ミスとエラー原文
検証用の構成で、よくあるミスを1つずつ起こしたときの出力です。
| 起こしたこと | 出たもの(原文) | 原因 |
|---|---|---|
| ゲートウェイ未設定で外へ送る | ping: connect: Network is unreachable |
経路表に合う行が無い |
同じ ip route add default を2回 |
RTNETLINK answers: File exists |
すでにデフォルトルートがある。replace を使う |
| 別のサブネットのアドレスを指定 | Error: Nexthop has invalid gateway. |
ゲートウェイが自分のサブネットの外にある |
| 存在しないアドレス(.254)を指定 | From 192.168.10.10 icmp_seq=1 Destination Host Unreachable |
ゲートウェイの MAC が ARP で分からない |
| ゲートウェイの先に経路が無い | From 192.168.10.1 icmp_seq=1 Destination Net Unreachable |
ルーターが送り先への道を持っていない |
| 相手側にゲートウェイが無い | 100% packet loss(エラー文なし) |
行きは届くが、返事の道が無い |
| デフォルトルートが無いのに削除 | RTNETLINK answers: No such process |
消す行が無い |
Linux では Error: Nexthop has invalid gateway. で登録自体が拒否された
192.168.20.10 を「同じネットワーク」と判断して直接 ARP し、Destination Host Unreachable になった
メトリックの小さい方だけが使われ、その先が止まっていても切り替わらなかった
ip route の設定は再起動で消える
ミス2のサブネットマスクの誤りは見落としやすい形です。PC を 192.168.10.10/16 にすると、ゲートウェイは正しく設定してあるのに、ip route get の結果から via が消えました。
$ ip route get 192.168.20.10
192.168.20.10 dev eth0 src 192.168.10.10 uid 0
cache
$ ping -c 4 -W 1 192.168.20.10
From 192.168.10.10 icmp_seq=1 Destination Host Unreachable
4 packets transmitted, 0 received, +1 errors, 100% packet loss, time 3073ms
マスクを /24 に戻すと、同じ宛先に ttl=63 で届きました。
デフォルトゲートウェイが2つあるとき(メトリック)
デフォルトルートが複数あると、メトリック(優先度)の値が小さい方だけが使われます。 192.168.10.1(動いている)と 192.168.10.254(存在しない)の2つを登録して試しました。
$ ip route show default
default via 192.168.10.254 dev eth0 metric 100
default via 192.168.10.1 dev eth0 metric 200
$ ip route get 10.0.20.10
10.0.20.10 via 192.168.10.254 dev eth0 src 192.168.10.10 uid 0
cache
$ ping -c 2 -W 1 10.0.20.10
2 packets transmitted, 0 received, 100% packet loss, time 1031ms
メトリックの小さい .254 が選ばれ、.254 が応答しなくても .1 へは切り替わりませんでした。 .254 のメトリックを 300 にすると .1 が選ばれ、ttl=63 で届きました。複数のゲートウェイで切り替えたいときは、ルーター側の冗長化(VRRP などで共有の仮想アドレスを持つ)を使い、端末にはそのアドレスを1つだけ設定する形が一般的です。
デフォルトゲートウェイでつながらないときの切り分け
外へつながらないときは、内側から1つずつ確かめます。今回の検証で出た結果を目安に並べました。
デフォルトゲートウェイがあるかを見る
Linux は ip route show default、Windows は ipconfig、Mac は route -n get default。何も出ない・空欄なら、DHCP が取れていないか、手動設定で入れ忘れています。
ゲートウェイと自分が同じサブネットかを見る
自分の IP アドレス・サブネットマスクとゲートウェイのアドレスを並べ、同じ範囲かを計算します。マスクの誤りもここで分かります。
ゲートウェイへ ping し、MAC が分かるかを見る
ping ゲートウェイのIP のあと、Linux は ip neigh、Windows は arp -a で MAC を確かめます。存在しないアドレスを指定したときは、Linux で 192.168.10.254 dev eth0 INCOMPLETE と出ました。なお、ping に応答しない設定のルーターもあります。
ゲートウェイの先へ traceroute する
Linux・Mac は traceroute -n 宛先、Windows は tracert -d 宛先。1つ目にゲートウェイが出て、その先で止まるなら、ルーター側の経路か上流の問題です。経路が無いルーターからは !N(Net Unreachable)が返りました。
IP では届くのに名前で届かないなら DNS を見る
ping 8.8.8.8 は通るのに ping example.com が通らないなら、ゲートウェイではなく DNS の設定の問題です。
エラーの送信元の IP アドレスで、どこで止まったかが分かります。 From 192.168.10.10(自分)なら自分の設定かゲートウェイとの間、From 192.168.10.1(ゲートウェイ)ならゲートウェイより先です。DNS の切り分けは関連記事「nslookupの使い方|逆引き・DNS指定・MX・エラーの意味を実例で」で扱っています。
よくある質問
Q. デフォルトゲートウェイとは何ですか?
A. 自分のネットワークの外へ送るとき、経路表に合う行が無ければ渡す先のルーターのアドレスです。経路表では 0.0.0.0/0(Linux は default)の行のネクストホップにあたります。「デフォルトゲートウェイとは」の節に詳しく書いています。
Q. デフォルトゲートウェイの調べ方は?
A. Windows は ipconfig、Mac は route -n get default、Linux は ip route show default です。冒頭の早見表と「調べ方」の節に、OS ごとのコマンドと見る所をまとめています。
Q. デフォルトゲートウェイの設定はどこでしますか?
A. Linux は一時的なら ip route add default via、残すなら netplan や nmcli、Windows は New-NetIPAddress -DefaultGateway か設定画面、Mac はシステム設定の「TCP/IP」の「ルーター」です。DHCP を使っている場合は自動で設定されます。
Q. デフォルトゲートウェイの決め方は? .1 と .254 のどちらがよいですか? A. 規格の決まりは無く、同じサブネットの中で、ネットワークアドレスとブロードキャストアドレスを避けることが条件です。.1 か .254 にそろえる慣習が多く、AWS・Azure では先頭+1 が自動でゲートウェイになります。
Q. Linux でデフォルトゲートウェイを確認するコマンドは?
A. ip route show default です。via の後ろがゲートウェイです。ip が無い環境では route -n、それも無ければ /proc/net/route を読み、16進のアドレスを逆順に変換します。
まとめ
- デフォルトゲートウェイは、経路表に合う行が無いときに渡すルーターのアドレス。経路表では
0.0.0.0/0(default)の行。 - 渡すときに変わるのは宛先 MAC だけで、宛先 IP は最終の相手のまま。
- 調べ方は Windows
ipconfig、Macroute -n get default、Linuxip route show default。 - 無いと
Network is unreachable。設定しても相手に帰りの道が無いと、エラー文なしで 100% packet loss。 - ゲートウェイは必ず同じサブネットに置く。.1 か .254 は慣習で、クラウドは先頭+1 が自動で決まる。
- デフォルトルートが2つあると、メトリックの小さい方だけが使われ、止まっても自動では切り替わらない。
参考・出典
確認日はいずれも 2026年10月17日です。
- Microsoft Learn「ipconfig」:https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/ipconfig
- Microsoft Learn「route」:https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/route_ws2008
- Microsoft Learn「Get-NetRoute」:https://learn.microsoft.com/en-us/powershell/module/nettcpip/get-netroute
- Microsoft Learn「New-NetRoute」:https://learn.microsoft.com/en-us/powershell/module/nettcpip/new-netroute
- Microsoft Learn「New-NetIPAddress」:https://learn.microsoft.com/en-us/powershell/module/nettcpip/new-netipaddress
- Microsoft サポート「TCP/IP 設定を変更する」:https://support.microsoft.com/ja-jp/windows/tcp-ip-%E8%A8%AD%E5%AE%9A%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B-bd0a07af-15f5-cd6a-363f-ca2b6f391ace
- Apple サポート「Macの「TCP/IP」設定を変更する」:https://support.apple.com/ja-jp/guide/mac-help/mh14129/mac
- Apple サポート「About networksetup in Remote Desktop」:https://support.apple.com/guide/remote-desktop/apdd0c5a2d5/mac
- FreeBSD Manual Pages「route(8)」:https://man.freebsd.org/cgi/man.cgi?query=route&sektion=8
- Linux man-pages「ip-route(8)」:https://man7.org/linux/man-pages/man8/ip-route.8.html
- Netplan「YAML configuration」:https://netplan.readthedocs.io/en/stable/netplan-yaml/
- Netplan「netplan try」:https://netplan.readthedocs.io/en/stable/netplan-try/
- NetworkManager「nm-settings-nmcli」:https://networkmanager.dev/docs/api/latest/nm-settings-nmcli.html
- RFC 1122「Requirements for Internet Hosts -- Communication Layers」:https://www.rfc-editor.org/rfc/rfc1122
- AWS「Subnet CIDR blocks」:https://docs.aws.amazon.com/vpc/latest/userguide/subnet-sizing.html
- Microsoft Learn「Azure Virtual Network FAQ」:https://learn.microsoft.com/en-us/azure/virtual-network/virtual-networks-faq
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「デフォルトゲートウェイとは|調べ方・設定・決め方をLinuxで実演」
株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。
WE ARE HIRING
RJCで一緒に開発しながら、
成長を楽しみませんか?
RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!
- 127日年間休日
- 12時間平均残業時間
- 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!
ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。