KVM мостовая сеть не работает

23

Я только что установил KVM на свой сервер Ubuntu в соответствии с этим руководством: https://help.ubuntu.com/community/KVM/Installation

Затем подготовили мостовую сеть, как показано здесь: https://help.ubuntu.com/community/KVM/Networking

Затем я создал виртуальную машину с помощью virt-manager. Я пробовал несколько раз, но гость не может подключиться к сети! Любая помощь?

ifconfig:

      br0       Link encap:Ethernet  HWaddr d0:27:88:b0:e4:38  
                inet addr:192.168.20.100  Bcast:192.168.20.255  Mask:255.255.255.0
                inet6 addr: fe80::d227:88ff:feb0:e438/64 Scope:Link
                UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                RX packets:62 errors:0 dropped:0 overruns:0 frame:0
                TX packets:62 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:0 
                RX bytes:10493 (10.4 KB)  TX bytes:8433 (8.4 KB)

      eth0      Link encap:Ethernet  HWaddr d0:27:88:b0:e4:38  
                UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                RX packets:62 errors:0 dropped:0 overruns:0 frame:0
                TX packets:63 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:1000 
                RX bytes:11361 (11.3 KB)  TX bytes:8479 (8.4 KB)
                Interrupt:41 

      lo        Link encap:Local Loopback  
                inet addr:127.0.0.1  Mask:255.0.0.0
                inet6 addr: ::1/128 Scope:Host
                UP LOOPBACK RUNNING  MTU:16436  Metric:1
                RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:0 
                RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

      virbr0    Link encap:Ethernet  HWaddr 5a:8c:57:95:af:3b  
                inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
                UP BROADCAST MULTICAST  MTU:1500  Metric:1
                RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:0 
                RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

brctl show:

 bridge name    bridge id      STP enabled    interfaces
 br0       8000.d02788b0e438   no        eth0
 virbr0         8000.000000000000   yes  

brctl showmacs br0:

 port no   mac addr       is local? ageing timer
   1  5c:d9:98:67:b6:28   no          48.33
   1  d0:27:88:b0:e4:38   yes          0.00
   1  e0:2a:82:f9:6c:09   no           0.00

IP-маршрут:

 default via 192.168.20.1 dev br0  metric 100 
 192.168.20.0/24 dev br0  proto kernel  scope link  src 192.168.20.100 
 192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1

* В госте * Мне не удалось скопировать вставить информацию из гостя, потому что не могу ssh к нему. Он не получил IP от DHCP. Не будет работать даже после ручной настройки.

THpubs
источник
Могу ли я предложить вам вывод следующих команд? На хосте: ifconfig, brctl show, brctl showmacs br0, и ip route. На гостя: ifconfig, ip route, ping 8.8.8.8, ping <your internet router>, и traceroute 8.8.8.8. Я не могу сказать, что я настроил KVM так, как вы, но я получил мост для работы с помощью kvmкоманды. Мне пришлось отключить беспроводную связь, чтобы мой хост подключился к Интернету, и, как указано в приведенных вами инструкциях, вам нужно подключиться к Интернету через Ethernet.
Джон С. Грубер
@JohnSGruber Только что добавил запрошенную информацию. Но я не смог скопировать вставить информацию от гостя, потому что не могу ssh к нему. Он не получил IP от DHCP. Не будет работать даже после ручной настройки.
THpubs
MAC-адрес, который вы присвоили гостю в brctl showmacs br0списке выше?
Джон С. Грубер
Я не добавил макинтош вручную ... но позвольте мне проверить мак, который он получил ..
THpubs
@JohnSGruber Нет, я не вижу здесь этого MAC!
THpubs

Ответы:

22

прелиминарии

Это следующее работает для меня для Ubuntu 12.04. Вы должны отключить брандмауэр вашего компьютера во время тестирования, чтобы он не мешал.

Файл / etc / default / qemu-kvm должен быть таким же, как изначально установлен.

Вам нужно будет установить bridge-utils qemu-kvm и libvirt-bin . Любые пользователи, использующие виртуальные машины, должны быть добавлены в группу libvirtd.Установите bridge-utils Установите qemu-kvmУстановите libvirt-bin

