(建议收藏)IPv6地址使用ping、telnet命令汇总

说白了,IPv6 的ping和telnet操作在Linux和Windows上并不难,但细节上却存在很多陷阱。

通过扩展,Linux 使用 ping6 和 telnet-6 作为标准。
例如,要从 Windows ping Linux,请添加 -6 和接口序列号(例如 ping-6 fe8 0::2 0c:2 9 ff:fea4 :1 5 09 %2 2 )。
要从 Linux ping Windows,请使用 ping6 -Ieno1 6 7 7 7 7 3 6 要 ping Linux 服务器,请使用 ping6 -IA 指定接口(例如 ping6 -Ieno1 6 7 7 7 7 3 6 fe8 0::2 0c:2 9 ff:feaa:9 a1 b)。
Telnet 操作类似,但需要确保端口可用 - 使用 lsof -i:port number 检查 Linux 端口。
对于 Windows,仅 telnet-6 fe8 0::cd04 :c1 6 b:9 adf:dfe7 :8 0。

一开始我以为Windows ipconfig和Linux ip addr的结果直接对应,后来发现必须手动匹配接口序列号和名称(如eno1 6 7 7 7 7 3 6 )。
我们去年跑的项目就因为这个多次受挫。
还有另一个重要的细节。
Windows ping-6 可能需要先安装ip6 tunnel,否则地址不匹配。

等等,还有一件事,当你在 Linux 上 telnet 时,不要忘记添加 -6 如果直接使用telnet,它会默认查找IPv4 很多人不重视这一点。

建议您先在虚拟机上测试,而不是直接进入生产环境。

(建议收藏)IPv6地址使用ping、telnet命令汇总

嘿,我第一次接触IPv6 是在2 01 8 年,当时公司正在做一个项目。
服务器都是Linux,我必须远程管理它们。
一开始 ping 失败。
鼓捣了半天,发现需要加一个%和接口的序列号。

我记得有一次,在 Windows 系统上,我用地址 fe8 0::cd04 :c1 6 b:9 adf:dfe7 ping 一台 Linux 服务器,但直接 ping 失败。
检查了半天,发现需要加上%号和接口的序列号。
我用ipconfig /all查看,发现有一个序列号为2 2 的接口,于是尝试ping6 fe8 0::cd04 :c1 6 b:9 adf:dfe7 %2 2 嘿嘿,这次成功了!你看,这就是你在 Windows 中需要做的事情。

此后,我在 Linux 服务器之间跳来跳去。
有一次,当我从服务器 A ping 服务器 B 时,地址为 fe8 0::2 0c:2 9 ff:feaa:9 a1 b,我使用 ping6 -I eth0 fe8 0::2 0c:2 9 ff:feaa:9 a1 b。
-I后面是服务器A的接口名eth0,否则ping不通。
这个技巧非常有效。

Telnet 类似。
我曾经将 Telnet 连接到运行 Windows 的 Linux 服务器上的端口。
地址为fe8 0::2 0c:2 9 ff:feaa:9 a1 b,端口为8 0。
直接telnet地址端口不起作用。
您必须添加 % 号和接口的序列号,例如 telnet fe8 0::2 0c:2 9 ff:feaa:9 a1 b%2 2 8 0 才能进行连接。

Linux上的Telnet IPv6 地址,我尝试了telnet6 fe8 0::2 0c:2 9 ff:feaa:9 a1 b 8 0,通常可以工作。
不过,我曾经尝试在Linux中使用Telnet来指定接口,比如telnet6 -I eth0 fe8 0::2 0c:2 9 ff:feaa:9 a1 b 8 0,发现不行。
标准的telnet6 命令没有这个功能。
后来想了想,尽量telnet6 fe8 0::2 0c:2 9 ff:feaa:9 a1 b 8 0 不指定接口,就成功了。
你看,当谈到这个时,有时简单点更好。

在操作之前,我首先需要使用 ip addr 检查 IPv6 地址是否正确,然后使用 lsof -i: 端口号检查目标端口上是否有服务在运行。
网络环境必须支持IPv6 ,否则将无法连接。
我记得有一次我忘记检查端口,只是将 Telnet 连接到它。
结果对方根本就没有开通服务。
花了我很多时间,这绝对是一个骗局。

一般来说,IPv6 ping 和 telnet 地址、Windows 和 Linux 操作都有一些区别,但主要是添加 % 符号和接口的序列号,或者使用 -I 指定接口名称。
但这取决于您的网络环境的配置。
这都是基于我的经验。

ping端口号是多少

说实话,当我第一次接触网络的时候,我对Ping的理解现在和你差不多——只是一个用来检查网络是否连通的命令。
但后来,当网络出现几次拥堵时,我才发现Ping比我想象的有趣得多。

你是对的,Ping是基于ICMP协议的,并没有使用TCP/UDP端口号设置。
有趣的是,Ping 命令的实现在 Windows、Linux 和 Unix 等系统中可能有所不同。
我记得在Linux系统中,使用ping -c 4 www.example.com这样的命令可以精确控制停止前发送的数据包数量; Windows 可能不支持此参数,您必须按 Ctrl+C 手动停止此参数。

说原理,我第一次看资料的时候说Ping是通过发送ICMP Echo Request报文来确定连接,然后等待对方回复ICMP Echo Reply报文。
这让我想起有一次我在工作时,我的电脑突然停止对端口执行 ping 操作。
按照您提到的步骤,我首先 ping 1 2 7 .0.0.1 ,结果是“请求超时”。
当时我就觉得奇怪——是不是本地协议栈有问题?重新启动计算机后,我意识到虚拟机中的网络适配器可能有问题。
这次经历让我明白,Ping的失败有时会产生误导,需要根据具体情况进行分析。

但是话虽如此,Ping 最现实的情况是家庭网络出现问题时。
比如我家宽带突然断了,但手机上的WiFi却一直开着。
此时先ping 1 2 7 .0.0.1 如果没有问题,则 ping 网关 IP。
如果 ping 端口失败,则可能是路由器或网线出现问题。
这时候Ping就比那些复杂的网络诊断工具可靠多了。

我记得的数据是默认的Windows 1 0系统每秒发送4 个Ping包,但是这个参数可以根据系统版本进行调整。
我个人没有做过这方面的实验。
我建议您尝试使用 ping -t 命令。
您可以观察连续的 ping 状态,有时还可以看到特定的丢包情况。

Ping Latency(延迟时间)也是一件好事。
我记得在调试公司的VPN时,我看到ping美国服务器的延迟突然从2 00ms增加到8 00ms。
我当时就知道问题肯定出在中间道路上。
在这一点上,Ping 延迟数据比任何专业的网络分析仪都更有用。

归根结底,Ping就像一个网络听诊器。
虽然简单,但在关键时刻确实能起到很大的作用。
正如我的老师常说的:“网络问题有数以千计,所以在谈论它们之前先先检查一下它们。
”这并不是一个严厉的说法。