强大的linux命令ncat

强大的linux命令ncat      

ncat是linux内置的一个命令,可以提供tcp,udp的服务器和客户端,还可以作为代理服务器。

所以如果测试,完全不用自己写一个tcp和udp的服务器,直接使用ncat就可以。ncat默认是工作于tcp模式,如果要工作udp,则使用 -u选项。下面介绍一些非常经典的应用。

ncat默认是工作在客户端的模式,如果要想让它工作在服务器模式的话,需要加上小写的L,就是表示监听,后面当然需要指明监听的端口号。

1)ncat作为tcp的客户端链接到example.com的8080端口:
      $> ncat example.org 8080

 2) ncat作为tcp的服务器的,监听8080端口
       $> ncat -l 8080

        要想测试上面的服务器,可以使用ncat或者telnet

       $> telnet localhost 8080

        输出如下说明服务器工作正常:

Trying ::1…
Connected to localhost.
Escape character is '^]'.
^]q

       $> ncat -v localhost 8080

        应该输出:

Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connected to ::1:8880.

       上面加了一个 -v选项,是因为默认情况下,ncat链接到服务器后什么输出都没有

3) 重定向本机的8080的访问到example.org的80端口
      $> ncat –sh-exec "ncat example.org 80" -l 8080 –keep-open

      现在可以试试用浏览器访问: http://localhost:8080

      绑定本地应用到本地的8081端口,这样别人可以链接这个服务器,直接使用这个服务。下面是绑定的bash
       $> ncat –exec "/bin/bash" -l 8081 –keep-open

在另外一个终端

        $> ncat localhost 8081

 然后就可以使用bash了,比如还可以使用bc(linux的计算器)

         $> ncat –exec "/usr/bin/bc" -l 8081 –keep-open

上面的这个例子中,我们提供的这个服务全世界都可以使用(当然是假设你的ip是公网ip了),但是我们还想限制访问,就使用下面的命令
          $>ncat –exec "/bin/bash" –max-conns 3 –allow 192.168.0.0/24 -l 8081 –keep-open

下面是一个很有用的例子,就是让你的服务器成为一个http的代理服务器。
           $> ncat -l –proxy-type http localhost 8888

下面的例子都是传输文件的例子

       Send a file over TCP port 9899 from host2 (client) to host1 (server).
           HOST1:

                  $ ncat -l 9899 > outputfile

           HOST2:

                   $ ncat HOST1 9899 < inputfile

       Transfer in the other direction, turning Ncat into a “one file” server.
           HOST1$ ncat -l 9899 < inputfile

           HOST2$ ncat HOST1 9899 > outputfile

 

 

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章转载自:IT夜班车,否则按侵权处理.

    分享到:

4 thoughts on “强大的linux命令ncat

Leave a Reply

Your email address will not be published. Required fields are marked *