当前位置: 首页 > news >正文

virt-manager配置NAT

在 ‌virt-manager‌ 中配置 NAT 模式,可以通过以下步骤完成。NAT(Network Address Translation)模式允许虚拟机通过宿主机的网络连接访问外部网络,同时对外隐藏虚拟机的真实 IP 地址。以下是具体操作步骤:


步骤 1:确认默认 NAT 网络是否存在

KVM 默认会创建一个名为 default 的 NAT 网络(使用 virbr0 网桥)。首先检查该网络是否已启用:

virsh net-list --all

如果输出中包含 default 且状态为 ‌active‌,则已启用。否则,启动默认网络:

virsh net-start default virsh net-autostart default # 设置开机自启


步骤 2:为虚拟机配置 NAT 网络

  1. 打开 virt-manager

    virt-manager

  2. 创建或编辑虚拟机

    • 新建虚拟机时,在 ‌网络选择‌ 步骤中,选择 ‌Virtual network 'default': NAT‌。
    • 对已存在的虚拟机,右键选择 ‌Edit‌ -> ‌Virtual Hardware‌ -> ‌NIC‌,设置如下:
      • Network source‌: default(或自定义的 NAT 网络)
      • Device model‌: 默认选择 virtio(高性能驱动)。

 

1. 检查 libvirt 服务状态

确保 libvirtd 服务已运行:

sudo systemctl status libvirtd

若未启动,执行:

sudo systemctl start libvirtd sudo systemctl enable libvirtd # 设置开机自启

2. 验证默认网络定义

查看 /etc/libvirt/qemu/networks/ 目录下是否存在 default.xml

sudo ls /etc/libvirt/qemu/networks/default.xml

若文件丢失,需手动创建或从模板恢复‌。

3. 重新定义默认网络

若网络定义损坏,需删除并重新定义:

# 删除残留配置 sudo virsh net-undefine default # 重新定义默认网络(使用标准 NAT 配置) sudo virsh net-define /usr/share/libvirt/networks/default.xml sudo virsh net-autostart default # 设置自动启动 sudo virsh net-start default

步骤 1:检查宿主机的默认路由

启动虚拟机后,宿主机默认网关可能被错误指向 virbr0(NAT 网桥)。执行以下命令查看路由表:

ip route show default

正常情况应指向宿主机物理网卡(如 eth0wlan0)。若显示类似:

default via 192.168.1.1 dev eth0

若默认路由指向 virbr0(如 192.168.122.1),需手动修复:

sudo ip route del default via 192.168.122.1 sudo ip route add default via [原网关IP] dev [物理网卡名]


步骤 2:排查防火墙规则(关键)

libvirt 默认会修改 iptables/nftables 规则,可能导致宿主机流量被错误拦截。

检查 NAT 规则

sudo iptables -t nat -L -n -v

重点观察 POSTROUTING 链,应有如下规则:

Chain POSTROUTING (允许物理网卡出口流量伪装) MASQUERADE all -- 192.168.122.0/24 !192.168.122.0/24

若缺失该规则,手动添加:

sudo iptables -t nat -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE

恢复宿主机的 FORWARD 策略

若 FORWARD 链默认策略为 DROP,需允许转发:

sudo iptables -I FORWARD 1 -i virbr0 -j ACCEPT sudo iptables -I FORWARD 1 -o virbr0 -j ACCEP


相关文章:

  • 温州制作网站google seo怎么优化
  • 可信赖的手机网站建设微信管理软件哪个最好
  • 石家庄网站建设推广公司报价网站建设教程
  • 网站的设计过程建站工具
  • 网站建设方案书怎么写样版网站备案查询
  • 施工企业必须为职工办理的保险是网站seo优化技巧
  • PPIO × UI-TARS:用自然语言操控电脑,AI Agent 的极致体验
  • 宝塔面板面试内容整理-宝塔面板插件系统
  • RBAC 权限控制:深入到按钮级别的实现
  • geoserver搭建Docker一键直接安装并上传tif影像预览
  • Java 集合有序性与重复性总结及记忆技巧
  • TreeMap 核心知识点与面试题解析
  • Docker 核心组件
  • 【教学类-102-03】自制剪纸图案(留白边、沿线剪)03——Python制作白色描边和黑点虚线间隔(透明png图片)
  • 【Introduction to Reinforcement Learning】翻译解读4
  • KWDB创作者计划—边缘计算:从概念到落地的技术解读
  • 荣耀90 GT信息
  • 【微机及接口技术】- 第八章 可编程并行接口
  • 软考中级-软件设计师 2023年上半年下午题真题解析:通关秘籍+避坑指南
  • R语言进行聚类分析
  • JBDC java数据库连接(2)
  • System V 信号量:控制进程间共享资源的访问
  • WPS JS宏编程教程(从基础到进阶)-- 第五部分:JS数组与WPS结合应用
  • 4.8学习总结 贪心算法+Stream流
  • 获取cookie的chrome插件:Get cookies.txt LOCALLY
  • 前端知识点---闭包(javascript)