Не удается получить доступ к Интернету из гостевой системы VirtualBox (Arch Linux)

Я использую VirtualBox 5.0.20. Хост-компьютер MacBook работает под управлением OS X 10.11.5 (El Capitan). Гостевой ОС – 64-разрядная Arch Linux. Когда я установил Arch из ISO, подключение к интернету было прекрасным. Однако, как только я загрузился в установленную систему, я больше не мог попасть в Интернет (например, pinging 8.8.8.8 просто зависает бесконечно).

Виртуальная машина имеет два сетевых адаптера: один мост и один хост-единственный. Я попытался сменить мост на адаптер NAT, а также одновременно подключить мост к беспроводному интерфейсу хоста и в другое время к проводному интерфейсу хоста. Гость не может получить доступ к Интернету под любой из этих настроек.

В гостевой ОС включен systemd-networkd.service и systemd-resolved.service. У меня нет никакой другой сетевой службы, о которой я знаю. Если возможно, я хотел бы придерживаться этих сервисов, а не переключаться на другую службу, но я переключусь, если в этих сервисах есть некоторая внутренняя ошибка, которая является корнем моей проблемы.

В гостевой ОС содержимое сетевого файла мостового адаптера:

[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, и я могу дополнительно подключать хосты в своей локальной сети, но я не могу ничего пинговать за пределами маршрутизатора моей локальной сети. Интернет-соединение хоста прекрасное.

Больше информации:

 [root@arch64 ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:1a:7d:74 brd ff:ff:ff:ff:ff:ff inet 192.168.0.5/24 brd 192.168.0.255 scope global dynamic enp0s3 valid_lft 3598sec preferred_lft 3598sec inet6 fe80::a00:27ff:fe1a:7d74/64 scope link valid_lft forever preferred_lft forever 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:3c:0a:7d brd ff:ff:ff:ff:ff:ff inet 192.168.56.2/24 brd 192.168.56.255 scope global enp0s8 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe3c:a7d/64 scope link valid_lft forever preferred_lft forever [root@arch64 ~]# ip route default via 192.168.56.1 dev enp0s8 proto static default via 192.168.0.1 dev enp0s3 proto dhcp src 192.168.0.5 metric 1024 192.168.0.0/24 dev enp0s3 proto kernel scope link src 192.168.0.5 192.168.0.1 dev enp0s3 proto dhcp scope link src 192.168.0.5 metric 1024 192.168.56.0/24 dev enp0s8 proto kernel scope link src 192.168.56.2 

One Solution collect form web for “Не удается получить доступ к Интернету из гостевой системы VirtualBox (Arch Linux)”

В моей настройке у меня было два системных сетевых файла: один для мостового адаптера и один для адаптера только для хоста. Я хотел, чтобы мостовой адаптер имел динамический адрес, потому что виртуальная машина находится на ноутбуке, который перемещается между сетями, и я хотел, чтобы адаптер только для хоста имел статический адрес, чтобы я мог получить к нему доступ, например, ssh, вручную определить адрес.

Однако при создании файлов сетевого блока я слепо скопировал то, что я нашел в учебнике по вики, – один раздел, описывающий, как быстро настроить динамический адрес, а другой – как быстро настроить статический адрес. Очевидно, что в учебнике предполагается, что я буду использовать одну или другую простую настройку, а не бок о бок, что является более сложным сценарием.

Достаточно сказать, что сетевой файл адаптера только для хоста имел указанную опцию Gateway, в то время как файл с мостиковым адаптером этого не делал. Таким образом, кажется, что шлюз адаптера только для хоста стал предпочтительным маршрутом для трафика, поступающего с виртуальной машины. Удаление этой опции из сетевого файла разрешило проблему.

Сетевой файл сетевого адаптера только после исправления (удалена опция Gateway):

 [root@arch64 ~]# cat /etc/systemd/network/host-only.network [Match] Name=enp0s8 [Network] Address=192.168.56.2/24 
Linux и Unix - лучшая ОС в мире.