サイトアイコン たーちゃんの「ゼロよりはいくらかましな」

【vagrant】ホストからゲストにpingが通らない

vagrantではこれまでゲストに対しては、ポートフォワードを使用して

DBなどへホストから通信させていたのですが、

今回はゲストに対してprivate ipを設定し、そのipで通信させようとしたところ、

一向につながらないという事象に出くわしました。

 

簡単に解決できそうかと思いきや、全然できなかったんですよねー。

どうやって解決したかを備忘録。

 

 

 

環境

OS: mac Monterey

vagrant: 2.2.7

virtualbox: 6.1.30

 

vagrantで使用するbox:bento/amazonlinux-2

設定したprivate ip:192.168.33.10

 

 

確認したこと

ゲストにssh通信:OK

ゲストにてifconfigでipが割り当てられている:OK

 

うーん、vagrant設定的には問題なさそう。という感じでした。

 

 

virtualboxの設定を見てみる

Vagrantfileの書き方の問題かと思ってしばらくハマってしまったのですが、

原因はvirtualbox側にありました。

 

仮想マシンのネットワーク

virtualboxでの仮想マシンの設定→ネットワークとたどっていくと

「NAT」と「ホストオンリーアダプタ」という2つのものが割り当てられています。

 

NAT:sshやポートフォワードで使用

ホストオンリーアダプタ:ホスト⇔ゲストを内部ネットワークとして接続するために使用

 

設定確認

VBoxManage list -l hostonlyifs

このコマンドで、現在作成されているホストオンリーアダプタが表示されます。

 

Name:            vboxnet1
GUID:            786f6276-656e-4174-8000-0a0027000001
DHCP:            Disabled
IPAddress:       192.168.33.1
NetworkMask:     255.255.255.0
IPV6Address:
IPV6NetworkMaskPrefixLength: 0
HardwareAddress: 0a:00:27:00:00:01
MediumType:      Ethernet
Wireless:        No
Status:          Up
VBoxNetworkName: HostInterfaceNetworking-vboxnet1

 

このIPAddressに割当たっているものが、

vagrant側で設定したものでないと接続ができません!!

僕の場合は、このIPが違うものになっていました。

 

ホストオンリーアダプタの設定を修正する

と、いうことで今割当たっているもののIPを192.168.33.1に修正しようとしましたが。。。

E_ACCESSDENIED

 

が表示され変更できませんでした。。。

 

なぜアクセスが拒否される??

こちらの記事によると、

virtualboxの6.1.28以降、ホストオンリーアダプタを作成する際は、

192.168.56.XX〜作成されるようで、192.168.33.XXは許可されていないって

ことみたいです。

 

 

どうする?

拒否はされるものの、解決策はちゃんとあって、

/etc/vbox/networks.confを作成します。

vboxのフォルダがなければ作成すればOKです。

 

そこに、

* 192.168.0.0/16

これを追記します。

この記述で192.168始まりはすべてOKになります。

 

 

このファイルを作成したあと、

virtualboxにてホストオンリーアダプタのIPを

192.168.33.10に修正したら、

仮想マシンのアダプタを変更します。

 

これでホストからゲストへのpingも通るようになっているはずです。

 

 

それでは!!!

 

 

モバイルバージョンを終了