学习啦 > 学习电脑 > 操作系统 > Linux教程 > linux中的nc命令的详细解释

linux中的nc命令的详细解释

时间: 佳洲1085 分享

linux中的nc命令的详细解释

  linxu下的nc命令其实是netcat命令的缩写形式,是一个功能强大的网络工具,下面由学习啦小编为大家整理了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输入/输出模式,只在扫描通信端口时使用。

  二、Linux中的nc命令使用实例

  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命令基本用法

  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!

3635588