Как разрешить моей виртуальной машине подключаться к сети?

На моем Mac я использую VMware Fusion, создал виртуальную машину, ifconfig моего Mac выглядит следующим образом:

aircraftdeMacBook-Pro:.ssh ldl$ ifconfig 
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>
    inet 127.0.0.1 netmask 0xff000000 
    inet6 ::1 prefixlen 128 
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
    nd6 options=201<PERFORMNUD,DAD>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether a0:99:9b:17:50:07 
    inet6 fe80::8e2:5999:6f70:e3f5%en0 prefixlen 64 secured scopeid 0x4 
    inet 192.168.1.6 netmask 0xffffff00 broadcast 192.168.1.255
    nd6 options=201<PERFORMNUD,DAD>
    media: autoselect
    status: active
en1: flags=963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX> mtu 1500
    options=60<TSO4,TSO6>
    ether 4a:00:02:2c:3b:30 
    media: autoselect <full-duplex>
    status: inactive
en2: flags=963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX> mtu 1500
    options=60<TSO4,TSO6>
    ether 4a:00:02:2c:3b:31 
    media: autoselect <full-duplex>
    status: inactive
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
    ether 02:99:9b:17:50:07 
    media: autoselect
    status: inactive
awdl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1484
    ether 7e:0a:8c:55:bc:b4 
    inet6 fe80::7c0a:8cff:fe55:bcb4%awdl0 prefixlen 64 scopeid 0x8 
    nd6 options=201<PERFORMNUD,DAD>
    media: autoselect
    status: active
bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=63<RXCSUM,TXCSUM,TSO4,TSO6>
    ether 4a:00:02:2c:3b:30 
    Configuration:
        id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
        maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
        root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
        ipfilter disabled flags 0x2
    member: en1 flags=3<LEARNING,DISCOVER>
            ifmaxaddr 0 port 5 priority 0 path cost 0
    member: en2 flags=3<LEARNING,DISCOVER>
            ifmaxaddr 0 port 6 priority 0 path cost 0
    nd6 options=201<PERFORMNUD,DAD>
    media: <unknown type>
    status: inactive
utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000
    inet6 fe80::5f08:8c57:f439:8b6%utun0 prefixlen 64 scopeid 0xa 
    nd6 options=201<PERFORMNUD,DAD>
vmnet1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether 00:50:56:c0:00:01 
    inet 172.16.111.1 netmask 0xffffff00 broadcast 172.16.111.255
vmnet8: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether 00:50:56:c0:00:08 
    inet 192.168.220.1 netmask 0xffffff00 broadcast 192.168.220.255

И в моей виртуальной машине это ip aвыглядит так:

[root@localhost yangmi]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    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: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:47:93:4b brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.25/24 brd 192.168.1.255 scope global eno16777736
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe47:934b/64 scope link 
       valid_lft forever preferred_lft forever
3: eno33554992: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:50:56:26:58:01 brd ff:ff:ff:ff:ff:ff
    inet 192.168.220.129/24 brd 192.168.220.255 scope global dynamic eno33554992
       valid_lft 1688sec preferred_lft 1688sec
    inet6 fe80::250:56ff:fe26:5801/64 scope link 
       valid_lft forever preferred_lft forever
4: eno50332216: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:47:93:5f brd ff:ff:ff:ff:ff:ff
    inet 192.168.220.130/24 brd 192.168.220.255 scope global dynamic eno50332216
       valid_lft 1688sec preferred_lft 1688sec
    inet6 fe80::20c:29ff:fe47:935f/64 scope link 
       valid_lft forever preferred_lft forever
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 500
    link/ether 52:54:00:4a:68:e5 brd ff:ff:ff:ff:ff:ff

вы видите, eno16777736что IP-адрес - 192.168.1.25/24это та же самая WLAN с интерфейсом моего Mac en0.

Но в ВМ я не могу указать pingip baidu:

[root@localhost yangmi]# ping 220.181.57.217
PING 220.181.57.217 (220.181.57.217) 56(84) bytes of data.
From 192.168.1.25 icmp_seq=1 Destination Host Unreachable
From 192.168.1.25 icmp_seq=2 Destination Host Unreachable
From 192.168.1.25 icmp_seq=3 Destination Host Unreachable
From 192.168.1.25 icmp_seq=4 Destination Host Unreachable
From 192.168.1.25 icmp_seq=5 Destination Host Unreachable
From 192.168.1.25 icmp_seq=6 Destination Host Unreachable
From 192.168.1.25 icmp_seq=7 Destination Host Unreachable

Как я могу использовать виртуальную машину для подключения к сети?


Система моего хоста: macOS Sierra 10.12.2
Система моей виртуальной машины: CentOS 7.2


РЕДАКТИРОВАТЬ

Я использую ip route show:

