netcat的有用用途
版本1.0
作者:Falko Timme
这篇简短的文章显示了一些有用的netcat命令。 netcat被称为TCP / IP瑞士军刀。 从netcat手册页: netcat是一种简单的unix实用程序,它通过TCP或UDP协议通过网络连接读取和写入数据。 它被设计为可靠的“后端”工具,可以直接或容易地由其他程序和脚本驱动。 同时,它是一个功能丰富的网络调试和探索工具,因为它可以创建几乎任何类型的连接,您将需要并具有几个有趣的内置功能。
我不会保证这将为您工作!
1初步说明
我在本文中使用两个系统:
-
server1.example.com:IP
地址192.168.0.100
-
server2.example.com:IP
地址192.168.0.101
netcat应该已经在你的系统上安装了 - 你可以检查一下
which nc
要了解有关netcat的更多信息,请查看其手册页:
man nc
2将文件从一个系统复制到另一个系统
假设我们要将文件ISPConfig-2.2.27.tar.gz
从server1
复制到server2
。 为此,运行
server2:
nc -lp 1234 > ISPConfig-2.2.27.tar.gz
在server2
( 1234
是一些未使用的端口 - 您可以替换为另一个值,如果你喜欢)。 server2将等待端口1234
上的文件ISPConfig-2.2.27.tar.gz
。
在server1
上运行
server1:
nc -w 1 server2.example.com 1234 < ISPConfig-2.2.27.tar.gz
开始文件传输。
3克隆硬盘和分区
您可以使用netcat甚至通过网络克隆硬盘驱动器/分区。 在这个例子中,我想将/ dev / sda
从server1
克隆到server2
。 当然,要克隆的分区必须在目标系统上卸载,所以如果要克隆系统分区,则必须从救援系统或Live-CD(如Knoppix )引导目标系统( server2
)。 请记住,目标系统的IP地址可能会在实时系统下更改(您可以通过运行了解)
ifconfig
)。 这个例子中server2
的IP地址是192.168.0.12
而不是192.168.0.101
。
在server2
上运行
server2:
nc -l -p 1234 | dd of=/dev/sda
之后,在server1上运行
server1:
dd if=/dev/sda | nc 192.168.0.12 1234
开始克隆过程。 这可能需要一些时间,具体取决于硬盘驱动器或分区的大小。
4端口扫描
在server1上
,可以如下扫描server2
上的打开端口:
server1:
nc -v -w 1 server2.example.com -z 1-1000
( 1-1000
表示:从端口号1到端口号1000扫描端口)
您还可以扫描本地系统上的端口:
nc -v -w 1 localhost -z 1-1000
5服务网页
您甚至可以使用netcat作为Web服务器:
while true; do nc -l -p 80 -q 1 < somepage.html; done
将提供somepage.html
页面,直到您关闭终端窗口。
6欺骗HTTP头
您可以使用netcat来请求网页:
nc ispconfig.org 80
然后,您可以键入标题,如下所示:
GET / HTTP/1.1
Host: ispconfig.org
Referrer: mypage.com
User-Agent: my-browser
如你所见,这样可以让您组成自己的引荐来源和浏览器( User-Agent
)。 键入标题后,按ENTER
两次,并显示所请求的页面(包括远程服务器发回的标题):
server2:~# nc exampple.com 80
GET / HTTP/1.1
Host: example.com
Referrer: mypage.com
User-Agent: my-browser
HTTP/1.1 200 OK
Date: Fri, 28 Nov 2008 14:11:49 GMT
Server: Apache/2.2.3 (Debian) mod_ssl/2.2.3 OpenSSL/0.9.8c
Last-Modified: Wed, 26 Nov 2008 19:34:17 GMT
ETag: "228c707-21b1-b6b7e040"
Accept-Ranges: bytes
Content-Length: 8625
Content-Type: text/html
[...]
7聊天
甚至可以在命令行中使用netcat从一个系统到另一个系统进行聊天。
类型
server2:
nc -lp 1234
在server2上
。 server2
会等到server1
在端口1234
上连接。
在server1
上运行
server1:
nc server2.example.com 1234
现在,您可以在两个系统上键入消息,然后按ENTER键
,它们将显示在另一个系统上。 要关闭聊天,请在两个系统上按CTRL + C。
8链接
- netcat: http : //netcat.sourceforge.net/