Кажется, больше нет необходимости добавлять возможность CAP_NET_ADMIN.

Настройка сети

Сетевым режимом по умолчанию является режим пользователя, также называемый SLIRP. Он использует предопределенный мост virbr0, который NAT направляется на гостевой компьютер. NAT-маршрутизация использует функцию ядра ip_forwarding и iptables . В режиме моста в гостевой системе используется виртуальный мост, к которому подключается (ненумерованный) интерфейс Ethernet и на котором у хоста и гостя есть свои сетевые интерфейсы.

Следующие диаграммы могут прояснить различия:

Сетевые диаграммы

Вы можете увидеть, как сеть пользователя по умолчанию определяется с помощью:

virsh net-dumpxml default

Я могу настроить мостовой режим с помощью следующих подходов:

В / etc / network / interfaces (из той части поста, которую вы упоминаете в своем вопросе):

авто ло
iface lo inet loopback
#auto eth0
#iface eth0 inet dhcp
авто eth0
iface eth0 inet инструкция
авто br0
iface br0 inet dhcp
    bridge_ports eth0
    Bridge_stp выключен
    bridge_fd 0
    bridge_maxwait 0

Перезагружать; и убедитесь, что беспроводная сеть не активна. Проверьте IP-маршрут по умолчанию с ip route. Это должен быть интерфейс br0.

Примечание: если ваш Ethernet не подключен, когда это изменение будет сделано, вам нужно подключить кабель Ethernet и получить носитель, или загрузка будет зависать в течение двух минут, и у вас не будет возможности сети. Это связано с тем, что интерфейс eth0 Находясь в этом файле, должен подойти, прежде чем загрузка может продолжаться нормально.

NB. Как правило, вы не можете использовать беспроводную сеть вместо eth0 из-за невозможности использования нескольких MAC-адресов (я полагаю, что им нужен второй для моста).

В качестве альтернативы вы можете отключить использование Ethernet и убедитесь , что он не имеет IP - адрес, и что не существует маршрут по умолчанию устанавливается с ip route. Затем:

 sudo ifconfig eth0 0.0.0.0 up
 sudo brctl addbr br0
 sudo brctl addif br0 eth0
 sudo ifconfig br0 up
 sudo dhclient br0 &

Вы также можете указать здесь статический IP-адрес, а также указать маршрут по умолчанию и адрес DNS. Для этого примера dhclientэто делается.

Вот моя таблица маршрутов:

$ ip route list
по умолчанию через 192.168.1.1 dev br0 metric 100 
169.254.0.0/16 dev br0 Метрика ссылки области видимости 1000 
192.168.1.0/24 dev br0 Протока ядра, ссылка на источник src 192.168.1.45 
192.168.122.0/24 dev virbr0 ссылка на ядро ​​протока src 192.168.122.1

Использование KVM

Затем я могу загрузить машину с мостовым подключением с помощью:

 $ sudo kvm -name Quantal -m 1024 -hda foo.qcow2 --soundhw ac97 -device virtio-net,netdev=tunnel -netdev tap,id=tunnel,ifname=vnet0

В -netdev tapмарке параметров Sudo требования. При запуске виртуальной машины qemu-kvm выполняет следующие команды:

ifconfig vnet0 0.0.0.0 up
brctl addif brctl addif br0 vnet0

Это делается с помощью / etc / qemu-ifup

Интерфейс виртуальной машины vnet0 добавлен к мосту br0, потому что маршрут по умолчанию, используемый выше, использует этот интерфейс моста. Если бы этого не было, вместо этого интерфейс крана был бы добавлен к интерфейсу virbr0. Поскольку он не подключен к Интернету, в моих экспериментах NAT использовался для подключения гостя к хосту и Интернету. Вы можете направить vnet0 на конкретный мост в / etc / default / qemu-kvm. Используя virt-manager ниже, вы можете явно указать, к какому мосту подключаться.

Из-за вышеупомянутых команд, выпущенных qemu-kvm, и -netdev tap,id=tunnel,ifname=vnet0параметра, виртуальная машина vm подключена к туннелю vnet0, а туннель подключен к мосту br0.

