netcat

netcat是网络界的瑞士军刀,是一个用于TCP/UDP连接和监听的linux工具,主要用于网络传输及调试领域。netcat 可以打开TCP连接发送UDP报文,监听在TCP和UDP端口,以及TCP端口扫描。
man netcat

NAME
       nc - TCP/IP swiss army knife

SYNOPSIS
       nc [-options] hostname port[s] [ports] ...
       nc -l -p port [-options] [hostname] [port]
OPTIONS
       -c string    specify shell commands to exec after connect (use with caution).  The string is passed  to  /bin/sh  -c  for
                    execution.   See  the  -e option if you don't have a working /bin/sh (Note that POSIX-conformant system must
                    have one).

       -e filename  specify filename to exec after connect (use with caution).  See the -c option for enhanced functionality.

       -g gateway   source-routing hop point[s], up to 8

       -G num       source-routing pointer: 4, 8, 12, ...

       -h           display help

       -i secs      delay interval for lines sent, ports scanned

       -l           listen mode, for inbound connects

       -n           numeric-only IP addresses, no DNS

       -o file      hex dump of traffic

       -p port      local port number (port numbers can be individual or ranges: lo-hi [inclusive])

       -q seconds   after EOF on stdin, wait the specified number of seconds and then quit. If seconds is  negative,  wait  for‐
                    ever.

       -b           allow UDP broadcasts

       -r           randomize local and remote ports

       -s addr      local source address

       -t           enable telnet negotiation

       -u           UDP mode

       -v           verbose [use twice to be more verbose]

       -w secs      timeout for connects and final net reads

       -C           Send CRLF as line-ending

       -z           zero-I/O mode [used for scanning]

       -T type      set  TOS flag (type may be one of "Minimize-Delay", "Maximize-Throughput", "Maximize-Reliability", or "Mini‐
                    mize-Cost".)

安装netcat

root@newbie-unknown85882:~# apt-get install -y netcat
#在此使用的是apt-get安装,如果用yum安装则是yum install -y netcat
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
netcat 已经是最新版 (1.10-41)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 1 个软件包未被升级。
#本机已经安装了netcat

开启监听端口
在10.83.3.102这台机上执行nc -l -p 9999

root@newbie-unknown85882:~# nc -l -p 9999

打在另一个终端在10.83.3.102这台机上执行netstat -atunlp | grep 9999

root@newbie-unknown85882:~# netstat -atunlp | grep 9999
tcp        0      0 0.0.0.0:9999            0.0.0.0:*               LISTEN      7985/nc

nc 进行局域网内聊天

在服务端10.83.3.102这台机上执行nc -l -p 9999
然后在客户端10.83.3.103这台机上执行nc 10.83.3.102 9999

现在就可以进行简单聊天了:

服务端

root@newbie-unknown85882:~# nc -l -p 9999
Hello World!
Hello Jaking!
Hello SteamedFish!
Hello IGI!

客户端

root@newbie-unknown85883:~# nc 10.83.3.102 9999
Hello World!
Hello Jaking!
Hello SteamedFish!
Hello IGI!

服务端和客户端的消息是同步显示的。

nc 局域网文件传输

在服务端创建文件并传输:

root@newbie-unknown85882:/tmp# echo netcat > a.txt
root@newbie-unknown85882:/tmp# cat a.txt 
netcat
root@newbie-unknown85882:/tmp# nc -l -q 1 -p 9999 < a.txt 
#-q 1 : 表示发送完等待1秒后退出 

在客户端接收并验证文件:

root@newbie-unknown85883:/tmp# nc 10.83.3.102 9999 > a.txt
root@newbie-unknown85883:/tmp# ls
a.txt
root@newbie-unknown85883:/tmp# cat a.txt 
netcat

传输目录

在服务端对目录进行打包再传输:

root@newbie-unknown85882:/tmp# mkdir book
root@newbie-unknown85882:/tmp# ls
a.txt  book  hwcheck
root@newbie-unknown85882:/tmp# ls -l
总用量 4
-rw-r--r-- 1 root root 7 2月  26 10:28 a.txt
drwxr-xr-x 2 root root 6 2月  26 10:54 book
drwxr-xr-x 2 root root 6 2月  26 10:55 hwcheck
root@newbie-unknown85882:/tmp# cd book/
root@newbie-unknown85882:/tmp/book# ls
root@newbie-unknown85882:/tmp/book# touch 1.txt
root@newbie-unknown85882:/tmp/book# touch 2.txt
root@newbie-unknown85882:/tmp/book# touch 3.txt
root@newbie-unknown85882:/tmp/book# ls
1.txt  2.txt  3.txt
root@newbie-unknown85882:/tmp/book# cd /tmp
root@newbie-unknown85882:/tmp# tar -c book | nc -l -q 1 -p 9999

在客户端接收并验证文件:

root@newbie-unknown85883:/tmp# nc 10.83.3.102 9999 | tar -x
root@newbie-unknown85883:/tmp# ls -R book
book:
1.txt  2.txt  3.txt
root@newbie-unknown85883:/tmp# ls
a.txt  book  hwcheck
root@newbie-unknown85883:/tmp# cd book/
root@newbie-unknown85883:/tmp/book# ls
1.txt  2.txt  3.txt

传输多个文件

在服务端对多个文件进行打包再传输:

root@newbie-unknown85882:/tmp# ls
a.txt  book  hwcheck
root@newbie-unknown85882:/tmp# touch b.txt
root@newbie-unknown85882:/tmp# touch c.txt
root@newbie-unknown85882:/tmp# ls
a.txt  book  b.txt  c.txt  hwcheck
root@newbie-unknown85882:/tmp# tar -c a.txt b.txt c.txt | nc -l -q 1 -p 9999

在客户端接收并验证文件:

root@newbie-unknown85883:/tmp# ls
a.txt  book  hwcheck
root@newbie-unknown85883:/tmp# nc 10.83.3.102 9999 | tar -x
root@newbie-unknown85883:/tmp# ls
a.txt  book  b.txt  c.txt  hwcheck

**使用netcat进行端口扫描 **
格式
nc -v -z -r -i 1 127.0.0.1 8888-8899
-z:指定端口扫描打开仅连接不发送数据

-v:显示详细信息(不指定不会报告打开的端口)

-i:当连接多个端口时 两个端口建立连接的时间间隔。

-r :让netcat 在指定的端口范围内无序的扫描端口(默认是从低到高依次扫描)

root@newbie-unknown85882:/tmp# nc  -v  -z  -r  -i  1  127.0.0.1 8888-8899
localhost [127.0.0.1] 8888 (?) open
root@newbie-unknown85882:/tmp# nc  -vzr  -i  1  127.0.0.1 8888-8899
localhost [127.0.0.1] 8888 (?) open
root@newbie-unknown85882:/tmp# nc  -vzr  127.0.0.1 8888-8899
localhost [127.0.0.1] 8888 (?) open
root@newbie-unknown85882:/tmp# nc  -vzr  127.0.0.1 1000-10000
localhost [127.0.0.1] 3000 (?) open
localhost [127.0.0.1] 6082 (?) open
localhost [127.0.0.1] 8888 (?) open
localhost [127.0.0.1] 5901 (?) open

使用netcat进行UDP报文传输

cat a.txt | nc -q 1 -u localhost 9999 > /dev/null
将文本文件a.txt 文件输出作为nc的输入 向端口号为9999的服务器发送 a.txt

-q 1:表示发送完等待1秒后退出
-u:表示使用UDP协议来发送报文(默认使用TCP)

root@newbie-unknown85882:/tmp# cat a.txt | nc -q 1 -u localhost 9999 > /dev/null 

使用netcat 提供网络远程登录服务

服务端

root@newbie-unknown85882:/tmp# nc -l -p 9999 -e /bin/sh
#-e:表示连接成功后执行的程序

客户端

root@newbie-unknown85883:/tmp# nc 10.83.3.102 9999
ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1400
        inet 10.83.3.102  netmask 255.255.255.0  broadcast 10.83.3.255
        ether 52:54:00:35:ed:32  txqueuelen 1000  (Ethernet)
        RX packets 2783649  bytes 689151624 (657.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3028532  bytes 1697066832 (1.5 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1  (Local Loopback)
        RX packets 207153  bytes 40922049 (39.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 207153  bytes 40922049 (39.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
#在客户端上执行ifconfig后显示服务端的ip 10.83.3.102,意思是服务端已开启远程登录服务,供其它机器远程登录。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容