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]