linux主机配置nat,Linux - VirtualBox主机模式和NAT双网卡配置

环境准备

Windows 10

VirtualBox

CentOS 7

功能需求

Linux 虚拟机可以共享宿主机网络上的互联网

宿主机与虚拟机以及虚拟机与虚拟机之间互相通讯,组成一个虚拟的局域网,且在主机上可通过 SSH 工具连接虚拟机 Linux

具体实现

步骤一:检查 NAT 模式是否开启 DHCP 支持

61131c7e8c55

NAT 的 DHCP

步骤二:检查 Host-Only 模式的配置信息

61131c7e8c55

Host-Only配置信息

从图中可以得到当前 Host-Only 的主机地址为 192.168.56.1,子网掩码为 255.255.255.0

步骤三:检查当前宿主机的 DNS

例如当前宿主机的 DNS 服务器为 223.5.5.5

步骤四:配置 Linux 虚拟机网卡

配置网卡 1 为 Host-Only 模式

61131c7e8c55

网卡1

配置网卡 2 为 NAT 模式

61131c7e8c55

网卡2

步骤五:进入 Linux 配置网络连接

查看当前网络配置信息,找到第 1 块网卡名称

ifconfig

enp0s3: flags=4163 mtu 1500

inet 192.168.56.198 netmask 255.255.255.0 broadcast 192.168.56.255

inet6 fe80::1d39:2448:19ee:a5e5 prefixlen 64 scopeid 0x20

ether 08:00:27:ed:20:d2 txqueuelen 1000 (Ethernet)

RX packets 162 bytes 14321 (13.9 KiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 172 bytes 31435 (30.6 KiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

enp0s8: flags=4163 mtu 1500

inet 10.0.3.15 netmask 255.255.255.0 broadcast 10.0.3.255

inet6 fe80::b478:ae2e:ec91:199 prefixlen 64 scopeid 0x20

ether 08:00:27:3a:ca:56 txqueuelen 1000 (Ethernet)

RX packets 89 bytes 9664 (9.4 KiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 109 bytes 9144 (8.9 KiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73 mtu 65536

inet 127.0.0.1 netmask 255.0.0.0

inet6 ::1 prefixlen 128 scopeid 0x10

loop txqueuelen 1000 (Local Loopback)

RX packets 0 bytes 0 (0.0 B)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 0 bytes 0 (0.0 B)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

此时可以看到两块网卡 enp0s3 和 enp0s8

其中 enp0s3 是 Host-Only 模式的网卡,enp0s8 是 NAT 模式的网卡

在 /etc/sysconfig/network-scripts/ 中找到第 1 块网卡配置 ifcfg-enp0s3 进行编辑

vim ifcfg-enp0s3

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=static

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=enp0s3

UUID=72da31ca-7436-41ae-8b27-83fa8b9c27a6

DEVICE=enp0s3

ONBOOT=yes

IPADDR=192.168.56.198 # 此处配置该虚拟机的ip地址,注意必须在host-only的网段(192.168.56)内

NETMASK=255.255.255.0 # 子网掩码

GATEWAY=192.168.56.1 # 网关,主机地址

DNS1=223.5.5.5 # dns服务器,与宿主机相同

保存退出,重启网络服务

systemctl restart network

步骤六:连通测试

测试单元 1:虚拟机互联网 ping 通测试

ping baidu.com -c 3

PING baidu.com (220.181.38.148) 56(84) bytes of data.

64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=49 time=38.3 ms

64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=49 time=38.9 ms

64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=3 ttl=49 time=38.9 ms

--- baidu.com ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2003ms

rtt min/avg/max/mdev = 38.356/38.748/38.983/0.360 ms

测试单元 2:虚拟机与宿主机 ping 通测试

提示:如果是 Windows 系统,建议关闭防火墙或者开放 ICMP 端口

在虚拟机中 ping 宿主机

ping 192.168.56.1 -c 3

PING 192.168.56.1 (192.168.56.1) 56(84) bytes of data.

64 bytes from 192.168.56.1: icmp_seq=1 ttl=128 time=0.222 ms

64 bytes from 192.168.56.1: icmp_seq=2 ttl=128 time=0.651 ms

64 bytes from 192.168.56.1: icmp_seq=3 ttl=128 time=0.652 ms

--- 192.168.56.1 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2000ms

rtt min/avg/max/mdev = 0.222/0.508/0.652/0.203 ms

在宿主机中 ping 虚拟机

ping 192.168.56.198

正在 Ping 192.168.56.198 具有 32 字节的数据:

来自 192.168.56.198 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.56.198 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.56.198 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.56.198 的回复: 字节=32 时间<1ms TTL=64

192.168.56.198 的 Ping 统计信息:

数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),

往返行程的估计时间(以毫秒为单位):

最短 = 0ms,最长 = 0ms,平均 = 0ms

测试单元 3:虚拟机与虚拟机 ping 通测试

在两台配置好的虚拟机之间进行

在虚拟机 1 中 ping 虚拟机 2

ping 192.168.56.197 -c 3

PING 192.168.56.197 (192.168.56.197) 56(84) bytes of data.

64 bytes from 192.168.56.197: icmp_seq=1 ttl=64 time=0.469 ms

64 bytes from 192.168.56.197: icmp_seq=2 ttl=64 time=0.765 ms

64 bytes from 192.168.56.197: icmp_seq=3 ttl=64 time=0.478 ms

--- 192.168.56.197 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2042ms

rtt min/avg/max/mdev = 0.469/0.570/0.765/0.140 ms

在虚拟机 2 中 ping 虚拟机 1

ping 192.168.56.198 -c 3

PING 192.168.56.198 (192.168.56.198) 56(84) bytes of data.

64 bytes from 192.168.56.198: icmp_seq=1 ttl=64 time=0.452 ms

64 bytes from 192.168.56.198: icmp_seq=2 ttl=64 time=1.13 ms

64 bytes from 192.168.56.198: icmp_seq=3 ttl=64 time=0.869 ms

--- 192.168.56.198 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2002ms

rtt min/avg/max/mdev = 0.452/0.817/1.131/0.280 ms

测试单元 4:使用 SSH 工具登陆虚拟机

61131c7e8c55

SSH登陆虚拟机

无法 ping 通问题提醒

如果重新开启虚拟机后无法 ping 互联网,可以重启网络服务解决问题

systemctl restart network

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值