简介

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还有很多的强大的功能,但是例如文件传输,还是用专门的工具比较好用,比较靠谱。

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

  1. Linux命令备忘录: jobs 显示Linux中的任务列表及任务状态命令

    Linux jobs命令用法详解:显示Linux中的任务列表及任务状态命令 jobs命令用于显示Linux中的任务列表及任务状态,包括后台运行的任务.该命令可以显示任务号及其对应的进程号.其中,任务号 ...

  2. [转帖]Linux中的15个基本‘ls’命令示例

    Linux中的15个基本'ls'命令示例 https://linux.cn/article-5109-1.html ls -lt 和 ls -ltr 来查看文件新旧顺序. list time rese ...

  3. Linux中sudo、su和su -命令的区别

    Linux中sudo.su和su -命令的区别小结 我们知道,在Linux下对很多文件进行修改都需要有root(管理员)权限,比如对/ect/profile等文件的修改.下面这篇文章主要给大家总结介绍 ...

  4. linux中cat、more、less命令区别详解

    linux中cat.more.less命令区别详解 转自:https://blog.csdn.net/xyw_blog/article/details/16861681 众所周知linux中命令cat ...

  5. Linux中解压zip包的命令是什么?

    Linux系统里的zip是一种创建压缩存档文件的常用方式,同时也是一种传统的文件归档文件格式,那么Linux中解压zip包的命令是什么?Linux解压zip包的命令是:unzip,该命令主要用于查看和 ...

  6. linux中用zip压缩文件,详解Linux中zip压缩和unzip解压缩命令及使用详解

    下面给大家介绍下Linux中zip压缩和unzip解压缩命令详解 1.把/home目录下面的mydata目录压缩为mydata.zip zip -r mydata.zip mydata #压缩myda ...

  7. linux中zip文件解压命令,Linux中zip压缩和unzip解压缩命令使用方法

    Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统.在Linux中,我们可以利用命令进行文件压缩,即zip压缩和unzip解压缩,这篇文章主要介绍了详解Linux中zi ...

  8. linux more 乱码,Linux 中vim/more/cat/tail/head 命令查看文件显示乱码

    Linux 中 vim/more/cat/tail/head 命令查看文件显示乱码,乱码原因:Linux默认字符集码为 UTF-8 ,有些其它字库未安装 解决方法: 1)临时解决方法将当前文件强制使用 ...

  9. linux打印系统时间命令行,linux中多种查看系统时间的命令

    原标题:linux中多种查看系统时间的命令 介绍linux中多种查看时间的方法 1.date 这个是最经典的系统查看时间的命令,也是脚本的经常用到定义时间的命 [root@localhost ~]$ ...

  10. linux压缩命令zip详解,Linux中zip压缩和unzip解压缩命令详解

    如果你的英文足够好,那完全可以不靠任何人就精通linux,只要你会用man.Man实际上就是查看指令用法的help,学习任何一种UNIX类的操作系统最重要的就是学会使用man这个辅助命令.接下来是小编 ...

最新文章

  1. #pragma once 是什么意思?
  2. 从封装函数到实现简易版自用jQuery (一)
  3. 学习“Perl基础教程:正则表达式”之摘录
  4. 通过反汇编来理解restrict关键字
  5. angular中的href=unsafe:我该怎么摆脱你的溺爱!!
  6. LeetCode 935. 骑士拨号器(动态规划)
  7. 思科路由器端口映射配置实例
  8. Altium Designer设计PCB总结(干货)
  9. 2022考研资料每日更新(2021.05.07)
  10. C语言入门(一):基础语法
  11. lol大区服务器维护,LOL官宣“扩容升级”服务器,排队时间将大大减少,电一玩家喜大普奔!...
  12. Centos搭建服务
  13. 2023年医院常用医疗设备维修培训计划
  14. android聊天界面对话气泡_聊天会话框气泡(示例代码)
  15. ROS2学习笔记27--实现自定义内存分配器
  16. 事业编招聘:共青团市委所属事业单位2022年公开招聘公告
  17. python-数据思维
  18. 论文阅读之A Challenge Dataset and Effective Models for Aspect-Based Sentiment Analysis(2019)
  19. Java常用记录工具_Java常用的性能测试工具记录
  20. cocos2dx 苹果5分辨率 适配错误

热门文章

  1. 【GIS】PostGIS使用案例
  2. 【树莓派4B深度学习 垃圾分类】Chap.3 树莓派安装opencv并测试视频接口实时视频流的垃圾分类【深度学习 招式篇】
  3. 图像配准(匹配)与变化检测
  4. log4j2输出中文乱码
  5. git版本回退(git reset、git revert、git stash)
  6. ACM 投稿时CCS CONCEPTS 生成及插入
  7. 计算机专业-找工作相关经验
  8. SpringBoot整合redis使用setnx完成分布式锁
  9. 基金从业考试各科目难度特点?
  10. 网页中Html布局分解,因式分解怎么求