如何在 CentOS 中正確設置 2 個網路介面(在 VirtualBox 中執行)?
我有一台執行 CentOS 6.5 的 VirtualBox 機器。我在 VirtualBox 的機器網路設置中為它創建了 2 個網路適配器。第一個是 NAT,我希望訪客使用它來連接到 Internet,第二個我設置為 Host-only,我將使用它來 SSH 並從主機訪問 Web 伺服器。VirtualBox 論壇上的本教程是我想要實現的目標,但我似乎無法
/etc/network/interfaces
在 CentOS 6.5 上找到該文件,因此我認為配置方式有所不同。設置了 NAT 和 Host-only 適配器後,我啟動了 VM 並做了一個
ip addr show
,我有 2 個介面,eth0
並且eth2
(我不知道為什麼eth1
會以某種方式跳過)。所以我在 中配置這兩個ifcfg-ethX
文件/etc/sysconfig/network-scripts
,設置eth0
為 DHCP(用於 NAT)和eth2
靜態 IP(僅用於主機)。對於eth0
,ONBOOT=yes
而對於eth2
,ONBOOT=no
. 有了這個設置,我可以ping
上網ping -c 3 www.google.com
,即它會得到響應,所以我知道我可以連接到網際網路(當eth2
它關閉時)。接下來,我
ifup eth2
。在主機上,我使用我設置的靜態 IP 進行 SSH,我可以毫無問題地連接。但是當我ping -c www.google.com
這一次這樣做時,它失敗了,我知道我已經失去了與 Internet 的連接,即使eth0
它仍然線上。執行 aroute -n
向我顯示了一個表格輸出,eth2
其中包含第一行和最後一行,而eth0
介於兩者之間(抱歉,我無法發布實際輸出,因為我出於沮喪刪除了 VM……)。我創建了一個新的 CentOS 虛擬機,並希望繼續進行相同的設置。我的network-fu幾乎不存在,所以我很擅長。我想要一些有關如何正確執行此操作的提示(即如何設置 NAT 適配器以使用
eth0
和設置僅主機適配器以使用eth1
和不使用,即使/已啟動並執行eth2
,如何使其仍然可用)。eth0``eth1``eth2
更新
所以我已經啟動並執行了新的虛擬機,如果我將第一個適配器設置為僅主機並將第二個適配器設置為 NAT,它現在似乎可以工作了。它是這樣設置的:
VirtualBox 網路設置
- 網路適配器 1:僅主機(
vboxnet0
IP 地址設置為10.3.0.1
,網路遮罩255.255.255.0
和 DHCP 已關閉)- 網路適配器 2:NAT (DHCP)
CentOS 虛擬機
/etc/sysconfig/network-scripts/ifcfg-ethX
設置# ifcfg-eth0 DEVICE=eth0 HWADDR=08:00:27:EC:6C:B9 TYPE=Ethernet UUID=1339bc30-... ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static DHCPCLASS= IPADDR=10.3.0.100 NETMASK=255.255.255.0 GATEWAY=10.3.0.1 # ifcfg-eth2 DEVICE=eth2 HWADDR=08:00:27:EB:73:BA TYPE=Ethernet UUID=1339bc30-... ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=dhcp
的結果
ip route
10.0.3.0/24 dev eth2 proto kernel scope link src 10.0.3.15 10.3.0.0/24 dev eth0 proto kernel scope link src 10.3.0.100 169.254.0.0/16 dev eth0 scope link metric 1002 169.254.0.0/16 dev eth2 scope link metric 1003 default via 10.0.3.2 dev eth2
的結果
ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:ec:6c:b9 brd ff:ff:ff:ff:ff:ff inet 10.3.0.100/24 brd 10.3.0.255 scope global eth0 inet6 fe80::a00:27ff:feec:6cb9/64 scope link valid_lft forever preferred_lft forever 3: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:eb:73:ba brd ff:ff:ff:ff:ff:ff inet 10.0.0.15/24 brd 10.0.3.255 scope global eth2 inet6 fe80::a00:27ff:feeb:73ba/64 scope link valid_lft forever preferred_lft forever
我猜問題是(或:曾經)網關定義與 DHCP 衝突。不知何故,界面順序似乎影響了這一點。
基本問題是:兩個網卡應該怎麼做路由?據我了解,主機專用卡僅用於連接主機。因此,您根本不應該為此介面定義任何網關。但也許這只有在第一個介面使用 DHCP 時才有效。
此外,您可以考慮完全避免使用 DHCP。NAT 介面也適用於靜態配置。