验证基于 Linux 的客户机操作系统内的网络
search cancel

验证基于 Linux 的客户机操作系统内的网络

book

Article ID: 342968

calendar_today

Updated On:

Products

VMware VMware Cloud Director VMware Desktop Hypervisor VMware vCenter Server VMware vSphere ESXi

Issue/Introduction

本文提供在基于 Linux 的客户机操作系统内验证网络连接的步骤。


Symptoms:

免责声明: 本文为 Verifying the networking within a Linux based guest operating system (2022022) 的翻译版本。 尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。 有关最新内容,请参见英文版本。


  • 虚拟机没有网络连接
  • 虚拟机无法连接到网络


Resolution

如果有网络连接问题,请验证客户机操作系统是否配置正确。
要在 Linux 虚拟机上验证客户机操作系统是否配置正确,请执行以下操作:

  1. 确认客户机操作系统中已加载 VMware Tools。 在 Linux 虚拟机中,引导客户机操作系统,打开命令提示或运行开始 X 并启动图形环境。 然后可以使用以下命令启动 VMware Tools 后台应用程序:

    vmware-toolbox &

    如果该命令不运行,则说明尚未安装 VMware Tools。 需要加载 VMware Tools 才能使网卡正常运行。 有关详细信息,请参见 Installing VMware Tools in a Linux virtual machine using a Compiler (1018414)

  2. 使用 ifconfig 确认虚拟网络适配器存在且已启用。 如果未显示任何内容,说明网卡关闭或不存在。

    注意: 网络接口在激活时会显示出来,但没有链接。 如果显示可用,继续执行步骤 3。

    # ifconfig

    您会看到类似以下内容的输出:

    eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
    inet addr:192.168.48.128 Bcast:192.168.48.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:14 errors:0 dropped:0 overruns:0 frame:0
    TX packets:38 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:2080 (2.0 KiB) TX bytes:7037 (6.8 KiB)

    lo Link encap:Local Loopback
    inet addr:xxx:x.x.x Mask:255.0.0.0
    UP LOOPBACK RUNNING MTU:16436 Metric:1
    RX packets:1453 errors:0 dropped:0 overruns:0 frame:0
    TX packets:1453 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:2294308 (2.1 MiB) TX bytes:2294308 (2.1 MiB)

  3. 使用 ethtool 验证链接状态。 如果失败,表明物理链接存在问题或者双工设置不正确。

    # ethtool eth#

    其中 #ifconfig 中所示的网络适配器编号。

    例如:

    # ethtool eth0

    您会看到类似以下内容的输出:

    Settings for eth0:
    Supported ports: [ TP MII ]
    Supported link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    Supports auto-negotiation: Yes
    Advertised link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    Advertised auto-negotiation: Yes
    Speed: 100Mb/s
    Duplex: Full
    Port: MII
    PHYAD: 32
    Transceiver: internal
    Auto-negotiation: on
    Supports Wake-on: pumbg
    Wake-on: p
    Current message level: 0x00000007 (7)
    Link detected: yes

  4. 如果检测到链接,请对外部源执行 ping 操作,确认能否获得响应。 如果失败,表明存在路由问题,如果使用主机名则可能存在 DNS 问题。 对 IP 地址和主机名执行 Ping 操作以对两者进行验证。

    # ping ip address/hostname

    其中 ip address/hostname 是已知的外部 IP 地址,或已知可在其他虚拟机或工作站上使用的有效的可解析主机名。

    例如:

    # ping 192.168.1.10

    PING 192.168.1.111 (192.168.1.111) from 192.168.1.100 : 56(84) bytes of data.
    From 192.168.1.111 icmp_seq=1 Destination Host Unreachable
    From 192.168.1.111 icmp_seq=2 Destination Host Unreachable
    From 192.168.1.111 icmp_seq=3 Destination Host Unreachable
    From 192.168.1.111 icmp_seq=4 Destination Host Unreachable
    From 192.168.1.111 icmp_seq=5 Destination Host Unreachable
    From 192.168.1.111 icmp_seq=6 Destination Host Unreachable
    --- 192.168.1.111 ping statistics ---
    8 packets transmitted, 0 received, +6 errors, 100% loss, time 7021ms, pipe 3

    • 如果可以通过 IP 但不能通过主机名成功执行 ping,则通过执行以下命令检查 /etc/resolv.conf 文件中的 DNS 名称服务器条目:

      less /etc/resolv.conf

    • 如果没有 ping 回复,则通过执行以下命令对网关执行 ping 并检查网络设置:

      ping <gateway ip>
      less /etc/sysconfig/network

  5. 如果 ping 失败,则使用 telnet 命令测试网络连接,以进一步验证:

    # telnet <ip address> <port>

    例如:

    # telnet 192.168.111 22

    Trying 192.168.1.111
    telnet: connect to address 192.168.1.111: Connection refused


  6. 如果 ping 成功但无法连接到特定端口,则表明端口阻塞或者环境中存在处于活动状态的防火墙。 使用 netstat 命令验证源系统上的端口:

    # netstat -a

    您会看到类似以下内容的输出:

    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address Foreign Address State
    tcp 0 0 localhost:30037 *:* LISTEN
    udp 0 0 *:bootpc *:*

    Active UNIX domain sockets (servers and established)
    Proto RefCnt Flags Type State I-Node Path
    unix 2 [ ACC ] STREAM LISTENING 6135 /tmp/.X11-unix/X0unix 2 [ ACC ] STREAM LISTENING 5140 /var/run/acpid.socket

  7. 如果要侦听和打开全部内容,可以使用 traceroute 命令查看连接失败的位置。 通常情况下,如果可以,最好使用该命令顺着您的路径追溯回环境(如 vCenter Server)中的已知正常连接。

    # traceroute ip address

    例如:

    # traceroute 192.168.1.29

    Tracing route to VCENTERSRV [192.168.1.29]
    over a maximum of 30 hops:

    1 101 ms 100 ms 116 ms example.yourdomain.com [192.168.1.254]
    2 138 ms 152 ms 115 ms core.yourdomain.com [192.169.1.2]
    3 124 ms 134 ms 138 ms VCENTERSRV [192.168.1.29]

    Trace complete.

    如果在任何时候收到错误消息 Destination host unreachable,表明有防火墙或设备阻止您建立网络连接。 记下出现故障的位置,从该位置进行故障排除。


Additional Information

Verifying the networking within a Linux based guest operating system