在KVM环境中设置虚拟机之间的端口转发,通常需结合宿主机网络配置与iptables规则。步骤如下:
-
确认网络模式:若虚拟机使用NAT模式(默认virbr0网桥),需通过宿主机IP转发流量;若为桥接模式,虚拟机拥有独立IP,可直接通过防火墙规则控制。
-
使用virsh编辑虚拟机XML:通过
virsh edit <VM_NAME>
在段添加: <devices> <interface type='network'> <source network='default'/> <forward mode='nat'/> </interface> </devices>
-
配置iptables规则(以NAT为例):
iptables -t nat -A PREROUTING -p tcp --dport [宿主机端口] -j DNAT --to-destination [目标虚拟机IP]:[目标端口] iptables -A FORWARD -d [目标虚拟机IP] -p tcp --dport [目标端口] -j ACCEPT
-
持久化规则:
apt-get install iptables-persistent # Debian/Ubuntu 或 service iptables save # CentOS/RHEL
注意事项:
- 确保宿主机IP转发已启用(/etc/sysctl.conf中net.ipv4.ip_forward=1)
- 若使用firewalld,需开放端口并设置富规则
- 跨虚拟机通信建议优先考虑桥接网络+安全组策略,减少NAT层级