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

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


相关文章:

virt-manager配置NAT

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

rqlite:一个基于SQLite构建的分布式数据库

今天给大家介绍一个基于 SQLite 构建的轻量级分布式关系型数据库:rqlite。 rqlite 基于 Raft 协议,结合了 SQLite 的简洁性以及高可用分布式系统的稳健性,对开发者友好,操作极其简便,其核心设计理念是以最低的复杂度实…...

Dynamics 365 Business Central Recurring Sales Lines 经常购买销售行 来作 订阅

#D365 BC ERP# #Navision# 前面有节文章专门介绍了BC 2024 Wave 2 支持的更好的Substription & Recurring Billing。 其实在D365 BC ERP中一直有一个比较简单的订阅模块Recrring Sales Lines。本文将介绍一下如何用Recurring Sales Lines来 实施简易的订阅Substription。具…...

【WebRTC】开源项目Webrtc-streamer介绍

WebRTC-Streamer 这是一个用于通过简单的信令机制(参见 api)流式传输 WebRTC 媒体源的实验项目,支持以下媒体源: 捕获设备 屏幕捕获 mkv 文件 RMTP/RTSP 源 同时该项目也兼容 WHEP 接口。 注意 * 在线演示已停止&#xff0c…...

探索生成式AI在游戏开发中的应用——3D角色生成式 AI 实现

概述 自从开创性论文 Denoising Diffusion Probabilistic Models 发布以来,此类图像生成器一直在改进,生成的图像质量在多个指标上都击败了 GAN,并且与真实图像无法区分。 NeRF: Representing Scenes as Neural Radiance Fields for View S…...

androd的XML页面 跳转 Compose Activity 卡顿问题

解决 XML 点击跳转到 Compose Activity 卡顿问题 当从 XML 布局的 Activity 跳转到 Compose Activity 时出现卡顿现象,这通常是由以下几个原因导致的: 可能的原因及解决方案 1. Compose 首次初始化开销 问题:Compose 框架首次初始化需要时…...

神经网络能不能完全拟合y=x² ???

先说结论:关键看激活函数的选择 ReLU神经网络对非线性函数的拟合分析 ReLU神经网络对非线性函数(如 y x 2 y x^2 yx2)的拟合只能是逼近,而无法实现数学意义上的完全重合。这一结论源于ReLU的分段线性本质与目标函数的非线性结…...

Spring MVC 逻辑视图(JSP、Thymeleaf、FreeMarker)与非逻辑视图(JSON、Excel、PDF、XML)详解及示例

