QEMU 網路橋接以擁有公用 IP

QEMU 網路橋接以擁有公用 IP

我只是希望我的 QEMU 虛擬機器有一個公共 IP,這樣我就可以在同一台電腦上運行多個伺服器。我讀過很多維基、指南、教程、論壇主題以及與此相關的任何內容,但仍然沒有有用的答案。我已經了解了橋樑的事情,並且我做了大多數教程所做的所有事情。

1) 使用 iproute2 建立橋接(例如br0
2) 建立 TAP 介面(例如tap0
3) 橋接eth0(在我的範例中enp2s0tap0br0

但我唯一能做的就是(除了頭痛之外)讓VM被識別為內部網路中的另一台機器,但我想要的是外部網路看到我的機器有自己的公共IP位址,而不是相同的與連接到路由器的其餘實體機一樣。

我查看過的頁面:
-https://wiki.archlinux.org/index.php/QEMU#Networking
-https://wiki.archlinux.org/index.php/Network_bridge
-KVM - 透過橋接器添加公共 IP
-http://blog.elastocloud.org/2015/07/qemukvm-bridged-network-with-tap.html
-https://wiki.qemu.org/Documentation/Networking
-http://nairobi-embedded.org/a_qemu_tap_networking_setup.html
-https://en.wikibooks.org/wiki/QEMU/Networking

我的 QEMU cmd 參數:

qemu-system-x86_64 \
    -monitor stdio \
    -soundhw ac97 \
    -k es \
    -machine accel=kvm \
    -m 2024 \
    -hda /mnt/hdd/Desarrollo_Eficiente_HDA.img \
    -boot once=c,menu=on \
    -net nic,vlan=0,macaddr=00:c6:cd:1a:5e:83,model=virtio \
    -net tap,vlan=0,ifname=tap0,script=no \
    -rtc base=localtime \

其他命令輸出:

$ brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.003067a647ca       no              enp2s0
                                                        tap0
$ ip address 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 00:30:67:a6:47:ca brd ff:ff:ff:ff:ff:ff
    inet6 fe80::da85:a46d:3e50:2642/64 scope link 
       valid_lft forever preferred_lft forever
9: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:30:67:a6:47:ca brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.3/24 brd 192.168.0.255 scope global noprefixroute br0
       valid_lft forever preferred_lft forever
    inet 192.168.50.14/24 brd 192.168.50.255 scope global noprefixroute br0
       valid_lft forever preferred_lft forever
    inet6 fe80::230:67ff:fea6:47ca/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
10: tap0: <NO-CARRIER,BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc pfifo_fast master br0 state DOWN group default qlen 100
    link/ether 16:51:80:cd:dd:6b brd ff:ff:ff:ff:ff:ff
    inet6 fe80::1451:80ff:fecd:dd6b/64 scope link 
       valid_lft forever preferred_lft forever

主機系統資訊:
- 作業系統:Parabola GNU/Linux-libre(基於 Arch)
- 架構:x86_64

我錯過了什麼嗎? iptables 規則? sysctl 指令?先謝謝您的幫忙。

相關內容