準・究極の選択

日経Linux 2016 年2月号を98頁をみました
それはVirtualBoxのゲストOSにホストのファイルを見せる方法として、ホスト側で

$ python -m SimpleHTTPServer

するというものです。
実行すると

Serving HTTP on 0.0.0.0 port 8000 ...

と表示されたのでゲストOSから記事通りに

http://0.0.0.0:8000/

と接続しようとしましたが失敗しました。

どうしてでしょうか


なお、VirtualBoxのネットワーク設定は、
  内部ネットワーク
にしています。個別のゲストOS同士で通信させるのに必要だったからですが、これが支障となっているのでしょうか。

A 回答 (1件)

サーバスタート時に表示された0.0.0.0は全てのIPアドレスを監視するという意味です。



ただ、ここで注意いただきたいのは、IPのルールでインターフェースが持っているIPアドレス以外のパケットはSimpleHTTPServerに処理が移るよりも前に破棄されるという事です。
バーチャルマシンのインターフェースに割り当てている192.168.15.2だとすればhttp://192.168.15.2:8000/へのアクセスが必要になります。

この0.0.0.0以外を監視する意味ですが複数のインターフェースを持っているサーバの場合に意味が現れます。
例えば2つのインターフェースがあってLAN1が192.168.1.1、192.168.2.1と割り当て、192.1681.1のポート8000のみを監視する設定にした場合を考えてみましょう。
この場合http://192.168.1.1:8000/では接続できますがhttp://192.168.2.1:8000/では接続できないという風になります。

解決法ですが、バーチャルマシン上からhttp://127.0.0.1:8000/にアクセスするか、ifconfigコマンドを実行し、http://[ifconfigの結果として表示されたIPアドレス]:8000/にアクセスすれば接続できます。
    • good
    • 0
この回答へのお礼

返答ありがとうございます
やってみます

お礼日時:2016/05/22 07:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報