Теперь я могу напрямую подключиться к этой гостевой виртуальной машине с другого компьютера в моей сети.

Мой хост ifconfig(обратите внимание на интерфейс vnet0, который появляется в моей сети, когда виртуальная машина работает):

$ Ifconfig
br0 Link encap: Ethernet HWaddr 00: 1e: 33: 88: 07: e5  
          адрес в сети Интернет: 192.168.1.45 Bcast: 255.255.255.255 Маска: 255.255.255.0
          inet6 адрес: fe80 :: 21e: 33ff: fe88: 7e5 / 64 Область применения: ссылка
          UP BROADCAST RUNNING MULTICAST MTU: 1500 Метрика: 1
          Пакеты RX: 6526 ошибок: 0 отброшено: 0 переполнений: 0 кадр: 0
          Пакеты TX: 7543 ошибок: 0 отброшено: 0 переполнений: 0 несущая: 0
          столкновений: 0 txqueuelen: 0 
          RX байт: 2712940 (2,7 МБ) TX байт: 1071835 (1,0 МБ)

eth0 Link encap: Ethernet HWaddr 00: 1e: 33: 88: 07: e5  
          UP BROADCAST RUNNING MULTICAST MTU: 1500 Метрика: 1
          Пакеты RX: 7181 ошибок: 0 отброшено: 0 переполнений: 0 кадр: 0
          Пакеты TX: 7740 ошибок: 0 отброшено: 0 переполнений: 0 несущая: 0
          столкновения: 0 txqueuelen: 1000 
          RX байт: 2974585 (2,9 МБ) TX байт: 1096580 (1,0 МБ)
          Прерывание: 43 Базовый адрес: 0x6000 

lo Link encap: Local Loopback  
          адрес в сети: 127.0.0.1 маска: 255.0.0.0
          inet6 адрес: :: 1/128 Область применения: Host
          UP LOOPBACK RUNNING MTU: 16436 Метрика: 1
          Пакеты RX: 10 ошибок: 0 отброшено: 0 переполнений: 0 кадр: 0
          Пакеты TX: 10 ошибок: 0 отброшено: 0 переполнений: 0 несущая: 0
          столкновений: 0 txqueuelen: 0 
          Байты RX: 664 (664,0 B) байты TX: 664 (664,0 B)

vnet0 Link encap: Ethernet HWaddr ca: 0c: 73: c3: bc: 45  
          inet6 адрес: fe80 :: c80c: 73ff: fec3: bc45 / 64 Область действия: ссылка
          UP BROADCAST RUNNING MULTICAST MTU: 1500 Метрика: 1
          Пакеты RX: 226 ошибок: 0 отброшено: 0 переполнений: 0 кадр: 0
          Пакеты TX: 429 ошибок: 0 отброшено: 0 переполнений: 0 несущая: 0
          столкновений: 0 txqueuelen: 500 
          RX-байты: 26919 (26,9 КБ). TX-байты: 58929 (58,9 КБ).

virbr0 Link encap: Ethernet HWaddr d6: 18: 22: дБ: ff: 93  
          адрес в сети Интернет: 192.168.122.1 Bcast: 192.168.122.255 Маска: 255.255.255.0
          UP BROADCAST MULTICAST MTU: 1500 Метрика: 1
          Пакеты RX: 0 ошибок: 0 отброшено: 0 переполнений: 0 кадр: 0
          Пакеты TX: 0 ошибок: 0 отброшено: 0 переполнений: 0 несущая: 0
          столкновений: 0 txqueuelen: 0 
          RX байтов: 0 (0,0 B) TX байтов: 0 (0,0 B)

Моя конфигурация моста во время работы виртуальной машины:

$ brctl show
имя моста идентификатор моста с поддержкой STP
br0 8000.001e338807e5 нет eth0
                                                        vnet0
virbr0 8000.000000000000 да

Обратите внимание, что как интерфейс виртуальной машины vnet0, так и интерфейс eth0 подключены к мосту br0.

И MAC на интерфейсе br0:

