netcat的有用用途

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.gzserver1复制到server2 。 为此,运行

server2:

nc -lp 1234 > ISPConfig-2.2.27.tar.gz

server21234是一些未使用的端口 - 您可以替换为另一个值,如果你喜欢)。 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 / sdaserver1克隆到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链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