Netcat或nc是一个命令行操作程序,它使用TCP或UDP合同书依据移动数据读取和写入数据信息。
这也是网络和系统管理员中最强工具之一,称之为软件平台的瑞士刀。
Netcat是组件化的,适用于Linux,macOS,Windows和BSD。您可以使用Netcat调整和运行数据联接,扫描启动的端口,传输数据,作为地区代理这种。
Netcat软件包已预安装在macOS和最流行Linux发行版,如Ubuntu,Debian,CentOS,Fedora等。
Netcat命令的一个重要语法形式是nc [options] host port
。host
可以是u远程主机的域名,主机名或是IP地址。port
是端口。
在Ubuntu,您可以使用netcat
或nc
。它们都是Netcat的openBSD版本的符号链接。
默认情况下,Netcat将尝试建立与特殊服务器TCP连接。如果要建立UDP连接,挑选-u
选项。
nc host port
nc -u host port
端口扫描
在大多数情况下,对于繁琐的端口扫描,Nmap会比Netcat比较强的一种手段。
但扫描端口全是Netcat常见的适用范围之一。你们可以扫描独立端口或端口范围。比如要扫描主要包括20-80的端口,请运行命令nc -z -v 10.10.8.8 20-80
。
nc
命令的-z
选项将无法不往消息推送一切数据信息,而仅扫描开放性的端口,如果你需要很多相信的信息请再加上-v
选项。
倘若只想要打印出扩大开放端口的行,则能用grep命令过滤结果,在每一行导出记录中succeeded说明可以获得成功连接的端口。
nc命令默认仅扫描TCP端口,假如你务必扫描UDP端口,只需将-u
选项导到nc命令。
nc -z -v 10.10.8.8 20-80
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
nc -z -v -u 10.10.8.8 20-80
nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused
nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused
Connection to 10.10.8.8 22 port [tcp/ssh] succeeded!
nc: connect to 10.10.8.8 port 23 (tcp) failed: Connection refused
...
nc: connect to 10.10.8.8 port 79 (tcp) failed: Connection refused
Connection to 10.10.8.8 80 port [tcp/http] succeeded!
您也可以运用Netcat搜索客户端程序及其版本信息。例如,如果你在默认设置SSH端口22上向服务器发送EXIT命令,导出来将包括SSH提供服务版本升级。
echo "EXIT" | nc 10.10.8.8 22
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4
Protocol mismatch.
Netcat 传送文件
依据创建最基本app客户端/网站服务器数字模型,能用Netcat把它们从一台主机传输到另一台主机。
运用-l
选项运行nc命令接受的主机监控特殊端口,随后在另一台远程主机建立TCP连接并且此网络服务器传送文件。
请在协调器的计算机,运行命令nc -l 5555 > file_name
,这将开启端口5555和接受来自远程计算机的信息,然后将接收的数据信息跳转文本文档file_name
。
需要在消息推送端计算机建立与协调器电子计算机TCP连接,请运行命令nc receiving.host.com 5555 < file_name
。
当2个计算机之间的连接建立时,命令很有可能慢慢消息推送file_name的文件信息到协调器的主机。
nc -l 5555 > file_name #run on receivce of computer
nc receiving.host.com 5555 < file_name #run on send of computer
Netcat 消息推送文件名称
如果要递归算法消息推送文件名称数据信息,能用tar命令在发送端计算机创建归档文件,随后在协调器的计算机获得存档文件。
在协调器的计算机运行命令nc -l 5555 | tar xzvf -
设置Netcat监控端口5555并读取数据。
然后将接收到的数据信息通过管道传递到tar命令,tar命令的xzvf
选项说明获得存档.tar.gz
文本文档。
在发送端计算机运行命令tar czvf - /path/to/dir | nc receiving.host.com 5555
,建立与协调器计算机联接,接着消息推送由tar
命令创建存档文件数据信息。
我们可以在两侧观察传输进度。完成后,键入CTRL C
关闭连接。
nc -l 5555 | tar xzvf - #run on receivce of computer
tar czvf - /path/to/dir | nc receiving.host.com 5555 #run on send of computer
创建闲谈网站服务器
在两个或多个网络服务器正中间创建在线聊天的过程与传输文件时一样。
在第一台网络服务器运行命令nc -l 5555
设置Netcat监控5555端口,在第二台服务器上,运行命令nc first.host.com 5555
输送到第一台服务器5555端口。
现如今,假如你键入一条消息并依据ENTER
,这将会此外展现在两个服务器上。要关闭连接,输入您CTRL C
。
nc -l 5555 #run on receivce of computer
nc first.host.com 5555 #run on send of computer
Netcat HTTP规定
尽管有许多更好的HTTP规定常用工具,例如curl,您也可以运用Netcat将各种请求发送到远程计算机。
例如,能从OpenBSD网站地址搜索Netcat手册页,请运行以下命令。命令在终端很有可能打印出HTTP header和HTML编码的具体回复。
printf "GET /nc.1 HTTP/1.1rnHost: man.openbsd.orgrnrn" | nc man.openbsd.org 80
结论
在教学中,您学习怎么运用Netcat命令建立和测试TCP和UDP连接。假如你有任何疑问或建议,请在下面。
