
私はすでに Debian や Ubuntu (非常に似ています) などの Linux ディストリビューションに少しは精通していますが、Red Hat ベースの CentOS 6.2 を試してみたかったのです。VirtualBox の Windows 7 ホストにインストールして、少し試してみました。
ちょっとした問題に遭遇しました。つまり、デフォルトのeth0
インターフェースがデフォルトでダウンしているということです。NAT のオプションを使用します (仮想マシンはホストの「背後」にあります)。 でインターフェースを起動してもifconfig eth0 up
、すぐには機能しません。インターフェースを起動すると、次のメッセージが表示されます。
eth0 Link encap:Ethernet HWaddr 08:00:27:0F:00:8A
inet6 addr: fe80::a00:27ff:fe0f:8a/64 Scope:Link
UP BROADCAST RUNNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carriers:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:468 (468.0 b)
Interrupt:19 Base address:0xd020
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
virbr0 Link encap:Ethernet HWaddr 52:54:00:75:C2:9B
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
[root@centos ~]# _
CentOS マシンでネットワークを構成するには、さらに何を行う必要がありますか?
答え1
編集します/etc/sysconfig/network-scripts/ifcfg-$IFNAME
。ONBOOT
行の値を に変更しますyes
。
$IFNAME
eth0
多くのEL6ボックスにはありますが、一貫したネットワークデバイスの命名スキームの場合、 のような他のスキームになることもありますen3p1
。このスキームは EL6 ではオプションですが、EL7 以降ではデフォルトです。 コマンドを使用して、ip link
現在ダウンしているものも含め、ネットワーク インターフェイスの一覧を取得します。
今後のインストールでは、より注意を払ってください。ネットワーク構成セクションのオプションを無視して、起動時にインターフェイスを起動するように指示しました。この起動時のオプションは、EL6 以降ではデフォルトでオフになっていますが、以前のバージョンではデフォルトでオンになっていました。
インストール時の初回起動時にネットワーク インターフェイスが起動するようにするには、ネットワーク構成画面のConfigure
→General
タブに移動し、 というラベルの付いたボックスをオンにしますAutomatically connect to the network when available
。
に関してなぜセキュリティ上の理由から、この設定が変更されたのでしょう。これにより、初めてネットワーク インターフェイスを起動してボックスを外部に公開する前に、デフォルトの設定を少し厳しくすることができます。
答え2
ネットワークに DHCP サーバーがない場合は、静的 IP アドレスを設定する必要があります。次の例を検討してください。
vim /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=none
DEVICE=eth0
IPADDR=192.168.1.10 # your IP address
NETMASK=255.255.255.0 # your netmask
NETWORK=192.168.1.0
ONBOOT=yes
ファイルに GATEWAY を追加します/etc/sysconfig/network
:
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=hostname.domainname
GATEWAY=192.168.1.1 # your gateway
起動時にネットワークを開始するには、次のコマンドを実行します。
chkconfig network on
ネットワーク サービスを再起動します。
service network restart
ネットワークインターフェースを見てみましょう
ifconfig
答え3
使用している CentOS のバージョンについては触れていません。私が間違っていなければ、6.x ではデフォルトで NetworkManager が使用されます。
私はサーバーに X ウィンドウをインストールすることはめったにないので、NetworkManager は私にとっては面倒です。これを無効にして、標準の「ネットワーク」サービスを有効にします。
chkconfig NetworkManager オフ
chkconfig ネットワーク オン
サービス NetworkManager 停止
サービス ネットワーク 開始
インターフェースでDHCPを有効にするには、を実行しsystem-config-network
、適切なデバイスを編集して保存し、ネットワークサービスを再起動します。または、編集し/etc/sysconfig/network-scripts/ifcfg-eth0
て追加することもできます。
ONBOOT=yes
BOOTPROTO=dhcp
変更を保存し、ネットワーク サービスを再起動します。
答え4
実験と読書から得た情報から判断すると、Network Manager はデフォルトで読み込まれるようですが、ネットワーク サービスは読み込まれないという点については、私も uther の意見に同意します。
最近、VM ホストが起動しても ifconfig 出力に eth0 が表示されませんでしたが、これは Network Manager が実行されていて、ネットワークが実行されておらず、ファイルNM_CONTROLLED=no
内に/etc/sysconfig/network-scripts/ifcfg-eth0
.
を実行するとすぐにservice network restart
、ifconfig の出力に eth0 が表示されました。ただし、再起動すると再び消えてしまいました。
私の場合の解決策は、 を設定し、起動時にネットワーク サービスをオンにすることのようですNM_CONTROLLED=no
( /etc/sysconfig/network-scripts/ifcfg-eth0
utherchkconfig network on
と alexnorthsoul が指摘しているように)。NetworkManager をデフォルトでオフにすることもできます (オフにすべきでしょうか?) が、私の環境では今のところ正常に動作しており、他の部分に触れるのは不安です。
ちなみに、私の目標は、システムが選択した静的 IP を尊重するようにすることでした。NetworkManager を実行したまま設定NM_CONTROLLED=yes
(または省略) すると、ifconfig に eth0 が表示されましたが、そのアドレスは静的 IP ではなく DHCP アドレスでした。そのため、NetworkManager をオフにすると DHCP が不要になり、ネットワークをオンにすると静的 IP を含む設定が読み込まれました。
私はシステム管理者ではなく、むしろ開発者なので、これは CentOS の専門家の言葉ではなく、必要な VM の構成を生き延びた者としての言葉です。