对 ESX/ESXi 上的网络和 TCP/UDP 端口连接问题进行故障排除 (2020669) 您所在的位置:网站首页 怎么查80端口是否打开状态错误 对 ESX/ESXi 上的网络和 TCP/UDP 端口连接问题进行故障排除 (2020669)

对 ESX/ESXi 上的网络和 TCP/UDP 端口连接问题进行故障排除 (2020669)

2024-07-02 07:33| 来源: 网络整理| 查看: 265

免责声明: 本文为 Troubleshooting network and TCP/UDP port connectivity issues on ESX/ESXi (2020669) 的翻译版本。 尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。 有关最新内容,请参见英文版本。

 Purpose

本文提供使用以下故障排除工具对网络和 TCP/UDP 端口连接问题进行故障排除的相关信息:

ping/vmkping,用于对两个服务器之间的网络连接进行故障排除。telnet,用于对 TCP 端口连接进行故障排除。netcat (nc),用于对 TCP 端口连接进行故障排除。openssl,用于对 SSL 端口连接进行故障排除并验证 SSL 证书信息。tcpdump 和 tcpdump-uw,用于收集数据包跟踪以对网络问题进行故障排除。netstat 和 esxcli network,用于查看与主机之间处于活动状态的 TCP/UDP 连接。

注意:telnet 和 nc 工具可帮助您检查 TCP 端口是否处于联机状态,或者是否有防火墙正阻止访问 TCP 端口。

 Resolution

使用 ping 和 vmkping 确认网络连接

要检查远程主机是否处于联机状态,可以在 ESX/ESXi 主机上使用 ping 和 vmkping 命令。这些命令的语法如下: # ping destination-ip

# vmkping destination-ip

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

# vmkping 192.168.48.133

PING 192.168.48.133 (192.168.48.133): 56 data bytes

64 bytes from 192.168.48.133: icmp_seq=0 ttl=64 time=0.978 ms

64 bytes from 192.168.48.133: icmp_seq=1 ttl=64 time=1.009 ms

在此示例输出中,您可以看到 ESX/ESXi 主机能够与 IP 地址为 192.168.48.133 的远程主机进行通信。

注意:在 ESX 主机上,ping 命令通过服务控制台的网络堆栈运行,而 vmkping 命令独立于服务控制台通过 vmkernel 网络堆栈运行。在 ESXi 上,ping 和 vmkping 是相同命令且通过 vmkernel 网络堆栈运行,因为在 ESXi 中没有服务控制台。

有关使用 ping 命令的详细信息,请参见 Testing network connectivity with the ping command (1003486)。

使用 telnet 确认与 TCP 端口的连接

注意:仅在 ESX 主机上提供了 Telnet。对于 ESXi 3.5、4.x 和 5.x,您将需要使用 netcat (nc)。有关详细信息,请参见下面标题为“使用 netcat 确认与 TCP 端口的连接”的部分。 当 ping 命令确认连接时,不一定意味着可以访问远程主机上的所有 TCP 端口。网络防火墙可允许或阻止访问主机上的特定端口。

要检查特定的 TCP 端口是否正在远程主机上运行,可以使用 telnet 命令确认端口是否处于联机状态。

# telnet destination-ip destination-port

尝试与 TCP 端口 80 建立 telnet 连接时,您会看到类似以下内容的输出:

# telnet 192.168.48.133 80

Trying 192.168.48.133...

Connected to 192.168.48.133.

Escape character is '^]'.

在此示例输出中,您可以看到已连接至 IP 地址为 192.168.48.133 的服务器上的端口 80 (http)。

如果为主机上未在运行的服务选择端口号,您会看到类似以下内容的输出:

# telnet 192.168.48.133 81

Trying 192.168.48.133...

telnet: Unable to connect to remote host: Connection timed out

在这种情况下,您可以看到在尝试连接到服务器 192.168.48.133 上的端口 81 时没有响应。

