shibuso.net

プログラミングとかゲームとか

Virtual Box5にUbuntu14.04を入れて、ホストからゲストへssh接続

2015年07月30日 | タグ: 開発

MacにHomebrewを入れて、そこからRuby入れたりMySQL入れたりして開発してたのですが、やっぱりサーバと同じような環境の方がいいかなと思って、初めてMacにVirtual Boxを導入してみました。

今まで何度かWindows上でVirtual BoxでUbuntu環境を構築したことはあったのですが、初Macだったのでした。そしたらちょっと苦労したから自分のためにもsshを繋ぐまでの手順をまとめときます。

…まぁ苦労した原因というのは結局Macだったからというわけではなく、ネットワーク環境の違いのためだったんですけどね。

ちなみに環境は

  • MacBook Air (Yosemite)
  • Virtual Box 5.0.0
  • Ubuntu Server 14.04.2 LTS

とりあえず最低限のUbuntuをセットアップしたという前提から話を始めます。

この段階だとNAT接続で普通にネットに繋がっているはずです。apt-getなど普通に実行できてれば繋がってますね。ただこれだけだとMacからUbuntuに対してsshの接続が出来ません。

ここで今まで使ってきたWindowsマシンでは全て有線LANで接続していたので、ブリッジ接続で繋げるように設定を変更していました。しかし今回のMacBook Airでは無線LANでの接続をしていたのでブリッジ接続は選べません。

調べてみたところNAT+ホストオンリーアダプターでの接続が良さそうでしたので、早速それで試してみることに。

まずはVirtual Box自体の環境設定からネットワークを選択し、続いてホストオンリーネットワークを選びます。その右側にある「+」ボタンから追加を選択すると設定を作成することが出来ます。

アダプターの設定は下図のような初期値のままで問題ないです。DHCPサーバは使用しないのでチェックボックスは外したままでokです。

ホストオンリーネットワーク設定

続いてUbuntuのVirtual Boxでの設定です。アダプター1は初期設定のままNATを選択し、アダプター2に先程作ったホストオンリーアダプターを設定しましょう。

アダプター2の設定

この設定をしてからUbuntuを起動し、続いて管理者権限で /etc/network/interfaces を編集します。内容は

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

# vboxnet0
auto eth1
iface eth1 inet static
  address 192.168.56.2
  netmask 255.255.255.0

こんな感じで大丈夫です。eth0までは元々記入されてたと思います、eth1の設定を追加する感じですね。

これで再起動して上手く設定が反映されると、上で設定した192.168.56.2に対してホスト側からsshを繋げることが出来るようになります。routeを叩くと下図のような感じに表示されてればokです。

good route

しかしたまに起動時にネットワークの設定が失敗する場合があります。その場合は下図のような結果になります。

bad route

どうもゲートウェイの設定に失敗している模様です。

どうして同じ設定をしているのに場合によって結果が異なるのかはいまいち理解できないのですが、私が検索した限りでは解決策は見つかりませんでした。

おまけに会社で上司に尋ねてみたら「あるあるネタ」とのこと。なるほど、私が無知でした(´・ω・`) 以前のバージョンのVirtual Boxでもそうだったみたいですが、5になってもこの現象は起こっています。Ubuntuの問題?