
我想做的是從另一個子網路中僅主機網路的 VirtualBox 來賓存取特定的 IP 位址。我想保持訪客電腦隔離(除了特定的 IP 之外,無法從外部訪問,更重要的是無法訪問互聯網)。我不確定這是否可能,因為它被稱為“僅主機”網絡,也許還有另一個更好的解決方案 - 我對任何類型的建議都很高興。
這是我目前的設定:
主機A(Ubuntu 14.04):
eth0:192.168.0.100,網關192.168.0.1
vboxnet0:192.168.56.1
具有僅主機適配器的訪客電腦 B (Windows 10):
192.168.56.101,網關192.167.56.1
另一台機器C:
192.168.0.101
我需要的是那台機器乙可以到達機器A和C但沒有其他機器/網路或網路。我目前可以 ping 主機A從訪客機乙通過ping 192.168.0.100
但不是機器C。我嘗試在主機上建立一條路由A使用命令
ip route add 192.168.56.101 via 192.168.0.100 dev eth0
但 ping 來自乙到A這樣做後將不起作用。
編輯:現在我很清楚,在主機上建立路由沒有意義,並且是解決此問題的錯誤方法。
我必須承認我不是網路專家,因此我對任何類型的回饋都很高興。
答案1
僅供參考,我想在嘗試不同的方法後發布一個對我有用的解決方案。
以下步驟適用於我使用 Ubuntu 14.04 作為主機、Windows 10 作為訪客的情況:
確保 IP 轉送已啟用
sudo sysctl net.ipv4.ip_forward=1 sudo sysctl -p
設定
iptables
規則:sudo iptables -t filter -I FORWARD --in-interface vboxnet0 --out-interface eth0 --source 192.168.56.0/24 --destination 192.168.0.101 -j ACCEPT sudo iptables -t filter -I FORWARD --in-interface eth0 --out-interface vboxnet0 --source 192.168.0.0/24 --destination 192.168.56.0/24 -j ACCEPT sudo iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
透過應用這些步驟,我能夠到達機器A和C來自客人乙但沒有其他位址,尤其是沒有網路。我不知道為什麼這有效,也許對這個主題了解更多的人知道一個解釋。