QEMU使用網橋模式


配置網橋

  1. 在host上查看可用網絡資源

ifconfig

有enp0s31f6、enp3s0u2c4i2、lo 3個網絡資源。

lo用於網絡自回環的,不管

enp0s31f6是連接公司網的,但是公司linux無法上網,不管

enp3s0u2c4i2連接着我的手機,可以上網,因此使用該eth配置網橋模式。

  1. 建立網橋
sudo su
# 安裝網橋工具
apt-get install bridge-utils
brctl addbr br0
brctl addif br0 enp3s0u2c4i2
brctl stp br0 on
ifconfig enp3s0u2c4i2 0
dhclient br0
route

記住這個子網掩碼和網關,需要對guest進行同樣的配置。

  1. 以特定選項啟動虛擬機
# 網絡選項為-net nic -net tap,ifname=tap1,即生成一個給guest使用的TAP,連接到br0上
# 其實應該設置qemu-ifup和qemu-ifdown腳本,但是考慮到會默認使用/etc下的這兩個腳本,這里不特殊設置
qemu-system-x86_64 -m 2048 -smp 4 -hda kvm-study.img -enable-kvm -net nic -net tap,ifname=tap1 
  1. 編輯guest網絡配置

    如果在guest中使用ifconfig發現guest已經和host處於同意IP段,則省略以下配置,應該可以立即互相ping通

    因為我使用的guest是ubuntu18.04 server,網絡設置在/etc/netplan/50-cloud-init.yaml文件中,因此在guest中編輯該文件,更早版本的linux可能在/etc/network/interfaces文件中,一個一個來。

    4.1 如果為ubuntu18.04或其他使用netplan作為網絡配置的系統,則

其中ens3可以通過在guest中執行ifconfig指令獲取除lo之外的網絡資源名稱。

addressses中的28為子網掩碼,即32bit的子網掩碼前28bit為1,正好為255.255.255.240,與host的子網掩碼相同。因此需要設置為28。

addresses中的172.20.10.14為guest的ip地址,這里可以設置的值從172.20.10.1-172.20.10.15,但是不能設置為.3,因為host為.3。

gateway4與host相同。

其它與圖示相同即可。

​ 4.2 如果使用的是ifupdown工具配置的網絡,那么需要修改/etc/network/interfaces

sudo vim /etc/network/interfaces

然后將內容修改為以下形式

注意address就是guest的IP

netmask為子網掩碼

dns-nameservers是dns

保存退出后無需執行5中的netplan apply

  1. 保存退出后在guest中執行以下命令
sudo netplan apply
sudo systemctl restart network-online.target

之后就可以用ifconfig看到guest的ip和host同域了。互相之間ping也ping得通。

host和guest之間的文件傳輸

  1. host向guest傳送文件
scp 待傳輸文件路徑 username@guest的ip地址:需要放置到guest的位置

2. host從guest下載文件
​```
scp username@guest的ip地址:需要下載的文件在guest中的路徑  host中要下載到的位置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM