Gobble up pudding

プログラミングの記事がメインのブログです。

MENU

Virtual BoxのNAT接続がうまくいかないので四苦八苦して解消

スポンサードリンク

f:id:fa11enprince:20160409135557j:plain そもそもの発端はVagrantを使っていて、vagrant upしたときに
sshの設定でダメになりハマっていたところからでした。
こんなやつです。

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'vista-ie7'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: vista-ie7_default_1454528248664_66668
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.
 
If you look above, you should be able to see the error(s) that
Vagrant had when attempting to connect to the machine. These errors
are usually good hints as to what may be wrong.
 
If you're using a custom box, make sure that networking is properly
working and you're able to connect to the machine. It is a common
problem that networking isn't setup properly in these boxes.
Verify that authentication configurations are also setup properly,
as well.
 
If the box appears to be booting properly, you may want to increase
the timeout ("config.vm.boot_timeout") value.

よく見るエラーで、うーんわからんということで、
手動でVirtual Boxの環境を作るところからやってみました。
そしたらGuest OSからネットにつながらないじゃないですか。

なんでかNAT接続でVirtual Boxの上に構築したGuest OS(CentOS, Ubuntu)から
NAT接続で外につなげませんでした。
2週間くらい悩んでました。
前からネットワーク周りの設定をほかのソフトウェアがいじっていたせいか
不安定になっていました。
いろいろ調べましたが、Virtual BoxのつくるGuestとHostをつなぐネットワーク
10.0.2.2(Guest OSからみたときのHostのIPアドレス)とか
192.168.3.1(※これは環境による。Host側のデフォルトゲートウェイでGest側にDNSサーバーとして設定されるもの)
が物理的に見えないのでよくわからん…の状態でした。

現象

Guest OSのCentOSからping 8.8.8.8は通るのだけれどもping google.comは通りませんでした。
DNSを疑いましたが、/etc/resolve.confを自動で書き換えないように設定したのち、
/etc/resolve.confをGoogleのDNS 8.8.8.8にしても改善せず…。

環境

仮想ソフト: Virtual Box 5.1.22
Host OS: Windows 10 (1607)
Guest OS: CentOS 6.9 minimal
※別途VMWare Playerも入れてあります。

解決方法

私の環境での解決法は、VMWare Playerが入っていたので
Virtual Boxを両方アンインストールして
もう一度Virtual Boxをインストールしました。
他にもいろいろついでにソフトを消していましたが、おそらくこの2つが原因です。
なにかネットワーク設定が衝突していたのかもしれません…
アンインストールするとVMWare PlayerとVirtual Boxが作るネットワークは消えています。
そしてもう一度Virtual Boxで一からCentOS 6.9のminimalを入れます

その他起きたこと

再インストール後、なぜかChromeだけでネットに繋がりません。
ルータを再起動してもダメでした。
そしたらこのコマンド打ったら治りました。
Chromeが突然ネットに繋がらなくなくなった!そんな時の解決法はコレだ! | 電気通う

> netsh winsock reset

やはり……VMWare PlayerとVirtual Boxがなにかしていたのかな…。

作り直した結果

$ ping 8.8.8.8
=> 成功
$ ping google.com
=> 成功
$ curl http://www.yahoo.co.jp
=> 成功