linux nc命令详解

Linux中的nc命令,全称netcat,是一个多功能的网络工具,主要用于通过TCP或UDP读取和写入网络连接,也可以作为客户端或服务端进行debug、测试和网络问题分析。以下是一些常用的nc命令示例和参数说明:

  1. 检查端口是否打开
    nc -zv example.com 80
    ```

`-z`:扫描但不发送数据;

`-v`:详细输出模式。

2. **启动一个简单的TCP服务** :

nc -l 1234
```

-l:监听模式,用于接受连接请求。

  1. 连接到指定端口的TCP服务
    nc localhost 1234
    ```

4. **发送文件到指定服务端口** :

nc -l 1234 > received_filenc
```

将文件file.txt的内容发送到监听在1234端口的服务。

  1. 端口扫描
    nc -zv 192.168.1.1 20-25
    ```

扫描从20到25的端口<b class="card40_249__sup_a7f6" data-sup="sup">1</b>。

6. **设置路由器参数** (较少见用途):

nc -h
```

在线帮助;

    nc -g
    ```

设置路由器跃程通信网关,最多可设置8个<b class="card40_249__sup_a7f6" data-sup="sup">4</b>;

nc -p
```

设置本地主机使用的通信端口;

    nc -u
    ```

使用UDP传输协议<b class="card40_249__sup_a7f6" data-sup="sup">3</b>。

7. **详细输出模式** :

nc -v localhost 1234
```
  1. 禁用DNS解析
    nc -n localhost 1234
    ```

9. **监听模式下的文件传输** <b class="card40_249__sup_a7f6" data-sup="sup">2</b>:

while true; do nc -l -p 80 -q 1 < somepage.html; done
```

somepage.html文件通过HTTP协议发送到监听在80端口的服务。

  1. 模拟HTTP请求
    nc www.linuxfly.org 80 GET / HTTP/1.1 Host: ispconfig.org Referrer: mypage.com User-Agent: my-browser
    ```

这些示例展示了`nc`命令在不同场景下的应用,包括端口扫描、服务监听、文件传输和路由器设置等。根据具体需求选择合适的参数和选项,可以有效地利用`nc`命令进行网络测试和调试。
Top