zoukankan      html  css  js  c++  java
  • linux 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
  • 相关阅读:
    第12周作业
    一张表格秒懂MES制造执行系统与ERP的区别关系
    spring boot:用dynamic-datasource-spring-boot-starter配置druid多数据源(spring boot 2.3.3)
    spring boot:使mybatis访问多个druid数据源(spring boot 2.3.2)
    linux(centos8):安装分布式事务服务seata(file单机模式,seata 1.3.0/centos 8.2)
    spring boot:单文件上传/多文件上传/表单中多个文件域上传(spring boot 2.3.2)
    spring boot: 用thymeleaf嵌套循环展示多层数据(spring boot 2.3.2)
    cmd 命令设置环境变量
    AtCoder Grand Contest 047
    AtCoder Grand Contest 032
  • 原文地址:https://www.cnblogs.com/feng0815/p/14021783.html
Copyright © 2011-2022 走看看