我正在尝试在虚拟机上运行 minecraft 服务器。我希望我的来宾端口允许从主机所在的本地网络的其余部分进行访问(以及我的路由器,这样我就可以向网络开放端口)。但我还想阻止来宾的任何其他网络访问,尤其是访问我的主机和其他 LAN 设备。如果访客仍然可以访问互联网(但不能访问我的 LAN),那就更好了。
我试过 :
- NAT/NAT 服务:转发有效但仍可访问 LAN
- 尝试使用 simplewall/Windows 防火墙进行阻止,但不起作用。仍然可以访问 LAN/互联网(但 dns 不起作用)。我尝试使用 GlassWire 进行完全阻止,但端口转发不起作用。
- 桥接网络:端口已打开,但我无法阻止
- 尝试将访客放入 DMZ,但没有任何效果。我认为这是我的糟糕 ISP 路由器的一个错误
- 尝试配置我的路由器防火墙以阻止从我的访客 IP 到任何其他设备的任何连接,但也没有任何效果(路由器要求提供入站 IP 掩码,将其设置为 0.0.0.0 或 255.255.255.0,但这些都不起作用)
其他网络配置不允许我打开端口
答案1
要求是将虚拟机隔离在其自己的(子)网络内。
自然的解决方案是使用 虚拟局域网 (VLAN),但 Livebox 路由器不支持此功能。另一款 TP-Link TL-SG1005D 交换机可用,可能具有此功能(关联)。
在上面的讨论中,到目前为止,最好的想法似乎是在计算机上添加一个无线网络适配器,以便通过 WiFi 将虚拟机连接到路由器,因为 Livebox 路由器确实支持 WiFi 客户分离。虚拟机虚拟网络适配器必须处于桥接模式,这样它在路由器上才会显示为网络上的计算机。
答案2
尽管这对您不起作用,但最简单的方法是使用普通的 NAT 配置 + 端口转发进行设置,并使用默认情况下处于关闭状态的出站防火墙规则。在 Windows 中执行此操作的主要步骤如下:
- 打开 wf.msc
- 导航到 Windows Defender 防火墙属性
- 确保“出站连接”设置为“阻止”(不是默认设置)
- 禁用不需要的、预配置的出站规则:
- 您可能只需要核心网络规则,但建议禁用一些规则:
- 文件和打印机共享组
- 远程协助组
- 网络发现组
- 您可能只需要核心网络规则,但建议禁用一些规则:
- 为 minecraft 服务器创建“允许”规则(Windows 可能已经这样做了):
- 单击“新建出站规则”启动向导
- 规则类型:程序
- 程序 > 此程序路径 > 浏览到 server.exe 或 java.exe?建立连接的那个。
- 操作:允许
- 个人资料:全部
- 名称:Allow-MyServer
- 然后对入站重复上述操作。
- [可选] 阻止从 LAN 访问 minecraft 服务器应用程序。注意:阻止规则优先。
- 创建新的出站规则
- 类型:定制
- 程序:server.exe
- 协议/端口:任意/全部
- 范围 > 这些远程 IP 地址 > LAN 网络
核心网络规则组应该保持 DNS 和 Windows 更新等服务的正常运行,同时仍然不允许访问其他任何服务。
如果您想超越客户端规则,您可以在主机上执行相同的操作,或者在主机上设置从 VM IP 到路由器网关(ISP IP,非内部)的静态路由