简介
一般情况下,我们使用vagrant是在private_network下自high就可以了,但是如果我们需要和工作环境中的其他服务器通信,就需要将vagrant 的网络配置成 public_network,下面就来介绍下。
配置
1.当我们的工作环境有可以dhcp的,我们只需开启public_network即可
vim Vagrantfile
Vagrant.configure("2") do |config|
config.vm.network "public_network"
end
这种方式最简单,我们可以通过vagrant ssh登陆并使用ifconfig命令查看dhcp分配的ip;但当我们需要dhcp分配时,路由不能改变,通过开启use_dhcp_assigned_default_route即可
vim Vagrantfile
Vagrant.configure("2") do |config|
config.vm.network "public_network",
use_dhcp_assigned_default_route: true
end
2.当我们需要根据实际的工作环境,配置自己想要的static ip
首先我们需要关闭auto_config(自动配置),然后自行配制ip,netmask,route等。
vim Vagrantfile
config.vm.define :admin do |admin|
admin.vm.box = "ubuntu/trusty64"
admin.vm.hostname = "ubuntu-admin"
admin.vm.network "public_network", auto_config: false
admin.vm.provision "shell",
run: "always",
inline: "ifconfig eth1 10.80.80.211 netmask 255.255.0.0 up"
admin.vm.provision "shell",
run: "always",
inline: "route add default gw 10.80.80.1"
admin.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
vagrant reload重新载入配置后,我们查看ip、route信息
root@ubuntu-admin:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
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 group default qlen 1000
link/ether 08:00:27:32:20:37 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe32:2037/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:52:43:a9 brd ff:ff:ff:ff:ff:ff
inet 10.80.80.211/16 brd 10.11.255.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe52:43a9/64 scope link
valid_lft forever preferred_lft forever
root@ubuntu-admin:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.80.80.1 0.0.0.0 UG 0 0 0 eth1
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.11.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
注意: 以上配置文件中的3个config.vm.provision “shell”一般是配合使用的,尤其是第三个作用是删除默认原来的默认路由的,否则当添加我们定义的默认路由,路由表中会有两条默认路由:
vagrant@ubuntu-admin:~$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.80.80.1 0.0.0.0 UG 0 0 0 eth1
0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.11.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
添加第三条后,变成
root@ubuntu-admin:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.80.80.1 0.0.0.0 UG 0 0 0 eth1
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.11.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
ok,至此我们可以无障碍联通内网了,搞起来吧。