CentOS/Ubuntuネットワーク周りの設定方法まとめ

同じLinuxでもディストリビューションやバージョンの違いによってコマンドが異なります。

そこでよく使うネットワーク回りのコマンドをまとめてみました。

ホスト名の設定

CentOS 7 / CentOS 8 / Ubuntu 18

hostnamectl set-hostname ホスト名

例:# hostnamectl set-hostname centos

一時的なルーティング設定

CentOS 7 / CentOS 8 / Ubuntu 18

デフォルトゲートウエイ設定

# ip route add 0.0.0.0/0 via 192.168.2.1

ルーティング追加(172.16.0.0/16)

# ip route add 172.16.0.0/16 via 192.168.2.1

ルーティング削除(172.16.0.0/16)

# ip route del 172.16.0.0/16 via 192.168.2.1

nmcliコマンドによるネットワーク設定

CentOSはデフォルトでNetworkManagerを使用している。Ubuntuは以下のコマンドで別途インストールする必要がありますが、Ubuntuでのnmcliコマンドはここでは取り扱いません。

  • sudo snap install network-manager
  • sudo apt install network-manager

IPアドレス設定

CentOS 7 / CentOS 8

「XXX」はインタフェース名

# nmcli c mod XXX ipv4.method manual ipv4.address 192.168.0.123/24

以下のコマンドで反映させる

CentOS 7

# systemctl restart network

CentOS 7 /CentOS 8

# nmcli c down XXX && nmcli up XXX

デフォルトゲートウエイ設定

CentOS 7 / CentOS 8

# nmcli c mod XXX ipv4.gateway 192.168.0.1

DNSサーバー設定

# nmcli c mod XXX ipv4.dns "1.1.1.1 8.8.8.8"

以下のコマンドで反映させる

CentOS 7

# systemctl restart network

CentOS 7 /CentOS 8

# nmcli c down XXX && nmcli up XXX

設定ファイルによるネットワーク設定

dhcp設定

CentOS 7 / CentOS 8

/etc/sysconfig/network-scripts/ifcfg-XXX を編集する(XXXはインタフェース名)。

# 「XXX」はインタフェース名
DEVICE="XXX"
ONBOOT=yes
NETBOOT=yes
IPV6INIT=no
BOOTPROTO=dhcp
TYPE=Ethernet
NAME="XXX"

Ubuntu 18

/etc/netplan/99-network-config.yamlがなければ新規作成します。

インストール方法によって以下のファイルのどちらかに設定がされているかと思いますが、別のディレクトリに待避するか削除してかまいません。

  • /etc/netplan/50-cloud-init.yaml
  • /etc/netplan/01-netcfg.yaml

Ubuntuでインタフェース名を調べる場合はroot権限あるいは一般ユーザーでsudoを用い「lshw -C network」を実行します。「logical name:」という箇所がインタフェースの論理名です。

$ sudo lshw -C network

/etc/netplan/99-network-config.yamlに次のように設定します。

# 「XXX」はインタフェース名
network:
    ethernets:
        XXX:
            addresses: []
            dhcp4: true
    version: 2

設定を反映させるには「sudo netplan apply」を実行します。

$ sudo netplan apply

固定IP設定

IPアドレスとして192.168.2.254/24、デフォルトゲートウエイとして192.168.2.1、DNSサーバーに1.1.1.1/8.8.8.8を設定する場合を想定しています。

CentOS 7 / CentOS 8

固定の場合は「BOOTPROTO=dhcp」を「BOOTPROTO=none」に変えます。

以下の例では9行目以降がDHCPから新規に追加した箇所です。

# 「XXX」はインタフェース名
DEVICE="XXX"
ONBOOT=yes
NETBOOT=yes
IPV6INIT=no
BOOTPROTO=none
TYPE=Ethernet
NAME="XXX"
IPADDR="192.168.2.254"
PREFIX="24"
GATEWAY="192.168.2.1"
DNS1="1.1.1.1"
DNS2="8.8.8.8"

以下のコマンドで反映させる

CentOS 7

# systemctl restart network

CentOS 7 /CentOS 8

# nmcli con load /etc/sysconfig/network-scripts/ifcfg-XXX
# nmcli con down XXX && nmcli up XXX

Ubuntu 18

Ubuntuはnetplanによる設定を行います。netplanは/etc/netplan/配下の「*.yaml」ファイルを名前順に読み込んでいきます。

インストール時に以下のファイルのどちらかが自動的に作成されています。新たに手動で設定する場合は別のディレクトリに待避するか削除してかまいません。

  • /etc/netplan/50-cloud-init.yaml
  • /etc/netplan/01-netcfg.yaml

新規に/etc/netplan/99-network-config.yamlを作成しましょう。

# 「XXX」はインタフェース名
network:
    ethernets:
        XXX:
            addresses: [192.168.2.254/24]
            gateway4: 192.168.2.1
            nameservers:
                addresses: [1.1.1.1, 8.8.8.8]
            dhcp4: no
            routes:
    version: 2

設定を反映させるには「sudo netplan apply」を実行します。

$ sudo netplan apply

ルーティング設定

172.16.0.0/16に対するルーティング設定を追加する事を想定しています。

CentOS 7 / CentOS 8

/etc/sysconfig/network-scripts/route-XXX を編集する(XXXはインタフェース名)。

172.16.0.0/16 via 192.168.2.1

以下のコマンドで反映させる

CentOS 7

# systemctl restart network

CentOS 7 /CentOS 8

# systemctl restart NetworkManager
#
nmcli con down XXX && nmcli up XXX

Ubuntu

※ /etc/netplan/99-network-config.yamlでネットワーク設定しているとします。

# 「XXX」はインタフェース名
network:
    ethernets:
        XXX:
            addresses: [192.168.2.254/24]
            gateway4: 192.168.2.1
            nameservers:
                addresses: [1.1.1.1, 8.8.8.8]
            dhcp4: no
            routes:
                - to: 172.16.0.0/24
                  via: 192.168.2.1
    version: 2

設定を反映させるには「sudo netplan apply」を実行します。

$ sudo netplan apply

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)