欢迎来到云网时代数据中心! 业务咨询热线:0755-88868179增值电信业务经营许可证:B1-20170628
IDC技术前沿
当前位置:首页>文章中心>IDC技术前沿

Linux服务器托管netcat命令的使用技巧

发布时间:2019-07-18 点击数:498

netcat命令是Linux服务器常用的命令,而且现在Linux服务器使用也是比较广泛的,今天小编就给大家分享下Linux服务器托管netcat命令的使用技巧。


1. nc命令简介

NetCat,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据。同时,它还是一个网络应用Debug分析器,因为它可以根据需要创建各种不同类型的网络连接。
netcat简介
以CentOS7.5最小安装版为例,默认情况下系统并没有集成nc工具集,需要手动安装它:
[root@zcwyou ~]# yum install -y nmap-ncat

2. 测试192.168.1.1的TCP80端口是否可以正常连接

[root@zcwyou ~]# nc -v -w 1 192.168.1.1 -z 80
Ncat: Version 7.50
Ncat: Connected to 192.168.1.1:80.
Connected表示连接成功。
linux使用netcat命令检测TCP80端口是否可以正常连接
试试连接81端口
[root@zcwyou ~]# nc -v -w 1 192.168.1.1 -z 81
Ncat: Version 7.50
Ncat: Connection refused.
Connection refused.连接拒绝,表示对方没有打开81端口或者中间防火墙不允许81端口。

3. 使用nc传输文件

大部分时间中,我们都在试图通过网络或者其他工具传输文件。有很多种方法,比如FTP,SCP,SMB等等,但是当你只是需要临时或者一次传输文件,真的值得浪费时间来安装配置一个软件到你的机器上嘛。假设,你想要传一个文件zcwyou.txt 从A到B。A或者B都可以作为服务器或者客户端,以下,让A作为服务器,B为客户端。
Server端配置
[root@zcwyou ~]# nc -l 1567 < zcwyou.txt
Client
[root@zcwyou ~]# nc -n 172.31.100.7 1567 > zcwyou.txt
原理:Server端把zcwyou.txt输入到nc,由nc发送,Client端通过nc接收消息,把它保存到zcwyou.txt。

4. 克隆硬盘或分区

server2上进行类似的监听动作,即把接收的数据重定向给dd:
[root@zcwyou ~]# nc -l -p 1234 | dd of=/dev/sda
server1上把dd后的数据重定向给nc,即发送数据
[root@zcwyou ~]# dd if=/dev/sda | nc 192.168.200.27 1234
注意:克隆硬盘或分区的操作,不应在已经mount的的系统上进行。

5. 指定源端口

假设你的防火墙过滤除25端口外其它所有端口,你需要使用-p选项指定源端口。
服务器端打开监听:
[root@zcwyou ~]# nc -l 1567
客户端发送数据,目标端口1567,源端口25
[root@zcwyou ~]# nc 172.31.100.7 1567 -p 25
使用1024以内的端口需要root权限。
该命令将在客户端开启25端口用于通讯,否则将使用随机端口。

6. 指定源地址

使用-s选项指定源ip地址。
服务器端打开监听,把zcwyou.txt重定向给nc。
[root@zcwyou ~]# nc -u -l 1567 < zcwyou.txt
客户端
[root@zcwyou ~]# nc -u 192.168.100.1 1567 -s 192.168.88.20 > file.txt
当服务器有多个IP时,指定使用192.168.88.20作为源IP。

7. 目录传输

发送一个文件很简单,但是如果我们想要发送多个文件,或者整个目录,一样很简单,只需要使用压缩工具tar,压缩后发送压缩包。
如果你想要通过网络传输一个目录从A到B。
Server端,打包abc目录,并重定向到nc
[root@zcwyou ~]# tar -cvf - abc | nc -l 1567
Client端,通过nc接收数据并由tar解包
[root@zcwyou ~]# nc -n 172.31.100.7 1567 | tar -xvf -
如果想要节省带宽传输压缩包,我们可以使用bzip2或者其他工具压缩。
Server端通过bzip2压缩目录abc并重定向到nc,监听端口1567
[root@zcwyou ~]# tar -cvf - abc | bzip2 -z | nc -l 1567
Client端把接收到的数据通过交给bzip2和tar处理
[root@zcwyou ~]# nc -n 172.16.26.88 1567 | bzip2 -d |tar -xvf -

8. 加密你通过网络发送的数据

如果你担心你在网络上发送数据的安全,你可以在发送你的数据之前用如mcrypt的工具加密。
服务端,使用mcrypt工具加密数据。
[root@zcwyou ~]# nc localhost 1567 | mcrypt -flush -bare -F -q -d -m ecb > zcwyou.txt
客户端,使用mcrypt工具解密数据。
mcrypt -flush -bare -F -q -m ecb < zcwyou.txt | nc -l 1567
以上两个命令会提示需要密码,确保两端使用相同的密码。
这里我们是使用mcrypt用来加密,使用其它任意加密工具都可以。

9. 传输流视频

虽然不是生成流视频的最好方法,但如果服务器上没有特定的工具,使用netcat,我们仍然有希望做成这件事。
服务端读取一个视频文件重定向输出到netcat客户端
[root@zcwyou ~]# cat video.avi | nc -l 1567
客户端通过nc读取内容交给mplayer播放器
[root@zcwyou ~]# nc 172.31.100.7 1567 | mplayer -vo x11 -cache 3000 -

10. 使用UDP协议

默认情况下,nc创建连接时只会连接TCP端口。 不过我们可以使用-u选项来连接到 UDP 端口
[root@zcwyou ~]# ncat -l -u 8888
udp 8888端口已经打开,然后用netstat验证一下端口是否打开。
[root@zcwyou ~]# netstat -tunlp | grep 1234
udp 0 0 0.0.0.0:1234 0.0.0.0:* 17341/nc
udp6 0 0 :::1234 :::* 17341/nc
测试某服务器的UDP端口,比如检查本地是否可以使用阿里DNS服务器223.5.5.5
[root@zcwyou ~]# nc -v -u 223.5.5.5 53
Ncat: Version 7.50
Ncat: Connected to 223.5.5.5:53.
显示Connected即表明成功连接到远程DNS端口,DNS工作正常。
linux使用netcat测试服务器的UDP端口

11. 其它用途

使用-t选项模拟Telnet客户端:
HTTP客户端用于下载文件
连接到邮件服务器,使用SMTP协议检查邮件
使用ffmpeg截取屏幕并通过流式传输分享,等等。其它更多用途。

简单来说,只要你了解协议就可以使用netcat作为网络通讯媒介,实现各种客户端。


这些就是Linux服务器托管netcat命令的使用技巧,云网时代专业提供深圳服务器租用,深圳服务器托管,深圳主机租用,宽带租用等,欢迎咨询客服了解详情。

在线客服