踩一次vagrant网络的坑
问题描述
使用vagrant启用虚拟机后,局域网内可以访问,但是局域网的无线wifi无法访问
环境描述
主机:
- ip: 192.168.1.189
- netmask: 255.255.255.0
- gateway: 192.168.1.254
虚拟机
- ip: 192.168.1.188
- netmask: 255.255.255.0
- gateway: 此处有坑 下文详细介绍
验证过程
最开始发现这个问题的时候,就已经猜测是网络的问题了
于是我启动另一台windows虚拟机,使用手动配置ip的方式 发现网络是可达的
因此这个地方就可以确定是网关配置的问题了
那么翻一下vagrant的官方文档
找到了这样一个配置
Vagrant.configure("2") do |config|
config.vm.network "public_network", ip: "192.168.0.17"
# default router
config.vm.provision "shell",
run: "always",
inline: "route add default gw 192.168.0.1"
# default router ipv6
config.vm.provision "shell",
run: "always",
inline: "route -A inet6 add default gw fc00::1 eth1"
# delete default gw on eth0
config.vm.provision "shell",
run: "always",
inline: "eval `route -n | awk '{ if ($8 ==\"eth0\" && $2 != \"0.0.0.0\") print \"route del default gw \" $2; }'`"
end
仔细看看这里有一个这样的配置
inline: "route add default gw 192.168.0.1"
那么解决方法就来了
解决问题
首先在虚拟机中ifconfig
查看自己的网卡
我的ubuntu中是enp0s8
(centos中一般是eth1)
修改VagrantFIle如下
config.vm.network "public_network", ip:"192.168.110.191", bridge:"enp4s0"
config.vm.provision "shell", run: "always", inline: "route add default gw 192.168.110.254 enp0s8"
最后执行命令,搞定
vagrnat provision