結論

デフォルトゲートウェイは、自分のネットワークの外へ送るときに最初に渡すルーターです。無いと、外の宛先へは1つも届きません。

この記事でわかること

  • Windows・Mac・Linuxの確認コマンド6つと読み方
  • ゲートウェイ無し・誤設定で出るエラー原文7種
  • .1か.254かの決め方とクラウド2社の予約アドレス

2026年10月17日更新|iproute2 6.1.0・Ubuntu 24.04 で実行確認

パソコンは送るたびに「宛先は同じネットワークか」を判断し、外ならデフォルトゲートウェイに渡します。

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か所で調べました。

  1. ルーターの転送(net.ipv4.ip_forward)が 0 のとき:ルーターの PC 側(eth0)には ping が届いていますが、サーバー側(eth1)には1つも出ていませんでした。ルーターの反対側のアドレス 10.0.20.1 への ping は、転送が 0 でも返ってきます(ルーター自身宛てのため)。
  2. 転送を 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つ目にゲートウェイが出ています。

101番ゲートウェイ無し:Network is unreachableパケットを出す前に、その場でエラー
100%行きだけ設定:packet loss行きは届くが、相手に帰りの道が無い
63TTL両側に設定:届いたルーター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 消す行が無い
ミス 1IP 192.168.10.20/24 に、ゲートウェイ 192.168.1.1
→
正しくゲートウェイも 192.168.10.x にする

Linux では Error: Nexthop has invalid gateway. で登録自体が拒否された

ミス 2サブネットマスクを /16 にしたまま
→
正しくネットワークの実際の範囲(/24 など)に合わせる

192.168.20.10 を「同じネットワーク」と判断して直接 ARP し、Destination Host Unreachable になった

ミス 3予備のつもりでデフォルトゲートウェイを2つ登録
→
正しくデフォルトは1つにし、もう一方は必要な宛先だけの経路にする

メトリックの小さい方だけが使われ、その先が止まっていても切り替わらなかった

ミス 4ip route add だけで設定を終える
→
正しくnetplan・nmcli などの設定ファイルにも書く

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つずつ確かめます。今回の検証で出た結果を目安に並べました。

1

デフォルトゲートウェイがあるかを見る

Linux は ip route show default、Windows は ipconfig、Mac は route -n get default。何も出ない・空欄なら、DHCP が取れていないか、手動設定で入れ忘れています。

症状:Network is unreachable

2

ゲートウェイと自分が同じサブネットかを見る

自分の IP アドレス・サブネットマスクとゲートウェイのアドレスを並べ、同じ範囲かを計算します。マスクの誤りもここで分かります。

症状:Nexthop has invalid gateway/Destination Host Unreachable

3

ゲートウェイへ ping し、MAC が分かるかを見る

ping ゲートウェイのIP のあと、Linux は ip neigh、Windows は arp -a で MAC を確かめます。存在しないアドレスを指定したときは、Linux で 192.168.10.254 dev eth0 INCOMPLETE と出ました。なお、ping に応答しない設定のルーターもあります。

症状:Destination Host Unreachable(送信元が自分)

4

ゲートウェイの先へ traceroute する

Linux・Mac は traceroute -n 宛先、Windows は tracert -d 宛先。1つ目にゲートウェイが出て、その先で止まるなら、ルーター側の経路か上流の問題です。経路が無いルーターからは !N(Net Unreachable)が返りました。

症状:Destination Net Unreachable(送信元がゲートウェイ)

5

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、Mac route -n get default、Linux ip 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期連続の黒字決算。

ABOUT RJC RJCがどんな会社か知る 考え方、研修、働き方、福利厚生、社員の前職まで。RJCのことが丸わかり! RJC丸わかりページへ JOB DESCRIPTION 仕事内容・待遇を見てみる 仕事内容、給与・待遇、選考の流れ。経験者も未経験も!応募前に知りたいこと、まとめました! 募集要項を見る ENTRY エントリーする エントリーは1〜2分・履歴書不要です。まずは話を聞いてみたい、という方でも歓迎です! エントリーフォームへ

RJCで一緒に開発しながら、 成長を楽しみませんか?