Linux之15——nc命令详解

Linux nc命令用于设置路由器。

执行本指令可设置路由器的相关参数。

nc命令的作用

  • 实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口
  • 端口的扫描,nc可以作为client发起TCP或UDP连接
  • 机器之间传输文件
  • 机器之间网络测速

nc命令的安装

[root@chenshifengdeLinuxServer ~] yum -y install nmap-ncat

语法

nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]

参数说明

  • -g<网关> 设置路由器跃程通信网关,最多可设置8个。
  • -G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
  • -h 在线帮助。
  • -i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
  • -l 使用监听模式,管控传入的资料。通常 这样代表着为一个 服务等待客户端来链接指定的端口。
  • -n 直接使用IP地址,而不通过域名服务器。
  • -o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
  • -p<通信端口> 设置本地主机使用的通信端口。有可能会关闭
  • -k<通信端口>强制 nc 待命链接.当客户端从服务端断开连接后,过一段时间服务端也会停止监听。 但通过选项 -k 我们可以强制服务器保持连接并继续监听端口。
  • -r 乱数指定本地与远端主机的通信端口。
  • -s<来源位址> 设置本地主机送出数据包的IP地址。
  • -u 使用UDP传输协议。
  • -v 显示指令执行过程。
  • -w<超时秒数> 设置等待连线的时间。
  • -z 使用0输入/输出模式,只在扫描通信端口时使用。

实例

TCP端口扫描

# nc -v -z -w2 192.168.0.3 1-100 
192.168.0.3: inverse host lookup failed: Unknown host
(UNKNOWN) [192.168.0.3] 80 (http) open
(UNKNOWN) [192.168.0.3] 23 (telnet) open
(UNKNOWN) [192.168.0.3] 22 (ssh) open

扫描192.168.0.3 的端口 范围是 1-100

扫描UDP端口

# nc -u -z -w2 192.168.0.1 1-1000 //扫描192.168.0.3 的端口 范围是 1-1000
扫描指定端口
# nc -nvv 192.168.0.1 80 //扫描 80端口
(UNKNOWN) [192.168.0.1] 80 (?) open
y  //用户输入

 常用示例

复制代码
[root@chenshifengdeLinuxServer ~] nc -l 9999                        # 开启一个本地9999的TCP协议端口,由客户端主动发起连接,一旦连接必须由服务端发起关闭
[root@chenshifengdeLinuxServer ~] nc -vw 2 192.168.21.248 11111     # 通过nc去访问192.168.21.248主机的11111端口,确认是否存活;可不加参数
[root@chenshifengdeLinuxServer ~] nc -ul 9999                       # 开启一个本地9999的UDP协议端口,客户端不需要由服务端主动发起关闭
[root@chenshifengdeLinuxServer ~] nc 192.168.21.248 9999 < test     # 通过192.168.21.248的9999TCP端口发送数据文件
[root@chenshifengdeLinuxServer ~] nc -l 9999 > zabbix.file          # 开启一个本地9999的TCP端口,用来接收文件内容

测试网速

A机器操作如下:
[root@chenshifengdeLinuxServer ~] yum install -y dstat      # A机器安装dstat命令
[root@chenshifengdeLinuxServer ~] nc -l 9999 > /dev/null

B机器开启数据传输

nc 10.0.1.161 9999 </dev/zero

A机器进行网络监控

[root@chenshifengdeLinuxServer ~] dstat

复制代码

例1:代理(浏览器输入120.0.0.1,返回百度首页)

mkfifo /tmp/fifo

nc -lk 8080 < /tmp/fifo | sed -l -e 's/^Host.*/Host:www.baidu.com/' | tee -a /tmp/req.log | nc www.baidu.com 80 | tee -a /tmp/res > /tmp/fifo

原文地址:https://www.cnblogs.com/R-bear/p/15027273.html