一、安装
ubuntu: apt install netcat
二、命令选项
-h 在线帮助。
-v 显示指令执行过程。
-g<网关> 设置路由器跃程通信网关,最多可设置8个。
-G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p<通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s<来源位址> 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-w<超时秒数> 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。
三、使用示例
1.查看服务器端口是否通
2.tcp端口扫描
nc -v -z -w2 rumenz.com 20-30
3.udp 端口扫描
4.建立聊天室
服务端:nc -v -l 127.0.0.1 9898
客户端:nc -v -p 9897 127.0.0.1 9898
服务端只能为一个客户端服务。
5.传输文件
服务端:
客户端:
6.传输文件夹(需配合tar 命令)
服务端: - 表示tar的输出流,tar 产生的压缩数据流经过管道流入nc 的输入流。
同样的道理:tar -cvf - test | gzip -6 > test.tgz 显然是成立的。
客户端: 从nc 客户端 的输出流获取压缩数据,然后经过管道传到tar 的输入流, 所以这里的 - 表示 tar 的输入流。
成功解压后,test 文件夹就传输过来了。
7.使用 ipv6 udp 通信
8.测试网速
最好的方式是跨主机测试。
9.其他
先连接到hu60.cn,然后让hu60.cn连接hu60.net,同时创建一个以hu60.net为出口的socks5代理供浏览器使用。
ssh -C -D17070 -o ProxyCommand='ssh root@hu60.cn nc hu60.net 22' hu60@hu60.net
ssh
-C #开启压缩
-D17070 #建立一个socks5代理,端口17070
-o ProxyCommand=' #设置一个代理命令,该代理命令会负责连接到服务器
ssh root@hu60.cn #代理命令先连接到国内的hu60.cn,使用root用户进行认证
nc hu60.net 22 #然后在hu60.cn上执行nc命令,连接hu60.net的22端口
' hu60@hu60.net #设置hu60.net的认证用户为hu60。
#后面的域名hu60.net只是象征性的,并没有实际意义,
#因为连接是在hu60.cn上通过nc命令建立的。
#所以这里随便写个域名都能连上,这里主要用来指定认证用户。