Linux nc常用命令
Linux中nc命令是一个功能强大的网络工具,全称是netcat。
nc/netcat(选项)(参数)
选项:
-g<网关>:设置路由器跃程通信网关,最多设置8个;
-G<指向器数目>:设置来源路由指向器,其数值为4的倍数;
-h:在线帮助;
-i<延迟秒数>:设置时间间隔,以便传送信息及扫描通信端口;
-l:使用监听模式,监控传入的资料;
-n:直接使用ip地址,而不通过域名服务器;
-o<输出文件>:指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存;
-p<通信端口>:设置本地主机使用的通信端口;
-r:指定源端口和目的端口都进行随机的选择;
-s<来源位址>:设置本地主机送出数据包的IP地址;
-u:使用UDP传输协议;
-v:显示指令执行过程;
-w<超时秒数>:设置等待连线的时间;
-z:使用0输入/输出模式,只在扫描通信端口时使用。
参数:
主机:指定主机的IP地址或主机名称;
端口号:可以是单个整数或者是一个范围。
TCP端口扫描
# nc -v -z -w2 192.168.0.3 1-100
-v:显示指令执行过程;
-z:使用0输入/输出模式,只在扫描通信端口时使用。
-w2:设置等待连线的时间为2s;
root@kali:~/Desktop# nc -v -z -w2 192.168.211.106 38324
192.168.211.106: inverse host lookup failed: Unknown host
(UNKNOWN) [192.168.211.106] 38324 (?) open
root@kali:~/Desktop# nc -v -z -w2 192.168.211.106 38322-38325
192.168.211.106: inverse host lookup failed: Unknown host
(UNKNOWN) [192.168.211.106] 38324 (?) open
UDP端口扫描
# nc -u -z -w2 192.168.0.1 1-1000 //扫描192.168.0.3 的端口 范围是 1-1000
扫描指定端口
# nc -nvv 192.168.0.1 80 //扫描 80端口
(UNKNOWN) [192.168.0.1] 80 (?) open
使用netcat实现局域网聊天
一端先启好监听:
nc -l 9999
另一端端进行连接:
nc 192.168.220.128 9999
连接之后的任一边的输入在另一边都可看到
#Ubantu (192.168.118.137 9999)
ldl@ubuntu:~$ nc -l 9999
wode
我的
Linux真好用 ^H,^H^H-=13
#kali(192.168.118.134)
root@kali:~/Desktop# nc 192.168.118.137 9999
wode^H^H^H
我的
Linux真好用-=13
发现输入的内容(中文英文字符)都可以正确解析,但是非打印字符不会传输。退格等键无用。
Ctrl+C 断开连接。
使用netcat实现文件传输
和局域网聊天是原理一样的,不过把输入输出重定向到文件
接收入端先启好监听:
nc -l 9999 > recv.txt
发送端进行发送:
nc 192.168.220.128 9999 < send.txt
不过传输完之后不会自动断开连接得手动ctrl+c断开,而且转输完成并没有什么标志不知是否已传完。
接收端:
ldl@ubuntu:~/Desktop$ ls
源代码
ldl@ubuntu:~/Desktop$ nc -l 9999 > test.c
^C
ldl@ubuntu:~/Desktop$ ls
test.c 源代码
发送端:
root@kali:~/Desktop# nc 192.168.118.137 9999 < test.c