$ brctl showmacs br0
порт нет mac addr является локальным? таймер старения
  1 00: 05: 5д: ср: 64: 61 нет 2,54
  1 00: 19: d2: 42: 5d: 3f нет 36,76
  1 00: 19: df: da: af: 7c нет 2.86
  1 00: 1e: 33: 88: 07: e5 да 0,00
  1 00: 60: 0f: e4: 17: d6 нет 0,79
  2 52: 54: 00: 12: 34: 56 нет 0,80
  1 58: 6d: 8f: 17: 5b: c0 нет 5,91
  1 с8: аа: 21: бе: 8д: 16 нет 167,69
  2 ca: 0c: 73: c3: bc: 45 да 0,00

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

Вы можете проверить, что вы соединены мостом, а не NAT направлен в вашу собственную сеть с помощью traceroute 8.8.8.8. Если первый узел является маршрутизатором вашей сети, а не IP-адресом гостя, ваша сеть должна работать правильно.

Смотрите эту документацию .

вирт-менеджер

Будьте уверены, что вы установили virt-managerи hal. halПакет является предложил зависимость для virt-managerи используется для определения сетевой конфигурации вашей системы при создании или редактировании гостей.

Определив мост br0, как описано выше, я создал виртуальную машину с помощью virt-manager:

введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь

Я был в состоянии пойти непосредственно к остальной части моей домашней сети и к Интернету от этого гостя. Я также смог подключиться к нему с другого (не хостового, не гостевого) компьютера Ubuntu в моей домашней сети.

Вот очень длинная kvmкоманда, запускаемая virt-manager (для сравнения с EApubs или кем-то еще, имеющим проблемы с этим):

/ usr / bin / kvm -S -M pc-1.0 -able-kvm -m 1024 -smp 1, сокеты = 1, ядра = 1, потоки = 1-точное имя -uuid f057a729-eda6-4b85-84dc-f100c9ae3789 - nodefconfig -nodefaults -chardev сокет, id = charmonitor, путь = / var / lib / libvirt / qemu / точный.monitor, сервер, nowait -mon chardev = charmonitor, id = монитор, режим = контроль -rtc base = utc -no- shutdown -drive file = / media / natty / home / gruber / ubuntu-kvm / tmpW8gSGB.qcow2, если = нет, id = drive-ide0-0-0, format = qcow2 -device ide-drive, bus = ide.0 , unit = 0, drive = drive-ide0-0-0, id = ide0-0-0, bootindex = 1 -netdev tap, fd = 18, id = hostnet0 -устройство rtl8139, netdev = hostnet0, id = net0, mac = 52: 54: 00: 0e: da: 9b, шина = pci.0, addr = 0x3 -chardev pty, id = charserial0 -устройство isa-serial, chardev = charserial0, id = serial0 -usb -vnc 127.0.0.1: 0 -vga cirrus - устройство intel-hda, id = sound0, bus = pci.0, addr = 0x4 - устройство hda-duplex, id = sound0-codec0, bus = sound0.0,cad = 0-девайс virtio-balloon-pci, id = balloon0, bus = pci.0, addr = 0x5

Вот сетевая часть описания виртуальной машины в /etc/libvirt/qemu/quantal.xml

    <interface type='bridge'>
      <mac address='52:54:00:b0:8e:aa'/>
      <source bridge='br0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

Согласно этой ссылке, для производительности и надежности лучше всего установить модель сетевого устройства virtio, вы можете сделать это в virt-viewer, нажав кнопку i , перейдя к настройке NIC и установив «Модель устройства». "к virtio. Вы также можете добавить это в XML выше, добавив строку:

      <model type='virtio'/>

В итоге

Все это заняло 12.04 было:

  1. Установка virt-manager, bridge-utils, qemu-kvm и связанных пакетов
  2. Убедитесь, что каждый пользователь, желающий использовать kvm, входит в группу libvirtd.
  3. Определение / etc / network / interfaces, как указано выше (которые соответствуют цитируемой статье)
  4. Перезагрузитесь, убедившись, что Ethernet подключен и беспроводная связь (если есть) отключена.
  5. Либо запустите kvm для образа напрямую, например -device e1000,netdev=tunnel -netdev tap,id=tunnel,ifname=vnet0, либо создайте виртуальную машину с помощью virt-manager, указав сетевой мост br0 на шаге 4 -> панель «Дополнительные параметры».