Spring MVC 逻辑视图与非逻辑视图详解及示例 一、逻辑视图与非逻辑视图的定义 类型定义逻辑视图通过视图解析器(ViewResolver)将逻辑名称(如 success)映射到具体视图实现。非逻辑视图直接返回具体视图对象(如 JsonVie…...

K8s 老鸟的配置管理避雷手册

Yining, China 引言 对于这种案例,你们的处理思路是怎么样的呢,是否真正的处理过,如果遇到,你们应该怎么处理。 最后有相关的学习群,有兴趣可以加入。 开始 一、血泪教训:环境变量引发的真实灾难 1.1 …...

云原生周刊:深入探索 kube-scheduler-simulator

开源项目推荐 mcp-server-kubernetes mcp-server-kubernetes 是一个实现了模型上下文协议(MCP)的服务器,旨在通过自然语言与 K8s 集群进行交互。它支持连接到 K8s 集群,列出所有 Pod、服务、部署和节点,创建、描述、…...

3-Visual Studio 2022打包NET开发项目为安装包

引言 本文将上一期博文>>>门店管理系统开发<<<开发的项目打包为Windows安装包 一&#xff0c;安装扩展 安装此扩展&#xff1a;installer Projects 二&#xff0c;创建安装程序项目 创建项目 右键解决方案-添加-新建项目 选择setup Project项目 填写项目名…...

国内外网络安全政策动态(2025年3月)

▶︎ 1.《关于进一步加强智能网联汽车产品准入、召回及软件在线升级管理的通知》发布 3月1日&#xff0c;工业和信息化部、市场监管总局联合发布《关于进一步加强智能网联汽车产品准入、召回及软件在线升级管理的通知》&#xff08;以下简称《通知》&#xff09;。 该通知旨在…...

Kafka 和 Flink的讲解

一、Kafka:分布式消息队列 1. 核心概念 ​​角色​​:Kafka 是一个分布式、高吞吐量的​​消息队列​​(Pub-Sub 模型),用于实时传输数据流。​​关键术语​​: ​​Producer​​(生产者):发送数据的客户端(如传感器、应用日志)。​​Consumer​​(消费者):接收…...

已知Word内容格式固定,通过宏实现Word转Excel

文章目录 需求描述一、宏是什么&#xff1f;二、使用步骤1.启用开发工具2.VBA基础知识3.单个Word文件转为Excel4.批量将Word文件转为Excel文件 总结 需求描述 现在有多个Word文档&#xff0c;Word文档格式固定&#xff0c;假如Word内容分为单选题和多选题&#xff0c;每个题目…...

一文详解OpenGL环境搭建:Ubuntu20.4使用CLion配置OpenGL开发环境

在计算机图形学的广阔领域中,OpenGL作为行业标准的图形库,为开发者提供了强大的工具集来创建从简单的2D图形到复杂的3D世界。然而,对于初学者而言,配置一个合适的开发环境是迈向成功的第一步。本文将详细介绍如何在Ubuntu 20.04.3 LTS操作系统上搭建基于CLion的OpenGL开发环…...

Java面试黄金宝典41

1. IO 种类 定义 在 Java 里,IO(输入 / 输出)主要分为字节流和字符流这两种类型。字节流以字节为单位处理数据,适合处理二进制数据,像图片、音频、视频等;字符流以字符为单位处理数据,适用于处理文本数据。 要点 字节流处理二进制数据,字符流处理文本数据。字节流的基类…...

边缘计算革命:低功耗GPU在自动驾驶实时决策中的应用

边缘计算革命&#xff1a;低功耗GPU在自动驾驶实时决策中的应用 ——分析NVIDIA Jetson与华为昇腾的嵌入式方案差异 一、自动驾驶的实时决策挑战与边缘计算需求 自动驾驶系统需在30ms内完成环境感知、路径规划与车辆控制的全流程闭环‌。传统云端计算受限于网络延迟&#xf…...

【Java面试系列】Spring Boot中自动配置原理与自定义Starter开发实践详解 - 3-5年Java开发必备知识

【Java面试系列】Spring Boot中自动配置原理与自定义Starter开发实践详解 - 3-5年Java开发必备知识 引言 Spring Boot作为Java生态中最流行的框架之一&#xff0c;其自动配置机制和Starter开发是面试中的高频考点。对于3-5年经验的Java开发者来说&#xff0c;深入理解这些原理…...

MySQL的子查询

一、前言 MySQL 子查询是指嵌套在其他 SQL 语句&#xff08;如 SELECT、WHERE、FROM 等&#xff09;内部的查询。用于辅助主查询完成复杂的数据筛选或计算。 二、子查询分类 标量子查询 描述&#xff1a;返回 单行单列&#xff08;一个值&#xff09;&#xff0c;常用于比较运…...

SpringDoc【使用详解】

SpringDoc使用详解 一、何为SpringDoc二、概念解释三、SpringDoc使用2.1简单集成2.2 配置SpringDoc2.2.1 yml方式配置2.2.2配置文档信息 2.3配置文档分组2.4使用注解2.4.1 Tag2.4.2 Operation2.4.3 Schema2.4.4 NotNull2.4.5 Parameter2.4.6 Parameters2.4.7 ApiResponses 和Ap…...

Redis持久化 | RDB AOF | 常见问题

目录 RDB&#xff08;Redis DataBase&#xff09; 给什么内存数据做快照——&#xff08;全量&#xff09; 触发机制 RDB文件生成的时候会阻塞主线程吗&#xff1f; 关闭持久化命令 bgsave执行流程 RDB文件怎么配置&#xff1f;有哪些优缺点 优点&#xff1a; 缺点&am…...

判断矩阵A是否可以相似对角化

【例题1】 【例题2】...

React 列表渲染

开发环境&#xff1a;Reacttsantd 你可能经常需要通过 JavaScript 的数组方法 来操作数组中的数据&#xff0c;从而将一个数据集渲染成多个相似的组件。在这篇文章中&#xff0c;你将学会如何在 React 中使用 filter() 筛选需要渲染的组件和使用 map() 把数组转换成组件数组。 …...

C#核心学习(八)面向对象--封装(7)终章 C#内部类和分部类、密封类

目录 一、内部类&#xff08;Inner Class&#xff09; 1. ​什么是内部类&#xff1f; 2. ​内部类的作用 3. ​如何定义内部类&#xff1f; 4. ​常见应用场景 二、分部类&#xff08;Partial Class&#xff09; 1. ​什么是分部类&#xff1f; 2. ​分部类的写法 3.…...

[ctfshow web入门] web25

信息收集 要想拿到flag&#xff0c;需要突破两层if。 解题 第一个if 传入r0&#xff0c;拿到mt_rand的值&#xff0c;由于每一次访问都会重新设置种子&#xff0c;所以每一次访问都是一样的随机数。 所以我们的r mt_rand-显示的值 1799250188 r1799250188就可以突破第一…...

局域网访问 Redis 方法

局域网访问 Redis 方法 默认情况下&#xff0c;Redis 只允许本机 (127.0.0.1) 访问。如果你想让局域网中的其他设备访问 Redis&#xff0c;需要 修改 Redis 配置&#xff0c;并确保 防火墙放行端口。 方法 1&#xff1a;修改 Redis 配置 1. 修改 redis.conf&#xff08;或 me…...

oracle 索引失效

在 Oracle 11g 中&#xff0c;索引失效的常见原因包括函数修改列、隐式类型转换、统计信息过时等&#xff0c;解决方法需结合版本特性&#xff08;如虚拟列、索引跳跃扫描&#xff09;。通过执行计划分析、统计信息维护和合理使用提示&#xff08;Hints&#xff09;&#xff0c…...

网络安全-等级保护(等保) 0. 前言

各位伙伴好&#xff1a; 招投标总结已过去一年了&#xff0c;时间飞逝&#xff0c;一直忙于工作&#xff0c;等保相关的内容断断续续整理了近半年的时间&#xff0c;但一直无暇完成博客内容。 等保已经是一个成熟的体系&#xff0c;现在已进入等保2.0时代&#xff0c;相关政策…...

【数据结构】树的介绍

目录 一、树1.1什么是树&#xff1f;1.2 树的概念与结构1.3树的相关术语1.4 树形结构实际运用场景 二、二叉树2.1 概念与结构2.2 特殊的二叉树2.2.1 满二叉树2.2.2 完全二叉树 个人主页&#xff0c;点击这里~ 数据结构专栏&#xff0c;点击这里~ 一、树 1.1什么是树&#xff1…...

大模型是如何把向量解码成文字输出的

hidden state 向量 当我们把一句话输入模型后&#xff0c;例如 “Hello world”&#xff1a; token IDs: [15496, 995]经过 Embedding Transformer 层后&#xff0c;会得到每个 token 的中间表示&#xff0c;形状为&#xff1a; hidden_states: (batch_size, seq_len, hidd…...