ping、telnet、tcping命令比较
问题起源
对接外部系统的接口,外部系统提供了接口地址,其中包含ip与端口号。测试端口是否可用的时候用了telnet,发现端口不通。但是调用接口可以调的通。
后面用tcping发现能通。之前测试连通性telnet和tcping都用过,以为这两个应该是同一个结果,觉得奇怪。
原因
telnet一般用于远程登录,也可用于端口检测,因为有安全风险,有些服务器会禁用。所以该端口实际上可用,但是telnet被拒绝了。
tcping,专门用来测试某个IP地址上特定TCP端口的连通性和响应速度,被禁用的少,本次目标主机没禁用。
总结一下ping、tcping、telnet
网络层级
1、ping
ping 命令只能检查 IP 的连通性或网络连接速度,无法具体到某个端口。
ping 命令使用 ICMP 协议,跟 IP 协议属于同一层次(网络层)。ping 命令在每次发数据包后都会等对方返回数据包。可以禁止 ICMP 协议,此时对方收到消息后不会回复。
端口是传输层 TCP/UDP 协议的概念,比如常用的 web 端口指的是 TCP 的 80 端口。使用网络层的 ping 命令是无法指定端口的。
2、telnet
telnet 命令使用 TCP 协议,一般用于远程登录(明文传输,不安全,已经被 SSH 替代了),也可用于端口检测。
红框中是telnet端口不通
3、 tcping 命令
tcping 命令使用 TCP 协议(传输层),也可以看 ping 值,即使源地址禁 ping 也可以通过 tcping 来监控服务器网络状态。详细用法可以 参考这里。
tcping端口通
回答之前的疑惑:为什么ping不能加端口号
端口是传输层 TCP/UDP 协议的概念,比如常用的 web 端口指的是 TCP 的 80 端口。使用网络层的 ping 命令是无法指定端口的。
计算机网络好像学过,不过毕业之后已经还给老师了。。。