Ubuntu

為什麼兩台虛擬機不能通過第三台互相ping通?

  • April 22, 2020

我正在創建一個由三個虛擬機組成的本地網路(全部是 Ubuntu 14.04,只是從盒子裡)。第一個連接到第三個,第二個也連接到第三個。

就是這樣:comp1 (5.9.10.10) --- (5.9.10.20) comp3 (5.9.20.20) --- (5.9.20.10) comp2

這就是我設置地址和路由的方式:

vm1:
ip link set eth0 up
ip a add 5.9.10.10/24 dev eth0

ip ro add 5.9.20.0/24 via 5.9.10.20

vm2:
ip link set eth0 up
ip a add 5.9.20.10/24 dev eth0

ip ro add 5.9.10.0/24 via 5.9.20.20

vm3:
ip link set eth0 up
ip link set eth1 up
ip a add 5.9.10.20/24 dev eth0
ip a add 5.9.20.20/24 dev eth1

電腦 1 和 3 可以相互 ping 通(5.9.10.10 到 5.9.10.20 和 5.9.20.20 和返回),電腦 2 和 3 也是如此。

但是當我嘗試從電腦 2 ping 電腦 1 時,或者從 1 ping 數據包中的 2 會失去。

PING 5.9.20.10 (5.9.20.10) 56(84) bytes of data.
--- 5.9.20.10 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3049ms

為什麼會發生,我做錯了什麼?

據我所知,您的配置是正確的,您只需要告訴路由器啟用 IP 轉發即可。從來沒有用ufw做過,但是為了測試你可以禁用防火牆。

對於IP 轉發,您只需在 /etc/sysctl.conf 中添加/編輯此行

net.ipv4.ip_forward=1

有關 ufw 的詳細資訊https://www.cyberciti.biz/faq/how-to-configure-ufw-to-forward-port-80443-to-internal-server-hosted-on-lan/

引用自:https://unix.stackexchange.com/questions/581742