Virtual Boxでポート転送ができない

Virtual Boxでポート転送ができない

私はMac OS X 10.6を使用しています。Virtual Box 4.1.0をインストールしました。私のゲストOSはUbuntu サーバー11.04. Virtual Boxのポート転送にルールを追加しました ->

"guestssh" TCP 127.0.1.1 8080 127.0.0.1 1337

ゲストOS内ではNode.jsサーバーを実行しています。コードは彼らのサイトにある単純なhelloworldコードに過ぎません。http://nodejs.org/つまり、127.0.0.1 の 1337 ポートでサーバーを実行しています。

私が与えたルールによれば、ホストマシンから127.0.1.1:8080へのすべてのリクエストはゲストOSの127.0.0.1:1337に転送されるはずです。ホストから私がやっていることcurl http://127.0.1.1:8080は、curl: (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、すべてが機能しました。(VM を再起動する必要がある場合があります)。

関連情報