配置_网络
配置_网络
网络类型
本节以VirtualBox为例,VMware和Hyper-V的配置有所不同,且一些网络功能受限
vagrant总是会将虚拟机的第一个网卡 (虚拟机的虚拟网卡) 设置为NAT (默认值)
且这第一个网卡不可修改,你可以在此基础上加上一些其他的网络模式,会自动创建其他的虚拟网卡
配置完成后,也可以在 VritualBox 中查看,就能看到多个虚拟机网卡了
网络地址转换 NAT | 配置方式: (默认值) |
特点:
| |
优点:可以访问虚拟机内的服务 | |
缺点:不适合搭建分布式集群 | |
桥接 | 配置方式: |
特点:
| |
仅主机网络 | 配置方式: |
特点:
| |
仅主机适配器 | (已过时) |
内部网络 | |
通用驱动 | |
NAT网络 | 注意: |
云网络 | (试验功能) |
未指定 |
Vagrant 网络:
- NAT(默认)
- 私有网络
- 共有网络
(1) NAT 网络地址转换(默认)
介绍、设置
Vagrant总是将虚拟机的第一个网卡设置为NAT(网络地址转发)。
NAT模式下,虚拟机只能单向访问外部网络(通常用来访问互联网),虚拟机对外部互联网是不可见和无法访问的,虚拟机之间也是相互隔离的。
端口转发
在NAT模式下,如果想访问虚拟机中的端口,可以使用端口转发
配置方式:
config.vm.network "forwarded_port", guest: 80, host: 8080
(3) 私有网络 (仅主机、HostOnly)
介绍、设置
私有网络可以实现虚拟机之间的网络访问,在Virtual Box下,Vagrant将网卡设置为仅主机访问(Host-only)模式。
config.vm.network "private_network", ip: "192.168.56.20"
VirtualBox默认将192.168.56.0/21范围内的地址分配给虚拟机
验证
reload 后,可以简单验证一下:
- ssh时使用新ip
ssh vagrant@192.168.56.20
ssh连接后,
在主机终端 ping 192.168.56.20
也可以在 VirtualBox 中查看虚拟机的网络设置来验证
查看IP地址范围
可以使用以下命令查看IP地址范围
VBoxManage list hostonlynets # 好像报错?
DHCP
也可以使用 DHCP
自动获取IP (不推荐dhcp)
config.vm.network "private_network", type: "dhcp"
注意项
- Windows 下使用Hyper-V创建私有网络无法指定IP,IP由Hyper-V进行分配。详见:https://developer.hashicorp.com/vagrant/docs/providers/hyperv/limitations
- VMware 在 macOS 11 之后,无法指定IP,并且不支持端口转发。详见:https://developer.hashicorp.com/vagrant/docs/providers/vmware/known-issues
(4) 外部网络 (桥接模式)
如果要从别的主机进行访问,也可以设置公有网络。
在VirutualBox中,使用bridge网络实现。
特点:Bridge网络将虚拟机等同为网络中的真实主机,可以像访问其他主机一样访问虚拟机。
设置方式:
- 首先要查看桥接网络接口:
VBoxManage list bridgedifs
打印:
- 然后要设置桥接网络:(这里的bridge值就是刚刚查到的名字)
config.vm.network "public_network", ip: "10.150.36.191", bridge: "en4: USB-eth"
注意:bridge的名称中不能包含中文,Vagrant无法识别,需要修改
- 验证
同一网络的其他主机ping一下,或者在本机上运行:
~ ip addr
# 然后就会看到显示结果中多了一个