如何在CentOS中正确设置2个网络接口(在VirtualBox中运行)?


13

我有一台运行CentOS 6.5的VirtualBox机器。我已经在VirtualBox的计算机网络设置中为其创建了2个网络适配器。第一个是NAT,我希望访客使用该NAT连接到Internet,第二个是设置为“仅主机”,它将用于SSH和从主机访问Web服务器。我想在VirtualBox论坛上获得本教程,但是我似乎/etc/network/interfaces在CentOS 6.5上找不到该文件,因此我认为配置是不同的。

有设置NAT和仅主机适配器,我开始了VM,做一个ip addr show和我有2个接口,eth0并且eth2(我不知道为什么eth1莫名其妙地被跳过)。所以我配置这两个ifcfg-ethX文件中/etc/sysconfig/network-scripts,设置eth0为DHCP(对于NAT),并eth2为静态IP(对于仅主机)。对于eth0ONBOOT=yes而对于eth2ONBOOT=no。通过此设置,我可以连接ping到Internet,即ping -c 3 www.google.com得到响应,因此我知道我可以连接到Internet(处于eth2关闭状态)。

接下来,我ifup eth2。在主机上,我使用设置的静态IP进行SSH,并且可以毫无问题地进行连接。但是,当我这样做的ping -c www.google.com时候,它失败了,我知道即使eth0仍在连接中,我也失去了与Internet的连接。这样做会route -n向我显示一个表格输出,eth2其中eth0介于中间的第一行和最后一行(抱歉,我无法删除虚拟机,所以无法发布实际输出...)。

我创建了一个新的CentOS VM,并希望继续进行相同的设置。我的联网功能几乎不存在,所以我很讨厌。我想要一些有关如何正确执行操作的提示(即,如何设置要使用的NAT适配器,eth0以及要使用eth1而不设置的仅主机适配器,即使/ 已启动并正在运行eth2,如何eth0仍然可用)。eth1eth2

更新资料

因此,我已经启动并运行了新的虚拟机,并且如果我将第一个适配器设置为仅主机,将第二个适配器设置为NAT,则现在看来可以正常工作。设置如下:

VirtualBox网络设置

  • 网络适​​配器1:仅主机(vboxnet0IP地址设置为10.3.0.1,网络掩码255.255.255.0和DHCP已关闭)
  • 网络适​​配器2:NAT(DHCP)

CentOS VM /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

您的默认网关是什么?
spuder 2014年

@spuder对于仅主机的接口?如果我没记错的话,vboxnet0(如果仅主机)设置为,192.168.56.1那么我猜这就是默认网关。我不记得NAT接口了。
baktin

如果问题仍然存在,为什么不给我们ip route在新VM上的输出...?还有ip addr
Hauke Laging

@HaukeLaging我已经用您请求的输出更新了问题。它现在似乎可以正常工作,第一个适配器仅用于主机,第二个适配器用于NAT。但是我觉得这是一种解决方法...如果我将第一个适配器设置为NAT,将第二个适配器设置为仅主机,则我想知道执行此操作的最佳方法。
baktin

如果尝试复制此文件,请使用“ ifconfig -a”获取必须在HWADDR行中使用的eth2的MAC。您可能希望将eth2替换为eth1。您可能拥有eth1,而不是eth2
Mangirdas Skripka

Answers:


9

我猜问题是网关定义与DHCP冲突(或曾经是)。接口顺序似乎以某种方式影响了这一点。

基本问题是:如何使用两个网卡进行路由?据我了解,仅主机卡只能用于与主机的连接。因此,您根本不应为此接口定义任何网关。但是,仅当第一个接口使用DHCP时,这才可行。

另外,您可以考虑完全避免DHCP。NAT接口也可以使用静态配置。


2
删除仅主机接口的网关对我有用。谢谢。
baktin

-1

我有一个

Adapter 1 = NAT = eth0
Adapter 2 = Bridged Adapter = eth1

在Oracle Linux(RHEL / CentOS)下,我运行网络连接应用程序
并将eth0设置为固定IP地址
,并将eth1设置为Automatic DHCP。

当您执行ifconfig时,我看到eth0和eth1都设置了inet地址,并且从HOST到GUEST以及从GUEST到Internet的通信都正常。

有时候,我有一段时间没有启动VBOX了,但是我发现通讯无法正常进行。不知道。

今天,我启动了GUEST,但没有网络连接(双向),我重新启动了,并且可以正常工作。

我可能不知道与VBXO升级有关。

顺便说一句:要与Oracle DB通信,请将NAT(eth0)上的端口转发从127.0.0.1设置为来宾IP端口1521。请从VBOX进行此操作。

我也禁用了防火墙。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.