11541


Rustの勉強のため，簡単なWebサーバのプログラムを書いています．

VirtualBox上のArch Linuxをサーバとして用い，<http://nickel.rs>/のHello Worldを`cargo
run`で実行しました．ところが，<http://127.0.0.1>:portにゲストOS側からアクセスすることはできても，<http://guest_ip>:portにホストOS側のブラウザからアクセスすることができません．<http://ironframework.io>/も試してみましたが，同じくアクセスはできませんでした．

ここで，ネットワークの問題を疑い，ゲスト側で`python -m
http.server`を実行したところ，今度はホスト側からアクセスすることができました．ネットワークが問題ではないのでしょうか？

VirtualBoxはブリッジアダプターでネットワークと繋がっており，ホストから`ping`を打ったり，`ssh`で接続することはできます．`rustc`のバージョンは`rustc
1.0.0 (built 2015-06-01)`で，`cargo`はAURのcargo-binを使用していてバージョンは`cargo
0.3.0-nightly (47306a4 2015-06-17) (built 2015-06-18)`です．

一体どうすればRustで書いたサーバにアクセスできるでしょうか．


CC BY-SA 3.0
2015-06-19T22:21:37.703
11538
2015-06-20T12:31:31.290
8573
question
network virtualbox rust
仮想マシン上のWebサーバにホストからアクセスできない


127.0.0.1にbindしても、ローカルホストからしか接続できないことがあります。  
ソースコード中でアドレスを記載している部分、

[code]

       server.listen("127.0.0.1:6767");
    
[/code]

これを、eth0などのネットワークインターフェイスが持つIPアドレス、または0.0.0.0を指定してみてはどうでしょうか。

[code]

       server.listen("0.0.0.0:6767");
    
[/code]


CC BY-SA 3.0
2015-06-20T00:54:54.533
11541
2015-06-20T12:31:31.290
2015-06-20T12:31:31.290
799
799
11538
answer


ホスト側からアクセスする際のゲストのIPアドレスが`192.168.1.2`だった場合、以下のようにすればアクセスできます。

[code]

    server.listen("192.168.1.2:6767");
    
[/code]


CC BY-SA 3.0
2015-06-20T02:33:55.403
11543
2015-06-20T02:33:55.403
9999
11538
answer