PVE只有一个IP,如何让内部的虚拟机也能上网。SNAT源地址转换

PVE只有一个IP,如何让内部的虚拟机也能上网。--SNAT源地址转换

通常我们租用云厂商的VPS或者独服服务器,运营商基本只会给你提供一个IP,这就使得我们在PVE下的虚拟机/LXC容器没法正常提供外部网络,因此我们需要在PVE下配置内部的桥接网络,设置SNAT规则和DHCP。

首先,我应该明确SNAT和DHCP各自的作用。SNAT,即源地址转换,用于将虚拟机的内部IP地址转换为宿主机的外部IP地址,这样虚拟机就可以访问外部网络。而DHCP则负责为虚拟机分配内部IP地址,简化网络配置。

配置SNAT和DHCP

我的腾讯轻量云4核4G8M的VPS安装了PVE8.4,只有一个IPv4和IPv6,目前PVE内部的LXC容器无法直接获取到IP地址,导致它们无法直接访问互联网。需要通过PVE的SNAT(源地址转换)和DHCP(自动分配IP地址给内部的虚拟机和容器),让这些虚拟机和容器能够上网。

安装dnsmasq

为了使用DHCP功能,需要额外安装 dnsmasq。通过以下命令执行:

apt install dnsmasq

禁用默认的 dnsmasq 服务

systemctl disable --now dnsmasq

配置SDN

创建Simple区域

步骤:数据中心 → SDN → 区域 → 添加Simple → 填写名称ID → 勾选DHCP

PVE只有一个IP,如何让内部的虚拟机也能上网。SNAT源地址转换

创建Vnets

步骤:数据中心 → SDN → Vnets → 创建VNet → 填写名称 → 勾选区域

PVE只有一个IP,如何让内部的虚拟机也能上网。SNAT源地址转换

创建子网

步骤:数据中心 → SDN → Vnets → 选中创建好的VNet → 创建子网 → 填写子网网段和网关 → 勾选SNAT

PVE只有一个IP,如何让内部的虚拟机也能上网。SNAT源地址转换

配置DHCP范围

步骤:数据中心 → SDN → Vnets → 选中创建好的VNet → 选中子网 → DHCP范围 → 添加IP范围

PVE只有一个IP,如何让内部的虚拟机也能上网。SNAT源地址转换

都已设置完毕,我们需要应用更改。在SDN面板并单击“应用”来完成。确保网络重新加载任务成功完成。如果它完成且没有任何错误或警告,您应该能够使用新创建的 VNet。

PVE只有一个IP,如何让内部的虚拟机也能上网。SNAT源地址转换

部分这样应用之后会error,需要在 /etc/netwrok/interfaces 末尾加上一条

source /etc/network/interfaces.d/*

或者,如果你希望更精确地只包含 SDN 配置文件,可以使用:

source /etc/network/interfaces.d/sdn

配置防火墙

如果使用 PVE 防火墙,则还需要在 VNet 接口上允许 DHCP 转发和 DNS 流量。否则,您的访客将无法联系 dnsmasq 进行 DHCP 租约和 DNS 查询。为此,请向数据中心防火墙添加两个规则:一个用于 DNS 查询,另一个用于 DHCP 转发。这两个规则都应使用方向 “in”、作 “ACCEPT” 和 VNet 名称作为接口名称

PVE只有一个IP,如何让内部的虚拟机也能上网。SNAT源地址转换

对于 DNS 规则,您还应将目标地址设置为网络网关。这只允许 dnsmasq 服务器的 DNS 流量。如果您不设置它,则将允许所有 DNS 流量,这可用于规避其他防火墙规则。不能以相同的方式限制 DHCP,因为它需要首先能够发出广播消息。最后,将两者标记为已启用并保存规则。

PVE只有一个IP,如何让内部的虚拟机也能上网。SNAT源地址转换

 

声明:本站分享的所有资源来源于公开互联网搜集和网友投稿提供,仅供个人学习研究使用,若发现您的权利被侵害,请联系zjqa@qingantec.com,我们会尽快处理。

给TA打赏
共{{data.count}}人
人已打赏
Linux

Centos自编译安装Mysql遇到的部分问题解决方案

2023-10-29 14:19:22

虚拟化

PVE虚拟机三种常见的网络配置方式。IPV4+IPV6

2025-9-22 14:05:46

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索