admin 管理员组文章数量: 1184232
一开始服务部署到了虚拟机,且虚拟机是nat模式,此时服务需要和同一个局域网的其他主机通信,就需要将nat模式转换成桥接模式,可以理解为nat模式的虚拟机属于主机的附属设备,桥接模式的虚拟机属于局域网中独立的网络节点。
NAT模式
虚拟机通过共享宿主机的IP访问外网,由宿主机通过端口转发进行IP伪装,就类似于家用的路由器原理。
原理:宿主机在启动时会自动构建一个虚拟局域网(例如 10.0.2.0/24 网段),该网段与现实物理网络(例如路由器网段 192.168.0.1/24)完全隔离,彼此不互通,宿主机的虚拟DHCP服务为虚拟机分配该虚拟网段的内网 IP(如 10.0.2.15),用于虚拟网络内部通信,当虚拟机向其他主机发送数据包时,会被宿主机拦截并改写,宿主机再用自己的真实IP替换虚拟机的源地址。
桥接模式
虚拟机完全接入物理网络,成为与宿主机平等的独立设备,可直接与同一个局域网的其他主机进行通信。
nat模式与桥接模式的区别
NAT模式转桥接模式
虚拟机配置
首先虚拟机设置为桥接模式
虚拟机->编辑->虚拟网络编辑器,连到宿主机正在使用的网卡上,连到其他网卡就上不了网了
查看宿主机正在使用的网卡,还要勾选开启主机的桥接协议。
将虚拟机的网络适配器改为桥接模式
网络配置
ip addr
查看网卡
编辑 netplan 配置文件,每台主机的配置文件可能不一样,可以通过ls /etc/netplan/查看,我的是01-network-manager-all.yaml
sudo vim /etc/netplan/01-network-manager-all.yaml
network:
version: 2
renderer: networkd
ethernets:
ens160:
dhcp4: no
addresses: [192.168.0.101/24] # 与宿主机同网段,子网掩码255.255.225.0对应/24
routes:
- to: 0.0.0.0/0
via: 192.168.0.1 # 宿主机网关
nameservers:
addresses: [改为自己内网DNS的ip地址, 8.8.8.8] # 内网dns的ip地址
以上代码的子网掩码和网关必须和宿主机一样,通过ifconfig查看宿主机的子网掩码和网关
要变的是以下两部分
虚拟机可以分配的ip地址范围192.168.0.1 至 192.168.0.254,除了路由器地址192.168.0.1以及宿主机正在用的地址192.168.0.112。
内网的dns可以通过ifconfig查看,但为了安全一般都用dns的域名表示,可以通过resolv.conf查看具体的内网DNS的ip地址
cat /etc/resolv.conf
应用配置
sudo netplan apply
重启网络服务
sudo systemctl restart networking
检查 IP 地址是否成功
验证网络连通性
我实测了一下,虚拟机的服务在nat模式下也是可以被同一局域网的其他主机访问的,需要配置宿主机的端口转发,允许所有接口访问
app.run(host="0.0.0.0", port=5000, debug=True)
版权声明:本文标题:虚拟机NAT模式转桥接 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1766524584a3466628.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论