Linuxのネットワーク設定ファイル

(2001.1.3の日記を加筆。)

(2011.8.9 加筆。)

Fedora Linux には system-config-networkコマンドがあり、GUIで各種設定ができる。普通はこれで足りる。

(2014.7) 現在は、system-config-network コマンドは廃止され, NetworkManager アプレットが使われる。コマンドラインから起動する場合は, nm-connection-editor または kde-nm-connection-editor.

  • ホストのIPアドレス、DHCPを有効にするか
  • DNSサーバ
  • ホスト名とIPアドレスの固定マッピング
  • など...

見た目はGUIだが、裏では各種設定ファイルが更新される。設定ファイルはUNIXの伝統で、プレーンテキストになっている。どのようなファイルに設定が保存されるのか。

ホスト名、装置

自ホスト名は /etc/sysconfig/network ファイルで設定します。

NETWORKING=yes
HOSTNAME=ホスト名
NETWORKING
ネットワークを有効にするか
HOSTNAME
この機械のホスト名

(2014.7) Fedora 20 では, /etc/sysconfig/network ファイルは空になっている。自ホスト名は /etc/hostname というマンマのファイル名のファイルで設定する。

また、ゲートウェイ、自ホストのIPアドレスなどは、次のファイルで設定します。* は装置名。

  • /etc/sysconfig/network-scripts/ifcfg-*

/etc/sysconfig/network-scripts/ifcfg-* ファイルにそれぞれ、装置 (アダプタ) ごとの設定を記述する。ifcfg-lo, ifcfg-eth0, ifcfg-ppp0 など。

sysconfig/network ファイルと重複する項目は sysconfig/network が優先されるみたい。

例えば、次のようになります。

DEVICE=lo
IPADDR=127.0.0.1
NETMASK=255.0.0.0
NETWORK=127.0.0.0
# If you're having problems with gated making 127.0.0.0/8 a martian,
# you can change this to something else (255.255.255.255, for example)
BROADCAST=127.255.255.255
ONBOOT=yes
NAME=loopback
GATEWAY ルータのIPアドレス
DEVICE 装置名
BOOTPROTO "dhcp"の場合はDHCPクライアントとして動的にIPアドレスを設定する
IPADDR このホストのIPアドレス
NETMASK サブネットマスク
ONBOOT ブート時に有効にするか

ファイルを書き換えたあと,次のようにして再起動します。

# /etc/rc.d/init.d/network restart

FreeBSDの場合

(2015.6.6)

/etc/rc.conf ファイルにホスト名があります。

hostname="freenas"

IPアドレスを静的アドレスに変更するには ifconfig コマンドを使う。

オプションを何もつけずに ifconfig コマンドを実行すると、現在の設定が表示される。

インターフェイス (この例だと em0), 新しい IPアドレスを与える。

# ifconfig em0 192.168.241.29 

ホスト名検索

/etc/host.conf,/etc/hosts,/etc/resolv.confの3ファイルで設定。

/etc/host.conf ファイルで、検索順序を指定。例えば以下だと、/etc/hosts => DNSサーバの順序です。

multi on
order hosts,bind

(2014.7) はるか昔は上記のとおり order で検索順序を指定していましたが, 現在では /etc/host.conf から order コマンドは除去されています。

今では, 名前解決の順序は, /etc/nsswitch.conf で指定するようになっています。例えば, 次のようにします。

hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname

/etc/hostsにはIPアドレスとホスト名,別名を記述する。LAN内の機械がごく少数の場合は、それぞれの機械に /etc/hosts に書くのが手軽。

LAN内のホストを全部書いておく。

127.0.0.1   localhost.localdomain localhost
::1         localhost6
192.168.1.1 orange.fruits         orange

DNSサーバは、/etc/resolv.conf ファイルで指し示す。

nameserver 192.168.1.10