我的主機是 Ubuntu 12.04,來賓是 Debian squeeze(LAMP 伺服器)。我想允許主機連接訪客。並允許客人連接網路。不應從外部啟用來賓。這就是我不使用網橋的原因。我想為主機設定靜態IP。我跟著本教程。
所以我採取了這些步驟,但我無法透過ssh
從主機到訪客進行連線。我無法透過瀏覽器調用伺服器。ping
然而有效!
我使用以下設定建立了一個僅虛擬主機的網路介面卡 ( vboxnet0
):
IPv4-Adress: 192.168.56.1
IPv4-Netmask: 255.255.255.0
ifconfig
在 Ubuntu 主機中顯示:
eth0 Link encap:Ethernet Hardware Adresse XX:XX:XX:XX:XX:XX
inet Adresse:192.168.2.100 Bcast:192.168.2.255 Maske:255.255.255.0
inet6-Adresse: XXXX:XXX:XXXX:XXXX:X:X/XX Gültigkeitsbereich:Global
vboxnet0 Link encap:Ethernet Hardware Adresse XX:XX:XX:XX:XX:XX
inet Adresse:192.168.56.1 Bcast:192.168.56.255 Maske:255.255.255.0
inet6-Adresse: XXXX:XXX:XXXX:XXXX:X:X/XX Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:10069 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX-Bytes:0 (0.0 B) TX-Bytes:1539501 (1.5 MB)
在 Debian scrape guest 上,/etc/network/interfaces
看起來像這樣:
# The host-only network interface
auto eth1
iface eth1 inet static
address 192.168.56.1
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
我已經嘗試過更改eth1
但eth0
沒有結果。
在 VirtualBox 設定中,混雜模式允許虛擬機器和主機連線。
我已經達到我的知識極限了。
的輸出:
netstat --inet --inet6 -ln | grep :22
沒什麼。
的輸出:
sudo iptables -L INPUT -nv
是:
Chain INPUT (policy ACCEPT 166 packets, 30786 bytes)
pkts bytes target prot opt in out source destination
答案1
您不應在訪客中使用相同的 IP 位址(如主機介面上的 IP 位址)。如果您在主機上將 vboxnet0 設定為 IP 位址 192.168.56.1,那麼在您的來賓中您應該使用 192.168.56.2。您的訪客的網關應該是主機的 IP(在您的情況下為 192.168.56.1)。
這應該執行主機<->來賓連線。如果您希望您的訪客也能上網,那麼您應該在您的主機上偽裝它的 IP(或網路)。
iptables -t nat -I POSTROUTING -s 192.168.56.0/24 -j MASQUERADE
sysctl net.ipv4.ip_forward=1
您可能需要設定預設策略來轉送或專門啟用您的偽裝網路:
iptables -P FORWARD ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
注意:您可以使用 root 執行這些行,以啟用您的訪客的網路存取權限。但是,這些行可能應該進入您主機的防火牆設定。 (即UFW)。 sysctl 設定檔是:/etc/sysctl.conf,如果您希望始終啟用 ip_forward,可以在那裡設定 ip_forward。