
我有 2 台電腦。電腦 A 正在運行虛擬機,該虛擬機位於 NAT 後方。計算機 B 只是想 PING 該虛擬機。我知道 NAT 後面的虛擬機器是為了讓外部無法訪問,這就是 NAT 存在的首要原因。我的實驗只是為了了解這一切是如何運作的。
電腦A的IP:192.168.1.105
A電腦虛擬機器IP:172.16.66.132
B電腦IP:192.168.1.107
根據我的理解,電腦 B 無法 PING 虛擬機,因為它不知道如何到達那裡,並且嘗試通過路由器 (192.168.1.1) 到達那裡,但失敗了,因為路由器然後轉到互聯網(我用 驗證tracert
) 。
我認為我可以透過在電腦 B 上的路由表中新增自訂條目來更改這一點。
route add 172.16.66.0 MASK 255.255.255.0 192.168.1.105
上述規則將通知電腦 B 可以透過 192.168.1.105(這是電腦 A 的 IP)存取網路 172.16.66.0。
結果?不用找了。我甚至看到,在 PING 虛擬機器時,我的自訂條目已從表中刪除。
為什麼我的解決方案不起作用?
答案1
該route add
命令無效,且該路由可能已被刪除,因為它經過測試並顯示為無效。
原因是您遇到了雙 NAT 的情況:您使用的虛擬機器軟體有自己的虛擬路由器,為虛擬機器執行 DHCP 和 NAT。主機沒有到該虛擬路由器的路由,因此無法轉送任何內容。
我建議在這種情況下將虛擬網路定義為橋接而不是 NAT。