Linux系统中nc命令的基本用法

来源:爱站网时间:2018-01-24编辑:网友分享
这篇文章主要介绍了Linux系统中nc命令的基本用法,nc命令非常之强大,这里先简单介绍它用来作端口扫描以及文件传输等的基础使用,需要的朋友可以参考下。

  功能说明:功能强大的网络工具,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小精悍,功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据。同时,它还是一个网络应用Debug分析器,因为它可以根据需要创建各种不同类型的网络连接。

  nc可以提供如下的网络功能:

  1) 监听特定端口,这时候nc就可以作为一个服务器,但是我发现这样使用nc生成的服务器仅仅是一个echo服务器而已,没有其他更加强大的功能.

  2) 连接特定端口,这时候nc就成为了一个客户端,同样的,也是一个简单的客户端,只能起echo的作用.

  3) 扫描端口,这可以作为查询某个机器上是否开启了某个端口.

  几个具体的使用例子

  例子1:

  使用nc打开linux下的特定端口

  nc -lp 23 & (即telnet)

  netstat -an|grep 23 (查看端口是否正常打开)

  例子2:

  使用nc进行文件传输,命令

  ssh root@www.freetstar.com “( nc -l 10003 > destination 2>/dev/null & )” && cat source | nc www.freetstar.com 10003

  && 前边ssh登录到远程主机www.freetstar.com上,用nc命令打开本地的10003端口,成为后台进程

  &&后边,在本地机器上打开source文件,并将其重定向到www.freetstar.com的10003号端口,也就是让远程www.freetstar.com主机10003号端口接收source文件

  例子3:

  使用nc扫描linux下的特定端口

  nc -v -z host.example.com 70-80

  扫描端口(70到80),可指定范围。-v输出详细信息。

  例子4:

  克隆硬盘或分区

  类似于例子2,只需要由dd获得硬盘或分区的数据,然后传输即可。

  克隆硬盘或分区的操作,不应在已经mount的的系统上进行。所以,需要使用安装光盘引导后,进入拯救模式(或使用Knoppix工 具光盘)启动系统后

  server1上执行:# nc -l -p 1234 | dd of=/dev/sda

  server1上执行1234号端口监听,将得到的文件保存到/dev/sda上

  server2上执行:# dd if=/dev/sda | nc server1 1234

  例子5:

  保存Web页面

  while true; do nc -l -p 80 -q 1

  例子6:

  模拟HTTP Headers

  [root@hatest1 ~]# nc www.huanxiangwu.com 80

  GET / HTTP/1.1

  Host: ispconfig.org

  Referrer: mypage.com

  User-Agent: my-browser

  在nc命令后,输入红色部分的内容,然后按两次回车,即可从对方获得HTTP Headers内容。

  例子7:

  聊天

  server1上监听1234端口[root@hatest2 tmp]# nc -lp 1234

  server2上向server1的1234端口发送消息[root@hatest1 ~]# nc server1 1234

  这样,双方就可以相互交流了。使用Ctrl+D正常退出。

  更多的使用,查看man手册

  nc example.host port 打开与example.host主机的port的一个TCP链接.如果链接失败,不显示任何错误信息,仅仅退出

  nc -p 31337 -w 5 example.host 42 打开与example。host主机的42号端口的一个TCP链接。用31337作为源端口,超时链接时间为5秒

  nc -u example.host 53 指定协议为udp协议

  语  法:nc [-hlnruz][-g][-G][-i][-o][-p][-s][-v...][-w][主机名称][通信端口...]

  参  数:

  -g 设置路由器跃程通信网关,最多可设置8个。

  -G 设置来源路由指向器,其数值为4的倍数。

  -h 在线帮助。

  -i 设置时间间隔,以便传送信息及扫描通信端口。

  -l 使用监听模式,管控传入的资料。

  -n 直接使用IP地址,而不通过域名服务器。

  -o 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。

  -p 设置本地主机使用的通信端口。

  -r 乱数指定本地与远端主机的通信端口。

  -s 设置本地主机送出数据包的IP地址。

  -u 使用UDP传输协议。

  -v 显示指令执行过程。

  -w 设置等待连线的时间。

  -z 使用0输入/输出模式,只在扫描通信端口时使用。

  来看下它的基本用法:

  1.监听本地端口

  复制代码

  代码如下:

  root@10.1.1.43:~# nc -l -p 1234

  root@10.1.1.43:~# netstat -tunlp | grep 1234

  tcp 0 0 0.0.0.0:1234 0.0.0.0:* LISTEN 15543/nc

  2.端口扫描

  复制代码

  代码如下:

  root@10.1.1.43:~# nc -v -w 10 10.1.1.180 80

  (UNKNOWN) [10.1.1.180] 80 (www) open

  复制代码

  代码如下:

  root@10.1.1.43:~# nc -v -w 10 10.1.1.180 -z 80-30000

  (UNKNOWN) [10.1.1.180] 22000 (?) open

  (UNKNOWN) [10.1.1.180] 80 (www) open

  3.文件传出

  源10.1.1.43 text.txt

  目的 10.1.1.180

  复制代码

  代码如下:

  root@10:~# nc -l -p 1234 > test.txt #开10.1.1.180:1234端口监听,并将socket传输过来的数据重定向到test.txt文件 test 43 nc

  root@10.1.1.43:~#cat test.txt

  root@10.1.1.43:~# nc 10.1.1.180 1234

  root@10:~# cat test.txt

  test 43 nc

  4.目录传输

  源10.1.1.43 python_program

  目的 10.1.1.180

  复制代码

  代码如下:

  root@10:~# nc -l -p 1234 | tar xzvf -

  root@10.1.1.43:~# tar czvf - python_program | nc 10.1.1.180 1234

  python_program/

  python_program/1.py

  python_program/4.py

  python_program/3.py

  5.测试UDP端口

  复制代码

  代码如下:

  root@172.16.211.34:web# netstat -tunlp

  Active Internet connections (only servers)

  Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

  tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1111/sshd

  udp 0 0 0.0.0.0:68 0.0.0.0:* 887/dhclient

  复制代码

  代码如下:

  root@172.16.211.35:~# nc -vuz 172.16.211.34 68

  Connection to 172.16.211.34 68 port [udp/bootpc] succeeded!

  以上就是小编带来的Linux系统中nc命令的基本用法的全部内容,感谢大家的阅读,更多内容请关注爱站技术频道网站。

上一篇:关于DNS轮循的详细介绍

下一篇:从整体上认识Linux的输入子系统

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载