• nc(瑞士军刀)


    网络工具界的“瑞士军刀” nc(netcat),它短小精悍,是网络调试利器

    nc命令(netcat)端口侦听、端口连接、端口测试、端口扫描,功能大致跟ncat类似,但有端口扫描功能。

    1、查看端口是否被占用(ncat)

    # nc -l 80
    Ncat: bind to :::80: Address already in use. QUITTING.
    

    2、端口扫描

    例如需要扫描某个机器上21-30哪些端口是开放的:

    报错

    # nc  -n 127.0.0.1 -z 1230-1234 -v
    Ncat: Version 7.50 ( https://nmap.org/ncat )
    Ncat: Connection refused.
    

    在CentOS7.X中使用yum install -y nc安装的并不是netcat而是nmap-ncat,并且通过软链接的方式链接为nc命令,但实际是ncat命令,在CentOS6.4中使用yum install -y nc安装的是nc命令(netcat)

    # ll `which nc`
    lrwxrwxrwx 1 root root 22 9月  27 11:21 /usr/bin/nc -> /etc/alternatives/nmap
    
    # ll /etc/alternatives/nmap
    lrwxrwxrwx 1 root root 13 9月  27 11:21 /etc/alternatives/nmap -> /usr/bin/ncat
    
    # ll /usr/bin/ncat
    -rwxr-xr-x 1 root root 380184 8月   9 2019 /usr/bin/ncat
    

    源码安装netcat

    wget http://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.gz/download -O netcat-0.7.1.tar.gz
    tar -zxvf netcat-0.7.1.tar.gz
    cd netcat-0.7.1
    ./configure
    make
    make install
    
    # cp /root/netcat-0.7.1/src/netcat   /usr/local/bin/
    为netcat做一个软连接(先删除之前的)
    # ln -s netcat  nc
    

    扫描本机上22-90哪些端口是开放的

    # nc -n 127.0.0.1 -z 22-90 -v
    127.0.0.1 22 (ssh) open
    127.0.0.1 25 (smtp) open
    127.0.0.1 80 (http) open
    

    -n说明直接使用ip地址,而不使用域名,-z指定端口范围,-v输出详细信息

    3、TCP/UDP连接测试

    # nc -lk 1234   (监听1234端口,good boy手敲)
    good boy
    

    新建一个窗口连接看效果

    # nc 127.0.0.1 1234
    good boy
    
    或者
    # telnet 192.168.40.132 1234
    Trying 192.168.40.132...
    Connected to 192.168.40.132.
    Escape character is '^]'.
    good boy
    

    连接本地地址1234端口,这个过程中就可以抓包,分析TCP的三次握手了。

    除此之外,你还可以在建立好的连接之间发送消息(简单的聊天功能),让你分析更多!

    默认情况,它创建的是TCP连接,而使用-u(UDP)参数可以测试UDP连通性。

    $ nc -v -u 182.3.226.35 80
    Connection to 182.3.226.35 80 port [udp/http] succeeded!
    

    除此之外,还有很多参数用于调试,例如:

    • -b 允许广播消息

    • -D 开启socket调试模式

    • -d 禁止从标准输入读取内容

    • -k 客户端退出后,保持连接

    • -v 显示详细信息

    4、HTTP连接测试

    连接后,输入HEAD / HTTP/1.1或HEAD / HTTP/1.0,然后输入两个回车,可查看web服务器相关信息。

    nc  www.baidu.com 80
    HEAD / HTTP/1.1
    
    HTTP/1.1 302 Found
    Connection: Keep-Alive
    Content-Length: 17931
    Content-Type: text/html
    Date: Sun, 23 Jun 2019 13:52:12 GMT
    Etag: "54d9748e-460b"
    Server: bfe/1.0.8.18
    

    5、数据传输

    还是利用前面的连接,借助重定向符可以进行文件传输,例如服务端监听,并把内容输出到out.txt:

    nc -l 1234 > out.txt
    

     而客户端连接:

     nc 127.0.0.1 1234 < in.txt    in.txt是已有的文件
    

     这样客户端in.txt的内容,就会传输到out.txt

    5、网络测试

    测试两个主机间的网络速度(当然你可以利用iperf工具来完成这个工作),nc也是可以帮忙的:

    #服务端监听:
    $ nc -vl 1234 >/dev/null
    

    其中重定向到/dev/null,表示将数据丢弃。

    然后在另一台主机上执行:

    $ dd if=/dev/zero bs=1M count=10 |nc -vn 127.0.0.1 1234
    Connection to 127.0.0.1 1234 port [tcp/*] succeeded!
    10+0 records in
    10+0 records out
    10485760 bytes (10 MB, 10 MiB) copied, 0.0333675 s, 314 MB/s
    

    dd拷贝数据,这里从/dev/zero拷贝数据0,且一次1M,拷贝10次,最后通过nc命令发送到服务端。结束后,就可以看到统计信息了。

     https://man.linuxde.net/nc_netcat   Linux命令大全

  • 相关阅读:
    hibernate 表配置文件如何设置表字段的默认值
    dtree的使用和扩展
    JS获取项目根目录
    前端 本地缓存图片
    数组去重 和 数组排序方法总结
    js数组去重的方法(转)
    vue 校验插件 veeValidate使用
    将本地已有项目上传到github
    vue 项目搭建笔记1
    css计数器 及 鼠标经过从中间扩散一个矩形(正方形长方形均可)
  • 原文地址:https://www.cnblogs.com/zjz20/p/13801606.html
Copyright © 2020-2023  润新知