linux中测端口通讯nc,linux命令之 - nc 测试端口的连通

简介

2155873fec725e9706415366434cbb58.png

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

命令帮助

nc -h

GNU 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工具加密数据

服务端:

mcrypt –flush –bare -F -q -m ecb < file.txt | nc -l -p 9000

客户端

nc 192.168.1.100 9000 | mcrypt –flush –bare -F -q -d -m ecb > file.txt

总结

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值