解决虚拟机桥接上不了网的问题

解决这个小问题看了不知道多少博客,现在解决了给记录一下。
一、准备工作
尝试之前注意先提前关闭主机和虚拟机的防火墙,确定你的主机桥接协议勾选了(搜索网络连接->右键属性你联网的网口或者路由,有一个bridged networking driver,给勾选上),虚拟机网络连接方式是桥接,并且你桥接的网卡是你的上网卡(VMware:编辑 -> 虚拟网络编辑器 -> 更改设置 -> 选择桥接模式 ->选择网卡;VituralBox:设备->网络->网卡名称)。
以上设置的图示:
windows系统上的设置:
1、关闭防火墙
在这里插入图片描述
Ubuntu:

sudo ufw disable

2、设置桥接
在这里插入图片描述
虚拟机上也修改为桥接,并选择好你的网卡。
在这里插入图片描述

二、具体配置
1、主机cmd框里,输入ipconfig,查看你上网的那个网卡的IPv4地址,子网掩码,默认网关是多少,记下来。

例如我的分别是:

192.168.28.157
255.255.252.0
192.168.28.1

2、vim /etc/sysconfig/network-scripts/ifcfg-en(按tab自动补全,这其实就是你网卡的名字)

BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.28.xxx # xxx填一个跟你主机地址不冲突192.168.28.157的地址,例如166
NETMASK=255.255.252.0 # 子网掩码,与主机一致
GATEWAY=192.168.28.1 # 网关 ,与主机一致

3、:wq 保存退出,重启网络服务

service network restart

如果你这里ping 百度还是ping不通,继续:

4、增加nameserver

vim /etc/resolv.conf

增加如下内容:

nameserver 114.114.114.114
nameserver 8.8.8.8

然后就能ping通了。

5、如果还是不行,虚拟机里输入

ip addr

看一下你上网那个网口或者路由(例如我的是enp0s3)的link/ether是多少(link/etherbrd关键词之间的那串东西),复制下来

vim /etc/sysconfig/network-scripts/ifcfg-en(按tab自动补全)

加上一行:

HWADDR=XXX #XXX是你复制的那串东西

6、:wq 保存退出,重启网络服务

service network restart

7、我看其他教程这里重启会报错:
关闭NetworkManager即可,我没遇到报错,遇到的自行试一下:

service stop NetworkManager
service disable NetworkManager

如果你试了没用,你想重新开启:

systemctl enable NetworkManager
# 重启一下
reboot

对于Ubuntu 24:

sudo vim /etc/netplan/50-cloud-init.yaml
# 这里你的不一定是50-cloud-init.yaml, 自己看一下是什么
# 改成下面这样,并且注意缩进。
network:
	version: 2
	renderer:networkd
	ethernets:
		enp0s3: # 这是你的网卡名,与我不一样是正常的,你不要做修改。
			dhcp4: false
			dhcp6: false
			addresses: [192.168.28.240/24] # 自己设置一个与主机一个网段的静态ip
			routes:
			 - to: default # “-” 不能省略
			   via: 192.168.28.1 # 这个是网关
			nameservers:
				addresses: [8.8.8.8, 8.8.4.4]
sudo netplan apply
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