Vagrantで作った仮想環境上のサーバに他の端末からアクセスする
概要
Vagrantの仮想環境上に立てたサーバに、Androidなどの端末からアクセスする
やりかた
Vagrant
Vagrantのネットワーク機能には大きく分けて3つあり、目的によって使い分ける。
参考:Vagrantのネットワーク周りのあれこれ | Septeni Engineers' Blog | セプテーニ エンジニアブログ
種類 | 概要 |
---|---|
プライベートネットワーク | ホストOSとゲストOS間でのみ通信が行える |
ポートフォワーディング | ホストOSへの特定のポートを使った接続をゲストOSに転送する |
パブリックネットワーク | 同一ネットワーク内のどの端末からでもゲストOSと通信が行える |
今回はポートフォワーディングを使ってホストOSの特定のポートへのアクセスをゲストOSへ転送する。
Vagrantfileのネットワークの設定をを以下のようにする。
config.vm.define :db1 do |db| db.vm.network :forwarded_port, guest: 80, host: 8080, :bridge => "en0: Wi-Fi (AirPort)" end
ネットワークを forwarded_port
にし、ゲストOSとホストOSのポートを指定、ネットワークインタフェースに bridge
オプションを付けて、Wi-Fiネットワークからのアクセスを可能にする。
この状態で
$ vagrant up
を実行する。
既にupされていた場合は
$ vagrant reload
を実行する。
ローカル
$ ifconfig wlan0 inetアドレス:192.168.0.2
これで、仮想環境上のサーバが動いていれば、同一のネットワークに繋いでいる端末で192.168.0.2:8080
にアクセス出来るはず。