我有一archlinux
台机器Windows 7
使用qemu
.Network Source: NAT/ Device Model:virtio
是 ing 的网络配置NAT
。我能够很好地连接到互联网。
但是,如何host
使用 IP 连接到机器本身呢?实际上,我想通过多个端口访问在主机中运行的网络服务器!
我尝试打开ipconfig
's gateway
,192.168.122.1
但它没有连接到nginx
我正在运行的host
.例如,http://192.168.122.1
不会启动nginx
我在另一个端口运行的另一个网络服务器。tracert
对我也没有多大帮助。
确实192.168.122.1
是vibr0
我的主机中的,这是gateway
的virtual machine
。
答案1
virt-manager
需要在主机中启动并运行firewalld.service。默认情况下,这将禁用所有端口的外部访问。所以我们需要显式地启用宿主机中需要访问的端口。假设您要启用该端口8000
,以下是您需要在主机中执行的命令:
sudo firewall-cmd --permanent --add-port=8000/tcp
sudo firewall-cmd --reload
这里是这个答案的来源。
答案2
我使用 的firewall-config
GUI firewalld
,它可以处理编辑规则并使它们永久化,所以我不必担心它。我强烈推荐它。
我只需要做一件事:
- 进入
libvirt
Firewalld GUI 中指定的区域。 - 转到“端口”选项卡。
- 添加端口,例如
tcp 5000
.
现在我的虚拟机可以通过端口 5000 连接到主机的 IP。:)
此技术可确保端口仅在虚拟机的网络上打开,而不是在所有网络上打开!
顺便说一下,当从访客连接到主机时,您可以使用主机的普通以太网 IP。