ubuntu下SSH登录qemu虚拟机
宿主机需要用ssh登入访问虚拟机,可以采取两种方式
一种是端口映射:把虚拟机的22端口映射到宿主机的其他还未使用的端口(ex:2223),方法就是在虚拟机启动命令中添加参数-:redir tcp:2223::22
这时宿主机通过ssh -p 2223 用户名@127.0.0.1 就可以ssh登入访问虚拟机了。
一种方式是建立网桥:
Ubuntu 的系统上,首先要安装含有建立虚拟网络设备 ( TAP interfaces ) 的工具 uml-utilities 和桥接工具 bridge-utils:
sudo apt-get install uml-utilitiessudo
apt-get install bridge-utils
编辑 /etc/network/interfaces:(请先备份),建立一个名叫 “br0” 的桥:
sudo vim /etc/network/interfaces
添加如下内容
auto br0#iface
br0 inet dhcp #一种IP配置方法为通过DHCP配置iface br0 inet static
#在这里网桥我用的静态IP,使用静态的话,就需要把你宿主机的ip地址,当前网络的网关等信息设置到这个网桥上address
192.168.1.100 #你宿主机的ip地址netmask
255.255.255.0network
192.168.1.0
broadcast
192.168.1.255gateway
192.168.1.1bridge_ports enp4s0 #宿主机的网卡接口
保持后重启网络服务,或者重启宿主机。
lhj@lhj-pc:~$ sudo /etc/init.d/networking restart
/etc/ 文件夹下新建一个qemu-ifup脚本,内容如下:
lhj@lhj-pc:/etc$ sudo touch qemu-ifup.sh
!/bin/bash#This is a qemu-ifup script for bridging. #You can use it when
starting a KVM guest with bridge mode network. #set your bridge nameswitch=br0if
[ -n "$1"
]; then
#create a TAP interface; qemu will handle it automatically.
#tunctl -u $(whoami) -t $1
#start up the TAP interface ip link
set
$1 up sleep
1
#add TAP interface to the bridge brctl addif
${switch}
$1
exit
0else
echo
"Error: no interface specified"
exit
1fi
并且需要使用root用户执行chmod u+x 给以可执行权限。
4.3添加可执行权限
lhj@lhj-pc:/etc$ sudo chmod u+x qemu-ifup.sh
4.4然后在启动命令中添加参数 -net nic -net tap,script=/etc/qemu-ifup 启动虚拟机 这样启动的虚拟机就有一个和宿主机同一个网段的ip地址,直接访问就可以了。
[kelvin@kelvin tmp]$
qemu-system-x86_64 -m 4096 -enable-kvm ubuntu_14.04.img -net nic -net tap,script=/etc/qemu-ifup
登录虚拟机操作;
lhj@lhj-pc:~$ ssh [email protected]