linux -nc?linuxidc.com

大家好,感谢邀请,今天来为大家分享一下linux -nc的问题,以及和linuxidc.com的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

Linux nc命令详解 Linux nc命令怎么用

Linux中nc命令是一个功能强大的网络工具,全称是netcat。

语法:

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、TCP端口扫描

# nc-v-z-w2 127.0.0.1 1-100

Connection to 127.0.0.1 22 port [tcp/ssh] succeeded!

Connection to 127.0.0.1 53 port [tcp/domain] succeeded!

Connection to 127.0.0.1 80 port [tcp/http] succeeded!

...

nc: connect to 127.0.0.1 port 100(tcp) failed: Connection refused

2、从192.168.1.2拷贝文件到192.168.1.3

首先在接收端192.168.1.3上: nc-l 1234> test.txt

然后在发送端192.168.1.2上: nc 192.168.1.3< test.txt

注意:先运行接收端,指定一个端口为1234,文件为test.txt,再执行发送端,并且发送端必须存在同名的文件test.txt

3、传输目录

从server1(192.168.16.233)拷贝nginx目录内容到server2(192.168.48.47)上。需要先在server2上,用nc激活监听,

server2上运行:# nc-l 1234| tar xzv-

server1上运行:# tar czv- nginx| nc 192.168.48.47 1234

4、简单聊天工具

在192.168.1.2上: nc-l 1234

在192.168.1.3上: nc 192.168.1.2 1234

这样,双方就可以相互交流了。使用ctrl+C(或D)退出

Linux系统中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 somepage.html; done

例子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 test.txt#连接远程的10.1.1.180,从test.txt的路径从定向到socket,从而将文件传输到远方。

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命令

linux系统下nc命令可以实现任意TCP/UDP端口的侦听,nc命令可以作为server以TCP或UDP方式侦听指定端口,下面是nc命令内容的具体介绍:

1、nc命令简介:

nc命令全称是netcat,是网路工具,短小精悍被称为网络界的瑞士军刀。

2、nc命令功能:

实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口;

端口的扫描,nc可以作为client发起TCP或UDP连接;

机器之间传输文件;

机器之间网络测速。

3、语法:

nc [-hlnruz][-g网关...][-G指向器数目][-i延迟秒数][-o输出文件][-p通信端口][-s来源位址][-v...][-w超时秒数][主机名称][通信端口...]

4、参数:

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

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

-h:在线帮助。

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

-l:监听模式,用于入站连接(监听本地端口)。

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

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

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

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

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

-u:使用UDP传输协议。

-v:显示指令执行过程。

-w超时秒数:设置等待连线的时间。

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

5、常见使用:

远程拷贝文件

从server1拷贝文件到server2上。需要先在server2上,用nc激活监听,server2上运行:

引用[root@hatest2 tmp]# nc-lp 1234 install.log

server1上运行:

引用[root@hatest1~]# ll install.log

-rw-r--r-- 1 root root 39693 12月 20 2007 install.log

[root@hatest1~]# nc-w 1 192.168.228.222 1234 install.log

克隆硬盘或分区

操作与上面的拷贝是雷同的,只需要由dd获得硬盘或分区的数据,然后传输即可。

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

工具光盘)启动系统后,在server2上进行类似的监听动作:

# nc-l-p 1234| dd of=/dev/sda

server1上执行传输,即可完成从server1克隆sda硬盘到server2的任务:

# dd if=/dev/sda| nc 192.168.228.222 1234

※完成上述工作的前提,是需要落实光盘的拯救模式支持服务器上的网卡,并正确配置IP。

端口扫描

可以执行:

引用# nc-v-w 1 192.168.228.222-z 1-1000

hatest2 [192.168.228.222] 22(ssh) open

保存Web页面

# while true; do nc-l-p 80-q 1 somepage.html; done

模拟HTTP Headers

引用[root@hatest1~]# nc.linuxfly.org 80

GET/ HTTP/1.1

Host: ispconfig.org

Referrer: mypage.com

User-Agent: my-browser

HTTP/1.1 200 OK

Date: Tue, 16 Dec 2008 07:23:24 GMT

Server: Apache/2.2.6(Unix) DAV/2 mod_mono/1.2.1 mod_python/3.2.8 Python/2.4.3 mod_perl/2.0.2 Perl/v5.8.8

Set-Cookie: PHPSESSID=bbadorbvie1gn037iih6lrdg50; path=/

Expires: 0

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Pragma: no-cache

Cache-Control: private, post-check=0, pre-check=0, max-age=0

Set-Cookie: oWn_sid=xRutAY; expires=Tue, 23-Dec-2008 07:23:24 GMT; path=/

Vary: Accept-Encoding

Transfer-Encoding: chunked

Content-Type: text/html

[......]

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

聊天

nc还可以作为简单的字符下聊天工具使用,同样的,server2上需要启动监听:

[root@hatest2 tmp]# nc-lp 1234

server1上传输:

[root@hatest1~]# nc 192.168.228.222 1234

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

传输目录

从server1拷贝nginx-0.6.34目录内容到server2上。需要先在server2上,用nc激活监听,server2上运行:

引用[root@hatest2 tmp]# nc-l 1234|tar xzvf-

server1上运行:

引用[root@hatest1~]# ll-d nginx-0.6.34

drwxr-xr-x 8 1000 1000 4096 12-23 17:25 nginx-0.6.34

[root@hatest1~]# tar czvf- nginx-0.6.34|nc 192.168.228.222 1234

阅读剩余
THE END