【ネットワーク】
Linuxでデフォルトゲートウェイ(default gateway)を設定する方法

ip, route, nmcliコマンド, interfaces,ifcfg-XXXファイル

投稿日 2022/09/22 更新日 2022/09/22


こんにちは。IT業界歴3年目の「元木皇天」です。

今回はLinuxでデフォルトゲートウェイ(default gateway)を設定する方法について解説いたします。

環境
OS:CentOS7

やりたいこと

Linuxで、デフォルトゲートウェイを設定する
(以下はデフォルトゲートウェイに192.168.0.100を設定した例)

デフォルトゲートウェイが設定されている画像 デフォルトゲートウェイが設定されている画像

参考文献

Linux教科書 LPICレベル1 Version5.0対応
Linux教科書 LPIC レベル1 スピードマスター問題集 Version5.0対応
ITエンジニア1年生のためのまんがでわかるLinux シェルスクリプト応用&ネットワーク操作編

ipコマンドでデフォルトゲートウェイを設定する方法

デフォルトゲートウェイを設定する最も一般的なコマンドは「ip」コマンドを使用する方法です。

後述する「route」コマンドでも設定はできますが、Red Hat Enterprice Linux7 や CentOS7では「route」コマンドが廃止されているあたりの経緯を見ると、今後は「ip」コマンドを使用する方が良いのではないかと思います。


ipコマンドを使用してデフォルトゲートウェイを設定するには以下のようにコマンドを入力します。

ip route add default via %ipアドレス%

使用例は以下のような感じです。

例)ip route add default via 192.168.0.100

「via」をつけ忘れないように気をつけてください。

また、「ip」コマンドや後述の「route」コマンドでデフォルトゲートウェイを設定した場合、サーバを起動するとその設定は失われてしまいますので注意してください

永続的にデフォルトゲートウェイを変更したい場合は、後述する「設定ファイル」を使用して設定してください。

routeコマンドでデフォルトゲートウェイを設定する方法

デフォルトゲートウェイを設定するもう一つのコマンドは「route」コマンドを使用する方法です。


routeコマンドを使用してデフォルトゲートウェイを設定するには以下のようにコマンドを入力します。

route add default gw %ipアドレス%

または

route add default %ipアドレス%

使用例は以下のような感じです。

例)route add default 192.168.0.100

「gw」は省略可能です。

また、ipコマンドの解説でも記載した通り、サーバを起動するとその設定は失われてしまいますので、永続的にデフォルトゲートウェイを変更したい場合は、後述する「設定ファイル」を使用して設定してください。

設定ファイルでデフォルトゲートウェイを設定する方法(Debian系)

コマンドを使用して設定したデフォルトゲートウェイは、サーバを再起動するとリセットされてしまいます

永続的にデフォルトゲートウェイを設定する場合は、「設定ファイル」を修正する必要があります。

設定するファイルは「/etc/network/interfaces」です。


まずは以下コマンドを実行して、interfacesファイルを開きます。

sudo vim /etc/network/interfaces

ファイルの中身が表示されるので「i」を押して編集モードにします。

以下のような記述があると思うので「gateway」の箇所にデフォルトゲートウェイのアドレスを記載することで変更することができます。

以下はデフォルトゲートウェイに「192.168.0.100」を設定する例です。

iface enp0s3
iface enp0s3 inet static
address 192.168.XXX.XXX
netmask 255.255.255.0
gateway 192.168.0.100

最後に以下コマンドを実行してネットワークのserviceを再起動すればOKです。

sudo systemctl restart networking

設定ファイルでデフォルトゲートウェイを設定する方法(RedHat系)

RedHat系も設定ファイルを編集することで永続的にデフォルトゲートウェイを設定することができます。

ただ、RedHat Enterprice Linux7やCentOS7以降ではnmcliコマンドを使用して設定することが推奨されています。

ここでは「設定ファイル」を修正する方法と「nmcli」コマンドで設定する2通りを紹介したいと思います。


「nmcli」コマンドで設定する場合は以下のようにコマンドを入力します(以下はネットワークインターフェースenp0s3のデフォルトゲートウェイを設定する例です)。

nmcli connection modify enp0s3 ipv4.gateway 192.168.0.100

その後、以下コマンドを実行して再読み込みします。

nmcli connection reload

これでデフォルトゲートウェイの設定は完了です。


次に設定ファイルでデフォルトゲートウェイを設定する方法を紹介します。

設定するファイルは「/etc/sysconfig/network-scripts/」配下にあるファイルです。

例)ネットワークインターフェースが「enp0s3」の場合「/etc/sysconfig/network-scripts/ifcfg-enp0s3」というファイル。

以下コマンドを実行して設定ファイルを開きます。

sudo vim /etc/sysconfig/network-scripts/ifcfg-enp0s3

ファイルの中身が表示されるので「i」を押して編集モードにします。

以下のような記述があると思うので「GATEWAY」の箇所にデフォルトゲートウェイのアドレスを記載することで変更することができます。

#省略
IPADDR=192.168.XXX.XXX
NETMASK=255.255.255.0
GATEWAY 192.168.0.100

最後に以下コマンドを実行してネットワークのserviceを再起動すればOKです。

sudo systemctl restart NetworkManager

まとめ

Linuxで一時的にデフォルトゲートウェイを設定する場合は
ipコマンド
routeコマンド
を使用します。
永続的に設定する場合は
/etc/network/interfacesファイル
nmcliコマンド
を使用して設定します。

参考文献・おすすめ文献