我想使用 KVM 在我的 Ubuntu 16.04 服务器上的 Windows VM 中创建一个游戏服务器。
我已经安装了虚拟机,并且它运行正常。我直接在虚拟机中停用了 Windows 防火墙。
Windows VM 通过网桥与互联网进行通信。
对于我的服务器,我已经在 Ubuntu 防火墙(Iptables)中发布了这些端口:
TCP: 2302,27015-27030,27036-27037
UDP: 2302,4380,27000-27031,27036
我按照这些说明实现了端口转发:https://www.cyberciti.biz/faq/kvm-forward-ports-to-guests-vm-with-ufw-on-linux/
重新iptables -L FORWARD -nv --line-number
调整一下:
root@s1 ~ # iptables -L FORWARD -nv --line-number
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 2532 201K ACCEPT all -- * virbr0 0.0.0.0/0 192.168.122.0/24 ctstate RELATED,ESTABLISHED
2 5720 842K ACCEPT all -- virbr0 * 192.168.122.0/24 0.0.0.0/0
3 0 0 ACCEPT all -- virbr0 virbr0 0.0.0.0/0 0.0.0.0/0
4 0 0 REJECT all -- * virbr0 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
5 0 0 REJECT all -- virbr0 * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
6 0 0 ACCEPT all -- * virbr0 192.168.2.0/24 192.168.122.0/24 state NEW,RELATED,ESTABLISHED
重新iptables-save -t filter | grep FORWARD
调整一下:
root@s1 ~ # iptables-save -t filter | grep FORWARD
:FORWARD ACCEPT [0:0]
-A FORWARD -d 192.168.122.0/24 -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -s 192.168.2.0/24 -d 192.168.122.0/24 -o virbr0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
我的网络接口如下所示:
### Hetzner Online GmbH installimage
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
iface lo inet6 loopback
auto br0
iface br0 inet static
address <My Address>
netmask 255.255.255.192
gateway <Another Address>
# route <Another Address> via <Another Address>
up route add -net <Another Address> netmask 255.255.255.192 gw <Another Address> dev eth0
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
iface br0 inet6 auto
iface eth0 inet6 static
address <Another Address>
netmask 64
gateway <Another Address>
它实际上对我来说看起来不错,但我对 kvm 还没有那么多经验,因为当我尝试连接到游戏服务器时,客户端没有......我猜端口转发仍然存在问题。
有谁能给我提示吗?谢谢 :)
- - 编辑 - -
我的 Windows VM 的 IP 地址:192.168.122.191
答案1
经过几天的搜索,我发现在 Windows VM 中运行的服务器需要比我发布的更多的端口 - 我发布了我在文档中找到的所有端口......-。
如果您从 KVM VM 开始,并希望从互联网连接到 VM,则配置桥接网络,在其中组合您的网络接口。之后,VM 将作为 NAT 网络中的设备进行管理。
然后可以通过这些指令实现从Internet到Vm的端口的端口转发:
https://aboullaite.me/kvm-qemo-forward-ports-with-iptables/
VM 的创建方式如下:
https://www.cyberciti.biz/faq/installing-kvm-on-ubuntu-16-04-lts-server/