Linux中的nc
命令,全称netcat
,是一个多功能的网络工具,主要用于通过TCP或UDP读取和写入网络连接,也可以作为客户端或服务端进行debug、测试和网络问题分析。以下是一些常用的nc
命令示例和参数说明:
- 检查端口是否打开 :
nc -zv example.com 80
```
`-z`:扫描但不发送数据;
`-v`:详细输出模式。
2. **启动一个简单的TCP服务** :
nc -l 1234
```
-l
:监听模式,用于接受连接请求。
- 连接到指定端口的TCP服务 :
nc localhost 1234
```
4. **发送文件到指定服务端口** :
nc -l 1234 > received_filenc
```
将文件file.txt
的内容发送到监听在1234端口的服务。
- 端口扫描 :
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
```
- 禁用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端口的服务。
- 模拟HTTP请求 :
nc www.linuxfly.org 80 GET / HTTP/1.1 Host: ispconfig.org Referrer: mypage.com User-Agent: my-browser
```
这些示例展示了`nc`命令在不同场景下的应用,包括端口扫描、服务监听、文件传输和路由器设置等。根据具体需求选择合适的参数和选项,可以有效地利用`nc`命令进行网络测试和调试。