重庆小潘seo博客

当前位置:首页 > 重庆网络营销 > 小潘杂谈 >

小潘杂谈

linux - netcat网络工具-nc

时间:2020-09-21 19:00:07 作者:重庆seo小潘 来源:
简介 nc是netcat工具的命令,是一个很好用的网络工具。比如,可以用来端口扫描,文件传输等网络功能。 命令帮助 nc -hGNU netcat 0.7.1, a rewrite of the famous networking tool.Basic usages:connect to somewhere: nc [options] hostname port [port] ..

简介

nc是netcat工具的命令,是一个很好用的网络工具。比如,可以用来端口扫描,文件传输等网络功能。

命令帮助

nc -hGNU netcat 0.7.1, a rewrite of the famous networking tool.Basic usages:connect to somewhere: nc [options] hostname port [port] ...listen for inbound: nc -l -p port [options] [hostname] [port] ...tunnel to somewhere: nc -L hostname:port -p port [options]Mandatory arguments to long options are mandatory for short options too.Options:-c, --close close connection on EOF from stdin-e, --exec=PROGRAM program to exec after connect-g, --gateway=LIST source-routing hop point[s], up to 8-G, --pointer=NUM source-routing pointer: 4, 8, 12, ...-h, --help display this help and exit-i, --interval=SECS delay interval for lines sent, ports scanned-l, --listen listen mode, for inbound connects-L, --tunnel=ADDRESS:PORT forward local port to remote address-n, --dont-resolve numeric-only IP addresses, no DNS-o, --output=FILE output hexdump traffic to FILE (implies -x)-p, --local-port=NUM local port number-r, --randomize randomize local and remote ports-s, --source=ADDRESS local source address (ip or hostname)-t, --tcp TCP mode (default)-T, --telnet answer using TELNET negotiation-u, --udp UDP mode-v, --verbose verbose (use twice to be more verbose)-V, --version output version information and exit-x, --hexdump hexdump incoming and outgoing traffic-w, --wait=SECS timeout for connects and final net reads-z, --zero zero-I/O mode (used for scanning)Remote port number can also be specified as range. Example: '1-1024'

端口扫描

我们经常需要扫描端口是否开放,来判断访问策略是否生效,或者服务是否正常。

nc -z -w -v -n -t 192.168.1.100 1-2000

-z 表示连接立即关闭,不进行数据交换。

-v 表示输出检测结果,-vv表示更详细的信息

-w 表示执行超时时间,如果不指定就是tcp超时的时间

-n 表示不反向解析IP地址的域名

-t 表示TCP检测,默认就是TCP检测;如果需要检测UDP,需要制定-u的参数

文本传输

我们可以通过nc命令监听一个端口,来接受客户端的会话连接。

nc -l -t -p 9000

-l 表示启动监听

-p 表示监听端口,如果不指定会监听一个随机端口

-t 表示TCP检测,默认就是TCP检测;如果需要检测UDP,需要制定-u的参数

客户端连接

nc 127.0.0.1 9000

这时候客户端输入文本信息回车就可以发送到服务端。这个通讯是单线的,一旦有人连接,第二个会话就连接不上。

文件传输

服务端传输

nc -l -p 9000 < a.txt

客户端接收

nc 192.168.1.100 > a.txt

如果是大文件可能传输比较久,可以通过md5对比来查看文件是否传输完成

同理,也可以是客户端传输到服务端,只要重定向符号换一下即可。

目录传输

目录需要先经过打包成数据流才能进行传输

服务端:

tar -cvf - ddd/ | nc -l -p 9000

客户端:

nc -n 192.168.1.100 9000 | tar -xvf -

也可以进行压缩以后再传输

服务端:

tar -cvf - ddd/ | bzip2 -z | nc -l -p 9000

客户端:

nc -n 192.168.1.100 9000 | bzip2 -d | tar -xvf -加密传输

使用mcrypt工具加密数据

服务端:

mcryptflushbare -F -q -m ecb < file.txt | nc -l -p 9000

客户端

nc 192.168.1.100 9000 | mcryptflushbare -F -q -d -m ecb > file.txt

总结

nc还有很多的强大的功能,但是例如文件传输,还是用专门的工具比较好用,比较靠谱。