注意:Telnet 是一种使用 TCP 协议运行的应用程序。无法使用 Telnet 测试 UDP 连接。  

使用 netcat 确认与 TCP 端口的连接

在任何版本的 ESXi 中都未提供 telnet 命令,因此必须使用 netcat (nc) 来确认与远程主机上 TCP 端口的连接。nc 命令的语法如下: # nc -z 测试与 TCP 端口 80 的连接时,您将会看到类似以下内容的输出: # nc -z 192.168.48.133 80 Connection to 192.168.48.133 80 port [tcp/http] succeeded!

在示例输出中,您可以看到能够与主机 192.168.48.133 上的 TCP 端口 80 建立连接。

注意:Netcat 包括一个可使用 -uz 标记测试 UDP 连接的选项;但由于 UDP 是一种无连接协议,即使端口已关闭或阻止,也将始终报告为“已成功”。相反,使用 tcpdump 或 tcpdump-uw 测试双向 UDP 连接。

可以使用 nc 命令来检查与远程主机上 TCP 端口范围的连接:

# nc -w 1 -z 192.168.48.133 20-81

Connection to 192.168.48.133 22 port [tcp/ssh] succeeded!

Connection to 192.168.48.133 80 port [tcp/http] succeeded!

-w 选项指定了超时值。

注意:端口扫描是一种非常强大的故障排除工具,但可能会违反公司网络或安全策略。请向您的网络或安全团队确认,以确保他们了解此活动。

使用 openssl 测试 SSL 端口连接和证书信息

要测试 SSL 端口,可以使用 openssl 命令来测试连接以及确认当前的 SSL 信息。在使用 vCenter Server 确认 SSL 证书时,这可能非常有用。openssl 命令的语法如下:

# openssl s_client -connect destination-ip:ssl-port

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

# openssl s_client -connect 192.168.48.133:443

CONNECTED(00000003)

其中,443 是默认的 SSL 端口。

在此示例输出中,您可以看到通过 SSL 端口与远程服务器 192.168.48.133 建立的连接成功。

注意:此输出可能包含大量与 SSL 证书相关的信息,在对证书问题进行故障排除时,这些信息可能非常有用。

使用 tcpdump 和 tcpdump-uw 收集数据包跟踪

ESX 和 ESXi 主机附带了可用于收集网络跟踪的数据包跟踪工具 tcpdump 和 tcpdump-uw。在对网络问题进行故障排除时,网络跟踪是非常有用的。

可以在 ESX 主机上使用 tcpdump 从服务控制台 (vswif) 接口捕获数据包跟踪。 有关使用 tcpdump 的详细信息,请参见 Verifying gateway IP connection using the tcpdump command (1008017)。 要将 vSwitch 配置为监控虚拟机虚拟网卡,请参见 Capturing virtual switch traffic with tcpdump and other utilities (1000880)。  可以在 ESXi 主机上使用 tcpdump-uw 从 vmkernel (vmk) 接口捕获数据包跟踪。 有关使用 tcpdump-uw 的详细信息,请参见 Capturing a network trace in ESXi using Tech Support Mode or ESXi Shell (1031186)。 使用 netstat 和 esxcli network 查看处于活动状态的 TCP/UDP 连接

对网络连接问题进行故障排除时,查看 ESX/ESXi 主机上处于活动状态的所有入站和出站 TCP/UDP 连接可能会很有帮助。ESX 主机可以使用 netstat 命令,而 ESXi 4.1 及更高版本的主机可以使用 esxcli network 来显示 TCP/UDP 连接的列表。这些命令如下:  

ESX 3.5/4.x – # netstat -tnp

ESXi 4.1 – # esxcli network connection list

ESXi 5.0 – # esxcli network ip connection list

ESXi 5.1 – # esxcli network ip connection list

ESXi 5.5 – # esxcli network ip connection list

来自 ESXi 4.1 主机的示例输出如下:  

# esxcli network connection list

Proto Recv-Q Send-Q Local Address Foreign Address State World ID

