Wie kann ich meine VM mit dem Netzwerk verbinden lassen?

Auf meinem Mac verwende ich VMware Fusion, die eine VM erstellt hat, die ifconfig meines Mac sieht wie folgt aus:

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

Und in meiner VM ip aist das so:

[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

siehst du die eno16777736ip ist 192.168.1.25/24, ist das selbe wlan mit meiner mac en0schnittstelle.

Aber in der VM kann ich pingdie baidu's ip nicht:

[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

Wie kann ich die VM mit dem Netzwerk verbinden?


Das System meines Hosts ist: macOS Sierra 10.12.2 Das
System meiner VM ist: CentOS 7.2


BEARBEITEN

Ich verwende die 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 

BEARBEITEN -2

Ich verwende den tracerouteBefehl, um die folgenden Informationen zu erhalten:

[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

BEARBEITEN -3

In der /etc/sysconfig/network-scripts/gibt es nur eine Netzwerkschnittstelle, aber oben sehen Sie, dass ich ip adrei verwende:

[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 Nein, sie haben nicht dieselbe IP, sie befinden sich in demselben WLAN, Sie sehen, dass eine 192.168.1.25(Meine VM) ist, die andere 192.168.1.6(Mein Mac).
@klanomath Ich habe meinen Beitrag aktualisiert.
Was erhalten Sie, wenn Sie den Befehl in CentOS ausgeben ip route show?
Sie haben drei Standardrouteneinträge, von denen zwei für dasselbe Gateway für verschiedene Adapter gelten. Legen Sie ein neues Gateway fest: sudo vi /etc/sysconfig/networkund stellen Sie sicher, dass die einzige Zeile GATEWAY=192.168.1.1(kommentieren Sie alle anderen Zeilen aus) ist, und starten Sie dann neu. Wenn das Netzwerk funktioniert, ist dies ein CentOS-Problem und dessen Konfiguration, kein Apple-Problem.
Post-Ergebnis für tracert 220.181.57.217Inside vm
@Jamesits Ich habe meinen Beitrag bearbeitet, siehe EDIT-2
@aircraft Verwenden Sie den NetworkManager in Ihrer VM?
@klanomath Ja, ich habe es verwendet, siehe mein Edit-3, da sind seltsame Dinge.
@aircraft Sie haben drei Netzwerkschnittstellen in VMware für Ihre VM konfiguriert. Entfernen Sie die beiden, die "Mit meinem Mac teilen" anzeigen, und lassen Sie nur den einen mit Wi-Fi überbrückt. Oder bearbeiten Sie die Datei /etc/sysconfig/network/ifcfg-eno16777736 und ändern Sie DEFROUTE auf yes und BOOTPROTO auf static. Starten Sie dann entweder den Netzwerkdienst neu oder starten Sie neu. Ich weiß nicht, ob letzteres (edit ifcfg ...) wirklich funktioniert - es sollte aber.
@klanomath die erste Methode funktioniert. Vielen Dank.

Antworten (1)

Ihre CentOS-VM ist mit drei Netzwerkschnittstellen (Ethernet) in VMware konfiguriert:

In Ihrem Linux-System erscheinen sie als:

  • eno16777736 (eine Schnittstelle, die mit der physischen Wi-Fi-Schnittstelle Ihres Macs en0 verbunden ist)
  • eno33554992 (eine mit vmnet8 Ihres Macs verbundene Schnittstelle = „Mit meinem Mac teilen“
  • eno50332216 (eine zweite Schnittstelle, die mit vmnet8 Ihres Macs verbunden ist = "Mit meinem Mac teilen"

vmnet1/vmnet8 sind virtuelle Netzwerkgeräte, die von VMware Fusion erstellt wurden und ein Host-Only- und ein NAT-Netzwerk für VMs bereitstellen.

Jetzt wird Ihr Linux-Host zweimal über vmnet8 mit Ihrem 192.168.1.0/24-Netzwerk per NAT verbunden und befindet sich gleichzeitig im 192.168.1.0/24-Netzwerk selbst - was etwas übertrieben ist und Routing-Probleme in Ihrer Umgebung verursacht .

Fahren Sie also die VM herunter und entfernen Sie entweder die beiden „Share with my Mac“-Schnittstellen in den Einstellungen > Wechselmedien der CentOS-VM oder entfernen Sie die Bridged-Schnittstelle und eine der „Share with my Mac“-Schnittstellen. Welches Verfahren zu wählen/welcher Pfad zu gehen ist, hängt vom Zweck der VM ab.