安装centos7
# 初始化centos7
进入你想初始化镜像的文件夹
进入当前目录cmd
运行初始化镜像命令 Vagrant官方镜像仓库](https://app.vagrantup.com/boxes/search)
vagrant init centos/7
# 启动虚拟机
同目录下执行如下命令
vagrant up
virtualbox 会自动同步启动虚拟机
注意:
启动成功后会自动创建两个账号,不过这两个账号目前是不支持远程连接的需要开启才行
vagrant/vagrant
root/vagrant
# 连接虚拟机
# vagrant 连接
输入如下命令进行连接虚拟机
vagrant ssh
# 其他工具连接
默认情况下是通过127.0.0.1也就是本地地址及通过端口转发来进行访问的虚拟机,这样对于开发不太方便,我们可以去修改固定的IP地址,操作如下:
# ①查看自己物理机virtualbox的主机ip
ipconfig
或者可以自己修改网络适配器手动配置一个ip地址
# ②根据子网地址我们自定义一个ip地址:192.168.10.3
编辑生成的Vagrantfile文件
config.vm.network "private_network", ip: "192.168.10.3"
# ③重新加载虚拟机,重置配置文件
vagrant reload
# ④连接虚拟机,进行网络测试
连接虚拟机vagrant ssh
默认只允许ssh登录方式,为了后来操作方便,文件上传等,我们可以配置允许账号密码登录
vagrant ssh 进去系统之后
vi /etc/ssh/sshd_config开启远程连接权限
将 PasswordAuthentication no 改为 PasswordAuthentication yes
开启root密码登入
将PermitRootLogin状态改为yes,开启root登入
重启sshd服务
systemctl restart sshd
# 修改linux的yum源
备份旧yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
使用新yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
生成缓存
yum makecache
# 永久配置 DNS 解析
# 方法 1:修改网络接口配置文件
1、确定网络接口名称
运行命令查看当前使用的网络接口(如 eth0、enp0s3 等):
ip addr
# 或
nmcli device status
2
3
2、编辑网络配置文件
进入 /etc/sysconfig/network-scripts/ 目录,编辑对应的接口配置文件(如 ifcfg-eth0):
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
3、添加 DNS 配置
在文件中添加或修改以下行(以 Google DNS 为例):
DNS1=8.8.8.8
DNS2=8.8.4.4
PEERDNS=no # 阻止 DHCP 覆盖 DNS 设置
2
3
4、重启网络服务
sudo systemctl restart network
# 方法 2:使用 nmcli 命令(推荐)
1、查看当前连接名称
nmcli connection show
# 输出类似 "System eth0" 或 "Wired connection 1"
[root@localhost ~]# nmcli connection show
NAME UUID TYPE DEVICE
System eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0
System eth1 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 ethernet eth1
2
3
4
5
6
7
2、修改 DNS 设置
替换 CONNECTION_NAME 为实际的连接名称:
sudo nmcli connection modify <CONNECTION_NAME> ipv4.dns "8.8.8.8 8.8.4.4"
sudo nmcli connection modify <CONNECTION_NAME> ipv4.ignore-auto-dns yes # 禁用 DHCP 的 DNS
# 参考如下
sudo nmcli connection modify 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 ipv4.dns "8.8.8.8 8.8.4.4"
sudo nmcli connection modify 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 ipv4.ignore-auto-dns yes # 禁用 DHCP 的 DNS
2
3
4
5
6
3、应用配置
sudo nmcli connection down <CONNECTION_NAME> && sudo nmcli connection up <CONNECTION_NAME>
# 参考如下
sudo nmcli connection down 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04 && sudo nmcli connection up 9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04
2
3
4
# 常见问题
# Name or service not known
ping: www.baidu.com: Name or service not known
# 1. 检查虚拟机网络连通性
首先确认虚拟机是否能访问外部网络:
ping 8.8.8.8 # 测试是否能连接公共DNS服务器
- 如果能ping通IP但无法解析域名 → 问题出在DNS配置。
- 如果连IP也无法ping通 → 问题出在网络连接(如网关、防火墙、Vagrant网络模式配置)。
# 2. 检查DNS配置
查看DNS服务器配置:
cat /etc/resolv.conf
正常情况应包含有效的DNS服务器地址,例如:
nameserver 8.8.8.8 # Google DNS
nameserver 114.114.114.114 # 国内公共DNS
2
如果DNS配置错误或缺失:
临时修复:手动修改
/etc/resolv.conf(重启后可能失效):echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf1永久修复:修改网络管理器配置(不同系统操作不同):
Ubuntu (Netplan):
sudo nano /etc/netplan/50-cloud-init.yaml # 或类似文件名 # 添加DNS配置 network: ethernets: eth0: dhcp4: true nameservers: addresses: [8.8.8.8, 114.114.114.114]1
2
3
4
5
6
7
8应用配置:
sudo netplan apply1CentOS:
sudo nmcli con mod eth0 ipv4.dns "8.8.8.8 114.114.114.114" sudo systemctl restart NetworkManager1
2
# 3. 检查Vagrant网络配置
Vagrant默认使用NAT网络模式,虚拟机依赖宿主机进行NAT转发。如果宿主机DNS有问题,可能导致虚拟机无法解析域名。尝试以下方法:
方法1:启用Vagrant自动DNS配置
在
Vagrantfile中添加以下配置,让Vagrant自动管理DNS:config.vm.provision "shell", run: "always", inline: <<-SHELL echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf SHELL1
2
3重启虚拟机:
vagrant reload1**注意:**这个方式每次都必须执行vagrant reload 不然不生效
方法2:切换为桥接或公有网络
在
Vagrantfile中启用公有网络,使虚拟机直接从路由器获取IP和DNS:config.vm.network "public_network"1重启后重新测试:
vagrant reload1