tcp 0 52 192.168.48.136:22 192.168.48.1:55169 ESTABLISHED 0

tcp 0 0 127.0.0.1:62024 127.0.0.1:5988 TIME_WAIT 0

tcp 0 0 127.0.0.1:57867 127.0.0.1:5988 TIME_WAIT 0

tcp 0 0 127.0.0.1:62196 127.0.0.1:5988 TIME_WAIT 0

tcp 0 0 127.0.0.1:8307 127.0.0.1:52943 ESTABLISHED 5790

tcp 0 0 127.0.0.1:52943 127.0.0.1:8307 ESTABLISHED 5790

tcp 0 0 127.0.0.1:80 127.0.0.1:55629 ESTABLISHED 5785

tcp 0 0 127.0.0.1:55629 127.0.0.1:80 ESTABLISHED 6613

tcp 0 0 127.0.0.1:8307 127.0.0.1:56319 ESTABLISHED 5785

tcp 0 0 127.0.0.1:56319 127.0.0.1:8307 ESTABLISHED 5785

tcp 0 0 127.0.0.1:80 127.0.0.1:62782 ESTABLISHED 5166

tcp 0 0 127.0.0.1:62782 127.0.0.1:80 ESTABLISHED 6613

tcp 0 0 127.0.0.1:5988 127.0.0.1:53808 FIN_WAIT_2 0

tcp 0 0 127.0.0.1:53808 127.0.0.1:5988 CLOSE_WAIT 5166

tcp 0 0 127.0.0.1:8307 127.0.0.1:56963 CLOSE_WAIT 5788

tcp 0 0 127.0.0.1:56963 127.0.0.1:8307 FIN_WAIT_2 5785

tcp 0 0 127.0.0.1:8307 0.0.0.0:0 LISTEN 5031

tcp 0 0 127.0.0.1:8309 0.0.0.0:0 LISTEN 5031

tcp 0 0 127.0.0.1:5988 0.0.0.0:0 LISTEN 0

tcp 0 0 0.0.0.0:5989 0.0.0.0:0 LISTEN 0

tcp 0 0 0.0.0.0:80 0.0.0.0:0 LISTEN 5031

tcp 0 0 0.0.0.0:443 0.0.0.0:0 LISTEN 5031

tcp 0 0 127.0.0.1:12001 0.0.0.0:0 LISTEN 5031

tcp 0 0 127.0.0.1:8889 0.0.0.0:0 LISTEN 5331

tcp 0 0 192.168.48.136:427 0.0.0.0:0 LISTEN 0

tcp 0 0 127.0.0.1:427 0.0.0.0:0 LISTEN 0

tcp 0 0 0.0.0.0:22 0.0.0.0:0 LISTEN 0

tcp 0 0 0.0.0.0:902 0.0.0.0:0 LISTEN 0

tcp 0 0 0.0.0.0:8000 0.0.0.0:0 LISTEN 4801

tcp 0 0 0.0.0.0:8100 0.0.0.0:0 LISTEN 4795

udp 0 0 192.168.48.136:427 0.0.0.0:0 0

udp 0 0 0.0.0.0:427 0.0.0.0:0 0

udp 0 0 192.168.48.136:68 0.0.0.0:0 4693

udp 0 0 0.0.0.0:8200 0.0.0.0:0 4795

udp 0 0 0.0.0.0:8301 0.0.0.0:0 4686

udp 0 0 0.0.0.0:8302 0.0.0.0:0 4686

要检索网络适配器的错误和统计信息,请运行以下命令:

# esxcli network nic stats get -n 

其中  是 ESXi 主机上的网卡名称。

 Related Information

有关使用 esxcli network 命令收集信息以及对网络问题进行故障排除的详细信息,请参见 vSphere Command-Line Interface Concepts and Examples guide 中的“网络故障排除”部分。Troubleshooting network and TCP/UDP port connectivity issues on ESX/ESXi



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有