强大的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夜班车,否则按侵权处理.
提前祝您新年快乐。
乙未年(羊)冬月十九 2015-12-29
谢谢,也祝你新年快乐!
研究的够深了
谢谢夸奖啊!也是工作需要,不得不研究这些。最近都开始研究TCP栈的linux实现,好辛苦啊