(未稳定,待修改)
下面以Windows XP系统为宿主系统(qemu的运行环境)。
以ubuntu为qemu的虚拟系统(在qemu内运行)。
由于ubuntu的权限问题,如果执行命令失败,请尝试使用sudo提升权限。
一、对宿主系统(Windows)安装TAP-Win32虚拟网卡,并加入-net参数运行qemu
* 安装OpenVPN
下载OpenVPN的Windows安装程序。
http://openvpn.net/index.php/open-source/downloads.html
默认勾选TAP Virtual Ethernet Adapter。
安装结束后,Windows会出现一个新的虚拟网卡。
* 设置qemu外windows的虚拟网卡的IP
右键“网络邻居”->属性,打开“网络连接”
把新的TAP-Win32 Adapter V9网卡的名称改为my-tap。
右键->属性->Internet协议(TCP/IP)
双击后选择“使用下面的IP地址”
把IP地址和子网掩码分别改为:
192.168.200.10
255.255.255.0
其余留空,因为这里并不需要也没有DNS服务器,
而是要自己手动为网卡分配不同的IP。
上面就是为那张虚拟网卡配IP(不影响另一张真实网卡)。
系统托盘一般会出现一个新的“网络连接”图标,
因为还没连接上虚拟机,所以出现一个红色的叉(没有连接)。
* 用-net参数启动qemu虚拟机
假设我的硬盘镜像是ubuntu.bin,在命令提示符下执行:
>qemu.exe -L . -m 1024 -hda ubuntu.bin -localtime -net nic -net tap,ifname=my-tap
其中-net nic表示虚拟机(qemu)内的OS添加新的网卡。
如果不添加,ubuntu中键入ifconfig将看不到eth0(即第一张网卡)。
而-net tap,ifname=my-tap表示为虚拟机(qemu)外的系统(这里是Windows XP)指定网卡。
如果不添加,默认就是连真实网卡而非OpenVPN中自带的虚拟网卡。
my-tap是虚拟网卡的名称,可以用openvpn --show-adapters查看。
因为我用中文版的Windows XP会产生带空格的中文网卡名,
所以我把它改为英文my-tap(和重命名文件的方法一样)。
更多信息请google这个关键词“qemu openvpn”。
或者参考以下网址(日文):
http://www.h7.dion.ne.jp/~qemu-win/TapWin32-ja.html
如果系统启动成功,你会看到系统托盘的新网络图标提示连接上网络。
* 配置qemu内ubuntu的网卡IP和默认网关
为虚拟机内部设置一个不同的IP(假设为192.168.200.11)
如果不设置IP,ifconfig命令将不会得到IPv4的地址
打开终端(应用程序->附件->终端),键入命令如下:
$ sudo ifconfig eth0 192.168.200.11
这里eth0是指第一张网卡,可以用ifconfig查看。
然后,把虚拟机外部的host机IP(假设为192.168.200.10)设置为默认网关。
如果不设置网关,ping命令将出现Destination Host Unreachable错误。
键入指令如下:
$ sudo route add default gw 192.168.200.10 eth0
如果操作正常的话,你可以访问默认网关192.168.200.10
(即虚拟机外Windows的那个虚拟网卡TAP-Win32 Adapter V9)
尝试连接宿主系统的网卡:
$ ping 192.168.200.10
可以看到ping可以到达宿主机器。
* 关于网络设置的补充说明
通常使用192.168.*.*格式的IP。
因为192.168.0.0-192.168.255.255(192.168/16)属特殊IP地址段供本地使用。
只是这样的IP不可以直接用于互联网(这里没有问题)。
有些命令可以是这样的:
1. 添加默认网关时可以忽略最后的eth0。