命令行探测服务器某一端口是否打开

缘起

检测远程服务器的某一个端口(尤其是 tcp )是否已经被打开,这貌似是 SA 们排错时遇到的一个常见场景,

方案

telnet

最早,我常用的方案是使用 telnet。估计那时也只有 telnet 可用:)

yum -y install telnet;
telnet baidu.com 80;

上面的命令正确连上以后会有输出:

Trying 180.149.132.47...
Connected to baidu.com.
Escape character is '^]'.

nc

后来,发现还有 nc,网络工具中的瑞士军刀:)

yum -y install nc;
nc -vz baidu.com 80;

成功后会提示:

Connection to baidu.com 80 port [tcp/http] succeeded!

仔细看上面的这句输出提示,看出来什么名堂没有?对啦:“tcp/http”!这么说 nc 还能检测 udp 端口不成?man 了一下,还真可以:

nc -vz -u 10.0.0.1 53

成功以后系统提示:

Connection to 10.0.0.1 53 port [udp/domain] succeeded!

bash

再后来,中老年如我,终于返璞归真,发现其实 bash 就直接支持这种检测。OK,废话少说,直接看命令:

man bash

找到这几句提示:

          /dev/tcp/host/port
                 If host is a valid hostname or Internet address, and port is an integer port number or service name, bash attempts to open a TCP  connection to the corresponding socket.
          /dev/udp/host/port
                 If  host is a valid hostname or Internet address, and port is an integer port number or service name, bash attempts to open a UDP connection to the corresponding socket.

故而测试命令很好玩儿:

>/dev/tcp/baidu.co/80;echo $?;

当成功连上 baidu.com 的 tcp 80 端口的时候,返回 0。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者...
    保川阅读 11,178评论 1 13
  • NAME dnsmasq - A lightweight DHCP and caching DNS server....
    ximitc阅读 7,956评论 0 0
  • 照片、衣裳、诱惑的肉体, 心跳加速、呼吸急促, 热汗、肌肤、迷幻的烛火, 摩擦不断,身体抽搐, 性感的尤物、香烟、...
    地球最后的夜晚阅读 3,106评论 -1 1
  • 内容提要: MJExtension是一套字典和模型之间互相转换的超轻量级框架。字典转model是最典型的一个运用场...
    iOS俱哥阅读 4,357评论 1 1
  • 昨天晚上和老谭一起回家 好开心啊好开心 车急刹 有一个小妹妹抓住了我的胳膊 谢谢我粗壮的胳膊给了你稳定的力量 中国...
    只是找一个地方码子_阅读 1,594评论 0 0

友情链接更多精彩内容