
我使用的是 Mac OS X 10.6。我已經在其中安裝了Virtual Box 4.1.0。我的來賓作業系統是Ubuntu伺服器11.04。我在 Virtual Box 的連接埠轉送中新增了一條規則 ->
"guestssh" TCP 127.0.1.1 8080 127.0.0.1 1337
在來賓作業系統內部,我正在執行 Nodejs 伺服器。程式碼只不過是在他們的網站上找到的簡單的 helloworld 程式碼http://nodejs.org/。簡而言之,我在 127.0.0.1 的 1337 連接埠上運行伺服器。
現在根據我給的規則,從主機對 127.0.1.1:8080 的所有請求都應轉送到來賓作業系統的 127.0.0.1:1337。從主持人那裡我正在做curl http://127.0.1.1:8080
並且我正在得到捲曲:(7)無法連接到主機我做錯了什麼嗎?
注意-不要給我建議全部執行 ssh。由於我的 ISP 不提供內部 LAN,因此在我的情況下這是不可能的。我所能做的就是連接埠轉送。
答案1
我遇到了同樣的問題,並從這個答案中得到了提示: https://stackoverflow.com/a/6181230/1233020
在您的 virtualbox 來賓中,運行ifconfig
或ip addr
(取決於您的 Linux 發行版)。對於 arch linux (我使用的)ip addr
,輸出是:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:75:e6:cc brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
inet6 fe80::a00:27ff:fe75:e6cc/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:8c:04:e6 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.3/24 brd 192.168.56.255 scope global eth1
inet6 fe80::a00:27ff:fe8c:4e6/64 scope link
valid_lft forever preferred_lft forever
這是有趣的一行:
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
我更改了要使用的連接埠轉送規則10.0.2.15
,然後一切正常! (您可能需要重新啟動虛擬機器)。