[root@localhost yangmi]# ip route show
default via 192.168.1.1 dev eno16777736 
default via 192.168.220.2 dev eno33554992  proto static  metric 100 
default via 192.168.220.2 dev eno50332216  proto static  metric 101 
169.254.0.0/16 dev eno16777736  scope link  metric 1002 
192.168.1.0/24 dev eno16777736  proto kernel  scope link  src 192.168.1.25 
192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1 
192.168.220.0/24 dev eno33554992  proto kernel  scope link  src 192.168.220.129  metric 100 
192.168.220.0/24 dev eno50332216  proto kernel  scope link  src 192.168.220.130  metric 101 

РЕДАКТИРОВАТЬ -2

Я использую tracerouteкоманду, чтобы получить следующую информацию:

[yangmi@localhost ~]$ traceroute 220.181.57.217
traceroute to 220.181.57.217 (220.181.57.217), 30 hops max, 60 byte packets
 1  192.168.1.25 (192.168.1.25)  3006.884 ms !H  3006.653 ms !H  3006.635 ms !H

РЕДАКТИРОВАТЬ -3

В /etc/sysconfig/network-scripts/, есть только один сетевой интерфейс, а в верхнем, как вы видите, я использую ip aтри:

[yangmi@localhost network-scripts]$ ls
ifcfg-eno16777736  ifdown-ppp       ifup-ib      ifup-Team
ifcfg-lo           ifdown-routes    ifup-ippp    ifup-TeamPort
ifdown             ifdown-sit       ifup-ipv6    ifup-tunnel
ifdown-bnep        ifdown-Team      ifup-isdn    ifup-wireless
ifdown-eth         ifdown-TeamPort  ifup-plip    init.ipv6-global
ifdown-ib          ifdown-tunnel    ifup-plusb   network-functions
ifdown-ippp        ifup             ifup-post    network-functions-ipv6
ifdown-ipv6        ifup-aliases     ifup-ppp
ifdown-isdn        ifup-bnep        ifup-routes
ifdown-post        ifup-eth         ifup-sit
@Allan Нет, это не один и тот же IP-адрес, они находятся в одной беспроводной локальной сети, вы видите, что одна 192.168.1.25(Моя виртуальная машина), а другая 192.168.1.6(Мой Mac).
@klanomath Я обновил свой пост.
Что вы получаете, когда вводите команду в CentOS ip route show?
У вас есть три записи маршрута по умолчанию, две из которых относятся к одному и тому же шлюзу для разных адаптеров. Установите новый шлюз: sudo vi /etc/sysconfig/networkи убедитесь, что единственная строка GATEWAY=192.168.1.1(закомментируйте все остальные строки), затем перезагрузите компьютер. Если сеть работает, это проблема CentOS и ее настройки, а не Apple.
Опубликовать результат для tracert 220.181.57.217внутренней виртуальной машины
@Jamesits Я отредактировал свой пост, см. РЕДАКТИРОВАТЬ-2
@aircraft Используете ли вы NetworkManager на своей виртуальной машине?
@klanomath Да, я использовал, см. мой edit-3, есть странные вещи.
@aircraft Вы настроили три сетевых интерфейса в VMware для своей виртуальной машины. Удалите два, которые показывают «Поделиться с моим Mac», и оставьте только один, подключенный к Wi-Fi. Или отредактируйте файл /etc/sysconfig/network/ifcfg-eno16777736 и измените DEFROUTE на yes и BOOTPROTO на static. Затем либо перезапустите сетевую службу, либо перезагрузитесь. Я не знаю, действительно ли работает последнее (отредактируйте ifcfg...) - хотя должно.
@klanomath работает первый метод. большое спасибо.

Ответы (1)

Ваша виртуальная машина CentOS настроена с тремя сетевыми интерфейсами (Ethernet) в VMware:

В вашей системе Linux они выглядят так:

  • eno16777736 (интерфейс, подключенный к физическому интерфейсу Wi-Fi вашего Mac en0)
  • eno33554992 (интерфейс, подключенный к vmnet8 вашего Mac = «Поделиться с моим Mac»
  • eno50332216 (второй интерфейс, подключенный к vmnet8 вашего Mac = «Поделиться с моим Mac»

vmnet1/vmnet8 — это виртуальные сетевые устройства, созданные VMware Fusion и предоставляющие виртуальным машинам сеть только для хоста и NAT.

Теперь ваш Linux-хост два раза NAT подключен к вашей сети 192.168.1.0/24 через vmnet8 и в то же время находится в самой сети 192.168.1.0/24, что немного чрезмерно и вызывает проблемы с маршрутизацией в вашей среде. .

Поэтому выключите виртуальную машину и либо удалите два интерфейса «Поделиться с моим Mac» в настройках> Съемные устройства виртуальной машины CentOS, либо удалите мостовой интерфейс и один из интерфейсов «Поделиться с моим Mac». Какую процедуру выбрать/путь, зависит от назначения ВМ.