パーソナルツール
現在の場所: ホーム Linuxの設定 IPアドレス設定

IPアドレス設定

IPアドレス(NIC)の設定方法

NIC(Network Interface Card)にIPアドレスを設定する方法です。

まずはじめに、IPアドレスの変更は慎重に行いましょう!!失敗するとネットワークに繋がらなくなります。 sshなどでリモートメンテナンスしている際に、設定ミスをするとマシンのある場所まで駆けつけなくてはいけなくなりますよ。 近くにサーバがあるならまだ救われますが、これが遠い場所だったりすると orz

ちなみに、私は何度か失敗して痛い目見ました・・・

Redhat系Linuxの場合

Redhat系linux (FredoraCore CentOS Vine等) は、
/etc/sysconfig/network-scripts/ifcfg-eth0 にて、NICにIPアドレスを設定します。

/etc/sysconfig/network-scripts/ifcfg-eth0設定

NICにIPアドレスを設定するには設定ファイルである、/etc/sysconfig/network-scripts/ifcfg-eth0 を編集します

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
※NICが複数ある場合の設定ファイルは ifcfg-eth0 ifcfg-eth1 ifcfg-eth2 となりますので それぞれ対応する設定ファイルを編集してください。
  • /etc/sysconfig/network-scripts/ifcfg-eth0
  • /etc/sysconfig/network-scripts/ifcfg-eth1
  • /etc/sysconfig/network-scripts/ifcfg-eth2
静的IP(固定IP)の場合

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.1
NETMASK=255.255.255.0
GATEWAY=192.168.1.254

※NICが複数ある場合

ifcfg-eth ファイルにHWADDR項目を追加し、NICのMACアドレスをしておいたほうが良いようです。 NICが複数ある場合はOSが自動的にそれぞれのNICへ eth0 eth1とデバイス名を振るのですが、これが勝手に入れ替わることがあるらしいからです。
MACアドレスはifconfig コマンドで確認してください。

HWADDR=xx:xx:xx:xx:xx:xx    # xx:xx:xx:xx:xx:xxにはNICのMACアドレスを設定

MACアドレス確認方法
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:87:92:9C  <-----MACアドレス inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe87:929c/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1445 errors:0 dropped:0 overruns:0 frame:0 TX packets:1175 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:126449 (123.4 KiB) TX bytes:204789 (199.9 KiB) Interrupt:10 Base address:0x1080
DHCPの場合

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp

設定反映

設定ファイルの変更が終了しても、その情報を反映させなくてはIPアドレスは変更されません。
/etc/rc.d/init.d/networkをrestartすることにより、設定が反映されます。

注意!!

/etc/rc.d/init.d/networkをrestartさせると、IPアドレスが変更されますので sshやtelnet等でリモート作業行っている場合は通信が切断されます。

設定変更は細心の注意をはらって行ってください。間違った設定をしてしまうと通信が出来なくなります・・・

# /etc/rc.d/init.d/network restart
インターフェース eth0 を終了中: [ OK ]
ループバックインターフェースを終了中 [ OK ]
ネットワークパラメーターを設定中: [ OK ]
ループバックインターフェイスを呼び込み中 [ OK ]
インターフェース eth0 を活性化中: [ OK ]
設定確認

/etc/rc.d/init.d/networkのrestartが完了しましたら、ifconfig コマンドを使用して設定内容が正しく反映されているか確認します。

# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:87:92:9C
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe87:929c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1445 errors:0 dropped:0 overruns:0 frame:0
TX packets:1175 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:126449 (123.4 KiB) TX bytes:204789 (199.9 KiB)
Interrupt:10 Base address:0x1080
※ ifconfig -a で、全てのデバイスの情報を表示させることができます。

netconfigによる設定変更

設定ファイル(ifcfg-eth0)を直接編集するのは面倒なんですけど・・・ そんなあなたにお勧めなのがnetconfigというコマンドです。

# netconfig

設定方法は見ただけでわかると思うので省略します・・・:-p
IPアドレスの反映は/etc/rc.d/init.d/network restart です。

一時的なIPアドレス変更

ちょっとテストの為に一時的にIPアドレスを変えてみたい等、理由は色々とあると思いますが 一時的にIPアドレスを変更したいという場合は、ifconfigコマンドを使用することにより IPアドレスを変更することができます。

ただし、このコマンドで変更したIPアドレスはサーバの再起動や/etc/rc.d/init.d/network restart等で /etc/sysconfig/network-scripts/ifcfg-eth ファイルに設定されているIP情報に戻ってしまいます。

書式

ifconfig [デバイス名] [IPアドレス] netmask [サブネットマスク]

注意

何度もしつこいようですが、ifocnfigコマンドでIPアドレスを設定した瞬間にIPアドレスが変更されます。
リモートメンテナンスの場合は十分に注意し作業してください。

設定例
ネットワークデバイスeth1に172.16.0.1/16のIPアドレスを設定する場合
# ifconfig eth1 172.16.0.1 netmask 255.255.0.0
設定確認
# ifconfig eth1
eth1 Link encap:Ethernet HWaddr 00:0C:29:87:92:A6
inet addr:172.16.0.1 Bcast:172.16.255.255 Mask:255.255.0.0
inet6 addr: fe80::20c:29ff:fe87:92a6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:252 errors:0 dropped:0 overruns:0 frame:0
TX packets:86 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:25488 (24.8 KiB) TX bytes:11086 (10.8 KiB)
Interrupt:9 Base address:0x1400