Linux常用命令行指令 - nc
nc
命令是 netcat
的缩写,能够使用TCP或UDP协议读写网络连接中的数据,是一个方便可靠的调试工具。
1. 基本 C/S
模型
作为服务端建立监听
nc -l 127.0.0.1 8060
作为客户端连接端口
nc 172.0.0.1 8060
但是需要注意的是,该服务端只允许一个客户端连接进来。
nc
会默认以TCP协议运行,可以增加 -u
参数转换为UDP协议。
2. 文件传输
模拟客户端向服务端传输文件的示例代码如下,同理,也可以模拟服务端向客户端发送文件。
nc -l 1234 > filename.out
nc 127.0.0.1 1234 < fielname.in
3. 连接远程系统
已连接http服务器为例,在作为客户端连接以后,可以向服务器发送 GET /HTTP/1.1
来获取网站的主页。
示例代码如下
print "GET /HTTP/1.0 \r\n"| nc host.example.com 80
4. 简易代理
将nc命令嵌套使用,可以将一个端口中的数据转发到目的ip和端口。
ncat -l 8080 | ncat 192.168.1.200 80
通过上面的命令能够将本机8080端口的数据转发到192.168.1.200的80端口上,但是这样是单向的。可以建立 fifo
实现数据的双向传输。
mkfifo ./fifo_temp
ncat -l 8080 0<fifo_temp | ncat 192.168.1.200 80 1>fifo_temp