重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
linux centos7 测试端口的连通性, 分别测试TCP端口与UDP端口
为平江等地区用户提供了全套网页设计制作服务,及平江网站建设行业解决方案。主营业务为做网站、网站设计、平江网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
安装nc命令
一、nc命令检测端口的用法
1 这个需要Linux服务器里边支持nc命令,检查NC 是否安装
2 安装nc
3 探测端口
错误信息如下
百度了半天没一个结果, google了一下就有结果了, 经测试成功.
4 原因分析:
-z参数原为扫描目标port是否打开, TCP三次握手成功则ok
但CentOS7新版的nc命令已取消了-z, 需输入重定向 /dev/null 才能成功
5 探测 udp: 通过 nc -h 可以看出,只需要加个 -u 即可。
更多高级应用参考:
场景一:了解系统开放的端口,和正在使用的端口,在各种情况下都会有所帮助。
比如:如果你的服务器正在运行着 Nginx,那么其端口应该为80或者443,可以检查一下。再比如你可以检查一下 SMTP、SSH或者其他服务用的是哪个端口。当有新的服务需要开放端口的时候,你需要知道目前已经被占用的,都有哪些端口。
此外,可以检查一下是否有开放的可用于入侵检测的端口。
Linux 中有多种检查端口的方法,本文将介绍两种。
使用 lsof 检查当前系统开放的端口
不管你是直接登录的系统,还是使用 ssh 连接的,都可以使用 lsof 命令来检查端口:
该命令用于查找用户使用的文件和进程。上述命令中的选项,包括:
但是,这也会展示许多计算机并没有监听的其他端口。
我们可以通过管道将此输出传输到 grep,并匹配模式 “LISTEN”,如下所示:
这样就只显示计算机正在监听的,以及正在运行的服务器所占用的端口。
使用 netcat 命令检查远程服务器上的端口
nc(Netcat) 是一个命令行实用程序,使用TCP和UDP协议在网络计算机之间读取和写入数据。
以下是nc命令的语法:
这个工具有一个很实用的 -z 选项,它会让 nc 命令扫描正在监听的守护进程,但是不会向端口发送任何数据。
将其与 -v 选项结合,启动详细信息,会有详细信息的输出。
losf与nc的不同点:
lsof命令简介
lsof 命令用于显示 Linux 系统当前已打开的所有文件列表。查看进程或系统打开的文件会给调试带来极大的帮助。下面简单地介绍 lsof 常使用的功能。
lsof (list open files)命令用于查看你进程打开的文件,打开文件的进程,进程打开的端口(TCP、UDP),还可以用于找回/恢复被删除的文件。lsof 命令需要访问核心内存和各种文件,所以需要具备 root 超级管理员权限的用户才能执行此命令。
linux的nc命令,NetCat,在网络工具中有“瑞士军刀”美誉“,是解决这个问题的工具。 nc命令安装: yum install nc
以上是看来一些文章的总结分享内容,欢迎补充讨论。
用yum进行安装,若安装旧版本的可能会有些命令参数无法正常使用
nc -z -v -n 192.168.137.2 1-100 扫描192.168.137.2地址1-100的端口号
可以运行在TCP或者UDP模式,默认是TCP,-u参数调整为udp
z 参数告诉netcat使用0 IO,连接成功后立即关闭连接,不进行数据交换
v 参数指使用冗余选项
n 参数告诉netcat不要使用DNS反向查询IP地址的域名
nc -v 192.168.137.2 22
连接该地址开放的22端口,并且打印运行在这个端口上服务的banner信息
现有两台服务器:192.168.137.2和192.168.137.10,分别命名为A和B
使A和B可以互相聊天
A nc -n -l -u -p 1000
B nc -n -u 192.168.137.2 1000
-u参数调整为udp
-l 表示在服务器端启用监听模式
-n 不做域名解析
-p 指定监听的端口
这时A和B两台服务器便可在命令行进行聊天
使A和B之间相互传输单个文件
A nc -l 2000 file.txt 在A中开一个2000端口并进行监听,将写入的内容放到本地命名为file.txt
B nc 192.168.137.2 2000 file.txt 将B中file.txt传送到Aip的2000端口
在A与B之间互传文件夹
在A中/root/下创建ceshi目录,并在ceshi下创建test.txt
A tar -cvf - ceshi |nc -l 1000
B nc 192.168.137.2 1000 |tar -xvf -
这时发现在B中已经有了A传送过去的ceshi目录
=======================================================================
A:192.168.0.131(接收方) B:192.168.0.10(发送方)
本次打算用3333端口传送数据,在操作前先确保两台服务器的防火墙不会禁止3333端口
先在A上操作:进入要接收数据的目录下
while true
do
nc -l 3333|tar -xvf -
done
这时在看该机器3333端口已打开
再去B上操作:进入要传送的目录下
tar -cvf - 文件/目录名 |nc 192.168.0.131 3333
这时两台机器间便开始传送数据
nc是网络界的“瑞士军刀”
nc可以提供如下的网络功能:
1)
监听特定端口,这时候nc就可以作为一个服务器,但是我发现这样使用nc生成的服务器仅仅是一个echo服务器而已,没有其他更加强大的功能.
2)
连接特定端口,这时候nc就成为了一个客户端,同样的,也是一个简单的客户端,只能起echo的作用.
3)
扫描端口,这可以作为查询某个机器上是否开启了某个端口.
几个具体的使用例子
例子1:
使用nc打开linux下的特定端口
nc -lp
23 (即telnet)
netstat -an|grep 23
(查看端口是否正常打开)
例子2:
使用nc进行文件传输,命令
ssh root@ “( nc -l
10003 destination 2/dev/null )” cat source | nc
10003
前边ssh登录到远程主机上,用nc命令打开本地的10003端口,成为后台进程
后边,在本地机器上打开source文件,并将其重定向到的10003号端口,也就是让远程主机10003号端口接收source文件
例子3:
使用nc扫描linux下的特定端口
nc
-v -z host.example.com
70-80
扫描端口(70到80),可指定范围。-v输出详细信息。
例子4:
克隆硬盘或分区
类似于例子2,只需要由dd获得硬盘或分区的数据,然后传输即可。
克隆硬盘或分区的操作,不应在已经mount的的系统上进行。所以,需要使用安装光盘引导后,进入拯救模式(或使用Knoppix工具光盘)启动系统后
server1上执行:#
nc -l -p 1234 | dd
of=/dev/sda
server1上执行1234号端口监听,将得到的文件保存到/dev/sda上
server2上执行:# dd
if=/dev/sda | nc server1 1234
例子5:
保存Web页面
while true; do nc -l -p 80
-q 1 somepage.html; done
例子6:
模拟HTTP Headers
[root@hatest1 ~]# nc
80
GET / HTTP/1.1
Host: ispconfig.org
Referrer:
mypage.com
User-Agent: my-browser
在nc命令后,输入红色部分的内容,然后按两次回车,即可从对方获得HTTP
Headers内容。
例子7:
聊天
server1上监听1234端口[root@hatest2 tmp]# nc -lp
1234
server2上向server1的1234端口发送消息[root@hatest1 ~]# nc server1
1234
这样,双方就可以相互交流了。使用Ctrl+D正常退出。
更多的使用,查看man手册
nc example.host port
打开与example.host主机的port的一个TCP链接.如果链接失败,不显示任何错误信息,仅仅退出
nc -p 31337 -w 5
example.host 42 打开与example。host主机的42号端口的一个TCP链接。用31337作为源端口,超时链接时间为5秒
nc -u
example.host 53 指定协议为udp协议