Никаких дальнейших изменений в сети, возможностях, шаблонах или конфигурациях не потребовалось.

Чтобы выставить услугу вашего нового гостя в Интернете, вам необходимо:

  1. Подготовьте и настройте любую службу брандмауэра, которая вам понадобится.
  2. Либо назначьте статический адрес в вашей гостевой конфигурации или в вашей службе DHCP.
  3. Если вы используете NAT-маршрутизатор, откройте порт для внедряемой вами службы, направив его на IP-адрес гостя.

Не забудьте протестировать и снова включить службу брандмауэра для вашего главного компьютера. Может потребоваться любая запись для пересылки трафика гостю.

См. Https://help.ubuntu.com/community/KVM/Installation , https://help.ubuntu.com/community/KVM/Networking и https://help.ubuntu.com/12.04/serverguide/libvirt. HTML .

Джон С. Грубер
источник
Привет, у меня нет беспроводной карты на этой машине. только Ethernet :)
THpubs
Я понимаю, что у вас нет беспроводной связи, но другие могут прочитать этот вопрос. Я разместил раздел virt-manager, так как это то, что вы использовали. Вы указали Bridged to br0 в шаге 4 «Дополнительные параметры» при создании виртуальной машины? Соответствуют ли сетевые параметры в команде kvm, запущенной virt-manager, моим? (Вы можете увидеть это, запустив ps aux | grep kvm).
Джон С. Грубер
Привет, при создании виртуальной машины с помощью менеджера Virt, в дополнительных опциях я не вижу eth0 и br0.
THpubs
Ну, это, наверное, проблема - это ключ к тому, чтобы заставить его работать под Virt-Manager. Работаете ли вы на компьютере, на котором он будет размещен (а br0 определено так, brctl showкак указано в вашем вопросе?) Какую версию Ubuntu вы используете? Может в этом и разница. Какая версия вирт-менеджера? (Мой 0.9.1-1ubuntu5.1).
Джон С. Грубер
Я использую Ubuntu 12.04 и virt-manager 0.9.1-1ubuntu5.1. На самом деле у меня не установлен virt-manager на хосте. У меня это на удаленной машине, и я использую его для подключения к хосту. Это проблема у меня?
THpubs
6

Если вы видите, что хост может получить доступ к гостю, а гость может получить доступ к хосту, но гость не может получить доступ к другим машинам в сети или наоборот ... возможно, брандмауэр хоста блокирует доступ.

Смотрите: https://bugs.launchpad.net/ubuntu/+source/ufw/+bug/573461.

В частности, этот раздел: «Последний шаг - отключение сетевого фильтра на мосту:

# cat >> /etc/sysctl.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
EOF
Джереми Спилман
источник
3

Это два сценария, которые я использую для создания моста. qemu-kvm .

Во-первых, пусть хост станет IP-маршрутизатором.

Сценарий ip-router.sh:

#!/bin/bash

internetinterface="eth0"

username=`whoami`

if [ "x$username" != "xroot" ] ; then

    echo    
    echo "You must be root in order to run this script..."
    echo    

    exit    

fi  

if [ "x$1" != "x" ] ; then
    internetinterface="$1"
fi  

if [ "x$1" == "xdel" ] || [ "x$2" == "xdel" ] ; then
    disable="1"
else
    disable="0"
fi  

if [ "$disable" == "0" ] ; then
    echo "Enabling IP forward and setting up masquerade NAT on interface $internetinterface"

    echo 1 > /proc/sys/net/ipv4/ip_forward

    iptables -t nat -A POSTROUTING -o $internetinterface -j MASQUERADE
else
    echo "Disable IP forward and setting down masquerade NAT on interface $internetinterface"

    echo 0 > /proc/sys/net/ipv4/ip_forward

    iptables -t nat -D POSTROUTING -o $internetinterface -j MASQUERADE
fi  

Затем создайте tun-tapинтерфейс иbridge с интерфейсом по умолчанию (обычно с подключением к Интернету).

