nc命令详解

2023-11-27 16:00:09 浏览数 (1)

nc(netcat)是一个简单、可靠的网络工具,可以用于实现任意TCP/UDP端口的侦听、端口扫描、机器之间传输文件等任务。

常用参数说明:

  • -h:打印帮助。
  • -k:强制nc在其当前连接完成后继续侦听另一个连接。-k 必须与 -l 一起使用。
  • -l:用于指定nc将处于侦听模式,即作为server侦听指定端口。
  • -n:不对任何指定的地址、主机名或端口进行任何DNS或服务查找。
  • -p:指定本机应该使用的源端口。
  • -s:指定发送数据的源IP地址,适用于多网卡机。
  • -u:指定nc使用UDP协议,默认为TCP。
  • -v:输出交互或出错信息,新手调试时尤为有用。
  • -w:超时秒数,后面跟正整数。
  • -z:表示zero,表示扫描时不发送任何数据。

nc命令的用法示例:

1. 测试远程主机指定tcp/udp端口是否开放

代码语言:javascript复制
nc -zv 8.8.8.8 53
nc -uzv 8.8.8.8 53

2. 打开一个到 10.0.10.9 的52端口的TCP连接,使用31337端口作为源端口,超时时间为5秒:

代码语言:javascript复制
nc -p 31337 -w 5 10.0.10.9 52

3. 打开一个到 10.0.10.9 52端口的TCP连接,使用10.1.2.3作为连接本地端的IP地址:

代码语言:javascript复制
nc -s 10.1.2.3 10.0.10.9 52

4. 创建并监听一个UNIX流套接字:

代码语言:javascript复制
nc -lU /var/tmp/usocket

5. 传输文件:

代码语言:javascript复制
#server:
nc -lp 5050 > tfile

#client
nc -nv 192.168.56.2 5050 < tfile
Connection to 192.168.56.2 port 5050 [tcp/*] succeeded!

测试截图如下

6. 扫描指定范围的端口(扫TCP端口的速度很慢):

代码语言:javascript复制
nc -zv 192.168.1.123 20-1024
nc -uzv 192.168.1.123 20-1024

PS:

nc和ncat命令在Linux操作系统中是不一样的。首先,nc是"netcat"的缩写,而ncat则是"netcat (from Nmap)"的缩写,其中nc来自于netcat原始版本,而ncat则来自于nmap项目。其次,ncat比nc多了一些特性,例如SSL/TLS加密、通过HTTP代理进行转发等等,因此ncat的功能更为强大。最后,需要注意的是,在某些Linux发行版中,nc已经被替换为了ncat,因此在使用nc命令时需要注意查看命令的具体帮助信息。

参考文档:

  • https://manpages.org/nc

0 人点赞