【CentOS】ネットワーク確認・変更コマンド【RHEL】


せんとくん


やら赤帽少年のネットワーク関連の設定・確認方法です。

バージョン7からNetworkManagerの利用が推奨されているようですが、7以前のようにファイル編集でも設定はできます。


目次

  • HOSTNAME確認・設定

  • IP設定(NetworkManager使用)

  • IP設定(ファイル編集)

  • 静的経路の追加

  • DNS設定


HOSTNAME確認・設定

hostnamectl

でカーネルやらOS情報やらまとめて見れます。

出力例
[root@host01 /]# hostnamectl
Static hostname: host01
Icon name: computer-vm
Chassis: vm
Machine ID: 07346a5e12704a78a073eb9f111d5765
Boot ID: 848c64cbc5d942d2a7064fbf42540590
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-693.el7.x86_64
Architecture: x86-64


hostname ホスト名

でホスト名を変更できますが、再起動すると元に戻ります。
設定ファイルとしては/etc/hostnameがあるのですが、ここが反映されません。
恒久的に変更する場合は、

hostnamectl set-hostname --static ホスト名

で設定。これで/etc/hostnameにも反映されます。
また、

/etc/sysconfig/network

HOSTNAME=ホスト名

と記載しても反映されます。クラウドでのオーダーなんかだとデフォでこのファイルに記載されている場合があります。
まあどっちゃでもいいでしょう。

IP設定(NetworkManager使用)

設定はnmcliコマンドか、GUI設定ツールのnmtuiを使う方法があります。

systemctl start NetworkManager

でサービス起動。

systemctl start NetworkManager

でネットワークの確認。

出力例
[root@host01 ~]# nmcli
ens160: 接続済み to ens160
"VMware VMXNET3 Ethernet Controller"
ethernet (vmxnet3), 00:50:56:8D:FF:13, hw, mtu 1500
ip4 デフォルト
inet4 192.168.1.100/24
inet6 fe80::250:56ff:fe8d:ff13/64

lo: 管理無し
"lo"
loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536

既知のデバイスに関する情報を取得するには"nmcli device show" を使用します
アクティブな接続プロファイルの概要を取得するには"nmcli connection show" を使用します

使用方法の詳細情報についてはnmcli(1)  nmcli-examples(5)  man ページを参照してください

ご丁寧にオプションの説明書いてくれてる。。

nmcli device show
nmcli connection show

でネットワークデバイスの確認ができます。

nmcli c modify eth0 ipv4.addresses 192.168.1.100/24

でeth0のIP設定。

nmcli c modify eth0 ipv4.gateway 192.168.1.1

でデフォゲ設定。

nmcli c modify eth0 ipv4.dns 192.168.1.10

でDNSの設定。

nmcli connection reload

で設定を反映する。
ここでの設定は/etc/sysconfig/network-scripts/ifcfg-eth0に記述されます。




次は、nmtuiでの設定です。

nmtui

TUIで接続の編集やホスト名変更が可能です。
設定項目みながらポチポチできます。

こんな感じ。



IP設定(ファイル編集)

「NetworkManagerなんか必要ねぇんだよ!」て人もいると思うので、従来の方法も載せときます。

ip a

でアドレスなどの確認。インストールすればifconfigも使えますが、慣れればこっちの方が楽です。

/etc/sysconfig/network-scripts/ifcfg-eth0
を編集して設定。eth0は該当するデバイス名です。
NICが追加されるとそのデバイスの名前をつけた設定ファイルを作成しないといけません。そこは面倒ですね。
よくわからんパラメータが沢山ありますが、基本的に以下のパラメータがあれば大丈夫かなと。 

/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes           #OS起動時に有効化
TYPE=Ethernet
BOOTPROTO=none       #直接IPを指定
IPADDR=192.168.1.100
PREFIX=24
NM_CONTROLLED=NO     #NetworkManagerを使用しない

IPv6使わない場合は項目ごと消しちゃって大丈夫です。
PREFIXの箇所は、
NETMASK=255.255.255.0
のように記述することもできます。


また、IPエイリアスを設定したい場合は
IPADDR1=192.168.1.111
PREFIX1=24
のように追記することで設定できます。

デフォルトゲートウェイの設定は
GATEWAY=192.168.1.1
DEFROUTE=yes
と追記することで設定はできるのですが、NICが複数あったりする場合は以下のファイル1つに記述しておく方がいいです。

/etc/sysconfig/network

GATEWAY=192.168.1.1



ファイル編集後、サービス再起動。

systemctl restart network


静的経路の追加

route add -net 192.168.99.0/24 gw 192.168.0.254 eth0

route add -net IPアドレス/サブネット gw 宛先ルータアドレス 発信するデバイス名
で一時的に追加できます。またip routeコマンドでも設定できますが、これらは再起動すると消えます。


恒久的に追加する場合は

/etc/sysconfig/network-scripts/route-eth0

192.168.9.0/24 via 192.168.0.254 dev eth0

と記述。 
ファイルで既に指定しているので、dev eth0は省略できます。

ip route

でルーティングテーブル確認。

DNS設定

ifcfgファイルに記述することもできますが、/etc/resolv.confに記述するのが一般的です。

/etc/resolv.conf
nameserver 10.70.71.107
nameserver 10.70.71.108

で設定。

nslookup

で確認。コマンドがない場合は、yumなどでbind-utilsをインストールするか、
dig,hostコマンドでも名前解決を調べられます。



以上。