Сценарий create-qemu-bridged-tuntap.sh:

#!/bin/bash

bridgename=br0
tapinterface=tap0
outinterface=eth1

if [ "x$1" != "x" ] ; then
    outinterface="$1"
fi  

ifaces=`awk -F: '{print $1}' /proc/net/dev | tail -n +3`
iffound="0"

for i in $ifaces
do  
    if [ "$outinterface" == "$i" ] ; then
            iffound="1"
    fi  
done

if [ "$iffound" == "0" ] ; then
    echo
    echo "Can't find the output interface."
    echo
    exit 1
fi  

outifaceip=`ifconfig | grep -A1 $outinterface | tail -1 | awk -F: '{print $2}' | awk '{print $1}'`
outifaceiptokens=`echo $outifaceip | awk -F \. '{print NF}'`

if [ "$outifaceiptokens" != "4" ] ;  then
    echo
    echo "The selected output interface $outinterface doesn't seem to have a valid IP address."
    echo
    exit 1
fi  

hostaddress="192.168.1.1"
guestaddress="192.168.1.95"

sudo tunctl -t $tapinterface

sudo brctl addbr $bridgename
sudo brctl addif $bridgename $tapinterface

sudo ip link set $bridgename up
sudo ip addr add $hostaddress/24 dev $bridgename

sudo route add -host $guestaddress dev $bridgename
sudo parprouted eth1 $bridgename

sudo ~/scripts/ip-router.sh $outinterface

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

dlocate `which COMMAND`

Вы можете увидеть, какой пакет должен иметь COMMAND. Например, чтобы увидеть, какой пакет требуется иметь brctl, просто запустите:

dlocate `which brctl`

и вы будете иметь:

bridge-utils: /sbin/brctl

Используя один и тот же подход для всех команд в этих сценариях, вы должны (как минимум) запустить эту aptitudeкомандную строку:

sudo aptitude install dlocate iproute parprouted iptables uml-utilities bridge-utils net-tools

Наконец, вы можете запустить основной скрипт (как обычный пользователь):

#> create-qemu-bridged-tuntap.sh eth0
Set 'tap0' persistent and owned by uid 0
Enabling IP forward and setting up masquerade NAT on interface eth0

При запуске ip addrвы должны увидеть br0интерфейс с IP-адресом 192.168.1.1, как указано в create-qemu-bridged-tuntap.shскрипте:

#> ip addr
8: br0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 36:76:ee:d6:63:b2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 scope global br0

Это host addressкак видно из guest. И наоборот, гость будет иметь в качестве IP-адреса192.168.1.95 (опять же, это можно легко изменить в основном скрипте).

Теперь, используя virt-manager, вы просто должны настроить свой гостевой ник для использования в br0качестве физического интерфейса.

вирт-менеджер-br0-NIC

Внутри guest, вы просто должны дать eth0IP-адрес, 192.168.1.95и все должно работать нормально.

Slackware13:~> ifconfig 
eth0      Link encap:Ethernet  HWaddr 52:54:00:F7:6A:78  
          inet addr:192.168.1.95  Bcast:192.168.1.255  Mask:255.255.255.0
Avio
источник
Хотя вы используете для этого мост, мне кажется, что вы создаете средство пересылки NAT. Тем не менее, если вы можете перенаправить определенные порты хоста, возможно, это будет делать то, что хочет EApubs. Очень интересный и очень полезный ответ.
Джон С. Грубер
Спасибо, это работает безупречно для моих целей. Но на самом деле мне не нужен удаленный доступ к моей виртуальной машине, и я подумал, что EApubs просто пытается получить доступ в Интернет на своей виртуальной машине.
Avio
@ Avio Нет, мой друг, мне нужен удаленный доступ к моей машине. Если я устанавливаю NAT и создаю виртуальную машину, это работает.
THpubs
Существует ключ здесь к проблеме я имел где IP - экспедиторскую был выключен, который cat /proc/sys/net/ipv4/ip_forwardдал 0. Включение и сохранение его прояснило проблему для меня, инструкции в этом посте .
Джейк Кобб