你是不是也想过,在家里那台24小时不关机的PVE上,搭一个《我的世界》或《幻兽帕鲁》服务器,叫上小伙伴们一起来玩?或者,想拥有一个自己的博客网站,分享你的生活?
但你可能马上就会担心:把服务开在家里,直接暴露给外网,万一被黑客攻击了,我家里所有的设备,比如存着重要照片的NAS、我爸妈正在上网的电脑,会不会都有危险?
很多人告诉你,要解决这个问题,得花大价钱买个企业级路由器,还要学习让人头疼的“VLAN划分”。
实际上Proxmox VE已经为提供了一套完整的解决方案。
以下教程实现不依赖任何特殊的网络硬件或复杂的VLAN划分,仅利用PVE内置的防火墙,为一台虚拟机配置一套严谨而灵活的网络安全策略。最终目标是让这台虚拟机达到以下理想状态:
✅ 对外服务通畅:能正常访问互联网,并接受您在路由器上设置的端口映射流量。
✅ 对内壁垒森严:被严格禁止主动访问您局域网内的任何其他设备(包括路由器后台、NAS、其他电脑等)。
通过以下配置,就能够安心地将服务暴露于公网,同时最大限度地保障家庭内网的安全,防止潜在的横向攻击。
一、 准备工作:全局防火墙配置
在对单个虚拟机进行配置前,我们需要确保PVE的全局防火墙功能已经就绪。这些操作通常只需要在数据中心级别设置一次即可。
1. 启用防火墙总开关
首先,我们需要激活PVE的防火墙功能。
位置: 在PVE网页管理后台,点击左侧最顶端的
数据中心
。操作:
选择
防火墙
标签页。再选择
选项
子标签页。找到
防火墙
这一项,如果它不是“是”,请双击并将其设置为是(Yes)
。同时
输入策略 (Input Policy)
会自动设置为DROP
。PVE有内置规则,并不会影响通过8006
端口访问网页后台或通过22
端口进行SSH连接。
2. 创建局域网“别名”(Alias)
为了在后续规则中方便地引用我们的整个内网网段,我们为其创建一个简单的别名。
位置:
数据中心
->防火墙
->别名
操作:
点击
添加
按钮。在弹出的窗口中填写以下信息:
名称 (Name):
lan_net
IP/CIDR:
10.10.10.0/24
(请务必根据你自己的实际内网网段进行修改,例如 192.168.1.0/24)备注 (Comment):
我的局域网
点击
添加
。
二、 配置:使用“安全群组”创建规则模板
为了方便地将同一套规则应用到多个虚拟机,使用“安全群组”功能来创建一个可复用的规则模板。
1. 创建安全群组
位置:
数据中心
->防火墙
->安全群组
操作:
点击
创建
。名称:
dmz_server
(可自由修改)备注:
对外隔离服务器通用规则
点击
创建
。
2. 向安全群组中添加通用规则
注意: 规则的顺序至关重要!!!
PVE防火墙会从上到下匹配规则,一旦匹配成功,后续规则将被忽略。如果添加后顺序不对,可以用鼠标拖拽调整。
操作: 在
安全群组
列表中,单击刚刚创建的dmz_server
,然后在右侧的规则区域点击添加
。出站规则 (Outbound Rules)
入站规则 (Inbound Rules)
最终创建完毕效果:
三、 应用与个性化:为虚拟机配置防火墙
现在,我们可以将这套规则应用到任何需要隔离的虚拟机上了。
1. 在虚拟机上启用防火墙
位置:
选择目标VM
->硬件
->网络设备(net0)
操作: 双击网卡,勾选
防火墙
复选框。
2. 设置虚拟机默认防火墙策略
位置:
选择目标VM
->防火墙
->选项
操作: 将
输入策略
和输出策略
均设置为DROP
。防火墙状态:是
3. 应用安全群组
位置:
选择目标VM
->防火墙
->规则
操作:
点击
插入: 安全群组
按钮。在弹出的窗口中,选择我们创建的
dmz_server
群组。确保
启用
复选框被勾选,然后点击OK
。
4. 添加个性化端口映射规则
这是最后一步,只为这台虚拟机开放它需要对外提供服务的特定端口。
在路由器端口映射后
位置:
选择目标VM
->防火墙
->规则
-> 点击添加
示例 (为Web服务开放80):
方向:
in
操作:
ACCEPT
协议:
tcp
目标端口:
80
备注:
允许外网访问Web服务
日志级别:
info
(可选,便于观察谁在访问服务)
至此,已经为虚拟机建立安全防护体系。既能安全地对外提供服务,又不会对内网环境构成威胁。
Q: 我按教程设置了,为什么虚拟机还是上不了网?
A: 请检查您的“出站规则”顺序是否正确,特别是“禁止访问内网”的规则有没有错误地排在了“允许访问外网”的前面。另外,也要检查虚拟机的DNS设置是否正确。
Q: 为什么我单独添加的端口映射规则不生效?
A: 请确认您在PVE防火墙里填写的“目标端口”是您服务的内部端口,而不是您在路由器上设置的外部端口。
效果
正常获取DHCP分配IP,无法ping通,访问通路由器后台,NAS等设备
扫描全部网段,均无法出去。
效果2:内网其他机器访问该虚拟机一切正常。
效果3:端口映射正常访问。