本文档翻译自Documentation/Networking/NAT,大部分借助于ChatGPT。仅作为我个人的参考,如果你想查阅,建议看英文文档,因为我不确定我记录的中文翻译是否完整和正确。
配置网络地址转换(NAT)是在桌面环境中网络虚拟机的一种有用方法(特别是在使用无线网络时)。 NAT网络将允许您的虚拟机完全访问网络,允许主机和虚拟机之间的网络通信,但防止虚拟机直接出现在物理网络上。
要配置NAT网络,首先创建一个/etc/qemu-ifup
脚本,该脚本创建一个没有任何物理端口的桥接。将该桥接配置为虚拟网络的网关,使用静态IP地址。使用iptables
创建规则,将来自该桥接的流量伪装为主机网络。最后,在该桥接口上运行dnsmasq
,充当虚拟网络的DHCP和DNS服务器。
请参阅下面的示例脚本。
首先,安装桥接工具、iptables
和dnsmasq
:
在Fedora上:
yum install bridge-utils iptables dnsmasq net-tools -y # 陈孝松修改,添加net-tools
apt install bridge-utils iptables dnsmasq net-tools -y # 陈孝松添加
注意要安装net-tools
,否则虚拟机启动无法获取ip。
将qemu-ifup
脚本从此wiki复制到/etc/qemu-ifup
,并确保该文件具有执行权限。
chmod 755 /etc/qemu-ifup
现在使用tap网络配置启动qemu,并将您的虚拟机配置为使用DHCP。它们应该获得有效的IP地址并能够访问网络。
qemu -net tap -net nic linux.img
目前,您需要以root权限运行qemu才能使用tun/tap网络。