web-dev-qa-db-ja.com

VirtualBoxゲストからインターネットにアクセスできません(Arch Linux)

VirtualBox5.0.20を使用しています。ホストマシンは、OS X 10.11.5(El Capitan)を実行しているMacBookです。ゲストOSは64ビットのArchLinuxです。 ISOからArchをインストールしたとき、ゲストのインターネット接続は問題ありませんでした。ただし、インストールされたシステムを起動すると、インターネットにアクセスできなくなりました(たとえば、ping 8.8.8.8が無期限にハングします)。

仮想マシンには2つのネットワークアダプターがあります。1つはブリッジ、もう1つはホストのみです。ブリッジをNATアダプターに変更し、ブリッジをホストのワイヤレスインターフェイスに接続し、別のときにホストの有線インターフェイスに接続しようとしました。ゲストはインターネットにアクセスできません。これらの設定のいずれかの下で。

ゲストOSはsystemd-networkd.serviceとsystemd-resolved.serviceを有効にしました。私が知っている他のネットワークサービスは有効になっていません。可能であれば、別のサービスに切り替えるのではなく、これらのサービスに固執したいのですが、これらのサービスに固有の欠陥があり、それが私の問題の根本である場合は切り替えます。

ゲストOS内では、ブリッジアダプターのネットワークファイルの内容は次のとおりです。

[root@Arch64 ~]# cat /etc/systemd/network/bridged.network 
[Match]
Name=enp0s3

[Network]
DHCP=ipv4

そして、ホストオンリーアダプタのネットワークファイルの内容:

[root@Arch64 ~]# cat /etc/systemd/network/Host-only.network 
[Match]
Name=enp0s8

[Network]
Address=192.168.56.2/24
Gateway=192.168.56.1

ブリッジアダプタはDHCPリースを正常に取得し、LAN上のホストに追加でpingを実行できますが、LANのルーター以外にはpingを実行できません。ホストのインターネット接続は問題ありません。

4
kvndrsy

答えは私が受け取ったヒントから来ています これと同じ質問がUnixとLinuxのStackExchangeで尋ねられました

私のセットアップでは、2つのsystemdネットワークユニットファイルがありました。1つはブリッジアダプター用で、もう1つはホストオンリーアダプター用です。仮想マシンはネットワーク間を移動するラップトップ上にあるため、ブリッジアダプターに動的アドレスを持たせたいと思いました。また、ホストオンリーアダプターに静的アドレスを持たせて、sshなどでアクセスできるようにしました。手動でアドレスを決定します。

ただし、ネットワークユニットファイルを作成する際に、wikiチュートリアルで見つけたものを盲目的にコピーしました。1つのセクションでは動的アドレスをすばやく設定する方法を説明し、もう1つのセクションでは静的アドレスをすばやく設定する方法を説明しました。明らかに、チュートリアルでは、どちらか一方の単純なセットアップを使用することを想定していました。両方を並べて使用するのではなく、より複雑なシナリオです。

ホストオンリーアダプターのネットワークファイルにはゲートウェイオプションが指定されていましたが、ブリッジアダプターのファイルには指定されていなかったと言えば十分です。したがって、ホストオンリーアダプタのゲートウェイが仮想マシンからのトラフィックの優先ルートになったようです。ネットワークファイルからこのオプションを削除すると、問題が解決しました。

修正後のホストオンリーアダプタネットワークファイル(ゲートウェイオプションを削除):

[root@Arch64 ~]# cat /etc/systemd/network/Host-only.network 
[Match]
Name=enp0s8

[Network]
Address=192.168.56.2/24
2
kvndrsy