nc 命令

发布时间:2026/6/26 15:17:22

nc 命令 nc即netcat 命令这个工具在排查网络故障时非常有用功能非常强大因而被业绩称为网络界的“瑞士军刀”请读者务必掌握。默认系统是没有这个命令的你需要安装一下安装方法yum install ncnc命令常见的用法是模拟一个服务器程序被其他客户端连接或者模拟一个客户端连接其他服务器连接之后就可以进行数据收发。我们来逐一介绍一下模拟一个服务器程序使用-l选项单词listen 的第一个字母在某个 ip 地址和端口号上开启一个侦听服务以便让其他客户端连接。通常为了显示更详细的信息会带上-v选项。示例如下[rootiZ238vnojlyZ ~]# nc -v -l 127.0.0.1 6000 Ncat: Version 6.40 ( http://nmap.org/ncat ) Ncat: Listening on 127.0.0.1:6000这样就在6000端口开启了一个侦听服务器我们可以通过127.0.0.1:6000去连接上去如果你的机器可以被外网访问你可以使用0.0.0.0这样的侦听地址示例[rootiZ238vnojlyZ ~]# nc -v -l 0.0.0.0 6000 Ncat: Version 6.40 ( http://nmap.org/ncat ) Ncat: Listening on 0.0.0.0:6000模拟一个客户端程序用nc命令模拟一个客户端程序时我们不需要使用-l选项直接写上 ip 地址或域名nc命令可以自动解析域名和端口号即可示例如下## 连接百度 web 服务器 [rootiZ238vnojlyZ ~]# nc -v www.baidu.com 80 Ncat: Version 6.40 ( http://nmap.org/ncat ) Ncat: Connected to 115.239.211.112:80.输出提示我们成功连接上百度 Web 服务器。我们知道客户端连接服务器一般都是操作系统随机分配一个可用的端口号连接到服务器上去使用nc命令作为客户端时可以使用-p选项指定使用哪个端口号连接服务器例如我们希望通过本地 5555 端口连接百度的 Web 服务器可以这么输入[rootiZ238vnojlyZ ~]# nc -v -p 5555 www.baidu.com 80 Ncat: Version 6.40 ( http://nmap.org/ncat ) Ncat: Connected to 115.239.211.112:80.再开一个 shell 窗口我们使用上文中介绍的lsof命令验证一下是否确实通过5555端口连接上了百度 Web 服务器。[rootiZ238vnojlyZ ~]# lsof -Pni | grep nc nc 32610 root 3u IPv4 113369437 0t0 TCP 120.55.94.78:5555-115.239.211.112:80 (ESTABLISHED)结果确实如我们所期望的。当然当使用nc命令与对端建立连接后我们可以发送消息。下面通过一个具体的例子来演示一下这个过程使用nc -v -l 0.0.0.0 6000模拟一个侦听服务再新建一个 shell 窗口利用nc -v 127.0.0.1 6000模拟一个客户端程序连接刚才的服务器。此时在客户端和服务器就可以相互发消息了。我们可以达到一个简化版的 IM 软件聊天效果客户端效果服务器端效果如果你在使用 nc 命令发消息时不小心输入错误可以使用Ctrl Backspace键删除。nc命令默认会将\n作为每条消息的结束标志如果你指定了-C选项将会使用\r\n作为消息结束标志。nc命令不仅可以发消息同时也能发文件。我们也来演示一下需要注意的是是接收文件的一方是服务器端发送文件的一方是客户端。服务器端命令nc -l ip地址 端口号 接收的文件名客户端命令nc ip地址 端口号 发送的文件名服务器端效果客户端效果注意这里客户端发送一个文件叫index.html服务器端以文件名xxx.html来保存也就是说服务器端保存接收的文件名时不一定要使用客户端发送的文件名。根据上面的介绍当我们需要调试我们自己的服务器或者客户端程序时又不想自己开发相应的对端我们就可以使用nc命令去模拟。当然nc命令非常强大其功能远非本节介绍的这些读者如果有兴趣可以去nc的 man 手册上获取更多的信息。

相关新闻