现在设置NAT网络,把系统网络状态恢复到开始, 重新设置tap驱动,地址为192.168.33.33,启动虚拟机,设置ip地址为 192.168.33.34,这样 192.168.33.* 就相当于一个小局域网,192.168.33.34 通过 192.168.33.33 转发,设置完毕以后二者便可通信,也省去了桥接的麻烦,只是需要操纵 iptables。
# 在 UML 虚拟机内设置默认路由 localhost ~ # route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.33.33 # 查看路由表,看到已经添加了 default 网关为 192.168.33.33 localhost ~ # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.33.0 * 255.255.255.0 U 0 0 0 eth0 loopback * 255.0.0.0 U 0 0 0 lo default 192.168.33.33 0.0.0.0 UG 0 0 0 eth0 # 设置IP路由转发 [root@dark linux-2.6.36]# echo 1 > /proc/sys/net/ipv4/ip_forward # 设置SNAT源地址转换 10.33.33.34 为eth1地址 [root@dark linux-2.6.36]# iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 10.33.33.34 # 如果此时不通,可检查iptables的其他规则和UML与主机的路由表配置这样便可做成NAT的效果,比桥接方式简单的多,只是需要知道iptables的用法。当然以上配置每次重启将会消失,可以写到配置开机自动设置。
相关系列文章:
Linux 内核调试1-UML
Linux 内核调试2-UML调试内核
Linux 内核调试3-UML网络配置
Linux 内核调试4-Qemu调试Linux内核
Linux 内核调试5-UML和Qemu调试模块
Linux 内核调试6-使用KGDB双机调试