同じ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