作为一个小巧实用的VM,QEMU真是非常之好用。配置简单,灵活,方便。像我这样变态地喜欢控制台的人,一定会对这个少东东爱不释手的吧。
VM除了用来玩以为,多少也还是要拿它干点工作的。比较做个小的调试服务器什么的。可总有人说,QEMU和主机联接有问题,得用tap/tun才能解决。tap/tun这个东东不可谓不好,但咱不是懒嘛,不想整这么多东西。于是细看了一下QEMU的doc,又google了一番。发现了一个简单的方法。
在QEMU0.8以上版本,支持一个新特性,叫redir,就是redirect,类似路由的端口绑定。非常的好用啊。语法是这样的:
qemu -redir {tcp|udp}:host_port:[guest_ip]:guest_port
解释一下:
㈠tcp|udp是协议类型,一般的FTP、HTTP、TELNET、SSH都是TCP的,端口号分别为21,80,23,22。这个在文档里有点问题,QEMU文档里,用的是中括号,我开始以为是可选的。后来试了一下,这一项是必须有的,不能省。
㈡host_port就是你主机上的一个端口号,你要重定向到哪个端口,就写哪个。我是直接就定位到协议的端口上了,反正我主机上也没有别的服务器。(另一个原因是:我很懒,不想每次输地址的时候还打端口号^_^)
㈢guest_ip就是虚拟机里网卡的IP,一般是10.0.2.15,但文档里说,如果虚拟机系统是redhat的话,可能会变成10.0.2.16,可以自己ifcofig一下看看。也可以省略不写。(注意:IP可以不写,但冒号不能少。直接写两个冒号就行)
㈣guest_port当然就是虚拟机上服务器的端口号了。这个没有什么好说的。
OK,这下可以满足基本上所有的联网需要了。
注:要在网络的user mode下用啊。就是不指定-net的那个模式。