
我已經有點熟悉 Debian 或 Ubuntu 等 Linux 發行版(是的,非常相似),但我想嘗試基於 Red Hat 的 CentOS 6.2。我已將其安裝在 VirtualBox 中的 Windows 7 主機上,並嘗試使用它。
我遇到一個小問題,即:預設eth0
介面預設是down的。我使用 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 windows,所以 NetworkManager 對我來說只是一個痛苦。我禁用它並啟用標準“網路”服務。
chkconfig NetworkManager 關閉
chkconfig 網路打開
服務網路管理員停止
服務網路啟動
若要在介面上啟用 DHCP,請執行system-config-network
、編輯對應的裝置、儲存並重新啟動網路服務。或者,您可以編輯/etc/sysconfig/network-scripts/ifcfg-eth0
和新增
ONBOOT=yes
BOOTPROTO=dhcp
儲存變更並重新啟動網路服務。
答案4
根據我從實驗和閱讀中收集到的信息,我同意網絡管理器似乎默認加載,但網絡服務不加載。
最近,當我啟動一台虛擬機器主機時,ifconfig 輸出中沒有顯示 eth0,這是因為我NM_CONTROLLED=no
的/etc/sysconfig/network-scripts/ifcfg-eth0
檔案中的網路管理員正在運行,但網路未運行。
我一運行service network restart
,eth0 就出現在 ifconfig 輸出中。然而,重新啟動後,它又消失了。
對我來說,解決方案似乎是設置NM_CONTROLLED=no
,/etc/sysconfig/network-scripts/ifcfg-eth0
然後在啟動時打開網路服務(chkconfig network on
正如 uther 和 alexnorthsoul 指出的那樣)。我可以(應該?)預設關閉 NetworkManager,但它現在對我有用,而且我對接觸其他任何東西感到緊張。
順便說一句,我的目標是讓系統尊重我選擇的靜態 IP。當我讓 NetworkManager 運行並設定NM_CONTROLLED=yes
(或省略它)時,我在 ifconfig 中顯示了 eth0,但該位址是 DHCP 位址,而不是我的靜態 IP。因此,關閉 NetworkManager 可以讓我免受 DHCP 的影響,而開啟網路則使其載入包括靜態 IP 在內的我的設定。
我不是系統管理員,而是開發人員,因此這些不是 CentOS 專家的話,而只是配置我所需的虛擬機器的倖存者。