您当前的位置:首页 > 电脑百科 > 网络技术 > 网络技术

手把手教你 3 个 Linux 中快速检测端口的小技巧

时间:2020-03-13 14:10:40  来源:  作者:

无论是要解决网络连接问题还是配置防火墙,第一件事是要检查系统实际打开了哪些端口。

本文介绍了几种快速查找 linux 系统上哪些端口向外部开放的方法。

什么是开放端口

监听端口是应用程序监听的网络端口。你要得到的监听端口名单通常可以通过如 ss 、 netstat 或 lsof 命令查询系统上网络堆栈。每个监听端口都可以使用防火墙打开或关闭(过滤)。

一般而言,开放端口是一个网络端口,它接受来自远程位置的传入数据包。

例如:如果你正在运行的监听端口 80、443 的 Web 服务器,并把这些端口在防火墙上对任何人开放。使用浏览器将能够访问托管在 Web 服务器上的网站。在这种情况下,80 和 443 都是开放端口。

开放端口可能会带来安全风险,因为攻击者可以使用每个开放端口来利用漏洞或执行任何其他类型的攻击。您应该只公开应用程序功能所需的端口,然后关闭所有其他端口。

使用 Nmap 命令检查开放端口

Nmap 是功能强大的网络扫描工具,可以扫描单个主机和大型网络。它主要用于安全审核和渗透测试。

Nmap 是端口扫描的首选工具。除端口扫描外,Nmap 还可以检测 mac 地址、操作系统类型、内核版本等。

从控制台发出以下命令确定哪些端口正在监听来自网络的 TCP 连接:

$ sudo nmap -sT -p- 10.10.8.8

-sT 选项告诉 Nmap 扫描 TCP 端口, -p- 扫描所有端口(65535 个)。如果不使用 -p- , Nmap 将仅扫描 1000 个端口。

Starting Nmap 7.60 ( https://nmap.org ) at 2019-07-09 23:10 CEST Nmap scan report for 10.10.8.8 Host is up (0.0012s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http MAC Address: 08:00:27:05:49:23 (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.41 seconds

以上显示,只有端口 22、80 以及 8069 在目标系统上打开。

要扫描 UDP 端口,请使用 -sU 代替 -sT :

$ sudo nmap -sU -p- 10.10.8.8

有关更多信息,请访问 Nmap 手册页,并了解此工具的所有其他强大功能。

使用 Netcat 命令检查开放端口

Netcat(或nc)是一种命令行工具,可以使用 TCP 或 UDP 协议跨网络连接读取和写入数据。

使用 netcat 可以扫描单个端口或端口范围。

例如,要扫描 IP 地址为 10.10.8.8 的远程计算机上 端口范围为20-80 之间打开的 TCP 端口,你可以使用以下命令:

$ nc -z -v 10.10.8.8 20-80

-z 选项指示 nc 仅扫描打开的端口,而不发送任何数据,并且 -v 用于获取更多详细信息。

输出将如下所示:

​​​​​​​nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refusednc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refusedConnection to 10.10.8.8 22 port [tcp/ssh] succeeded!...Connection to 10.10.8.8 80 port [tcp/http] succeeded!

如果只希望将以上开放端口的行打印在屏幕上,则可以使用 grep 命令过滤结果。

​​​​​​​$nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded Connection to 10.10.8.8 22 port [tcp/ssh] succeeded!Connection to 10.10.8.8 80 port [tcp/http] succeeded!

要扫描 UDP 端口,请将 -u 选项传递给 nc 命令:

$ nc -z -v -u 10.10.8.8 20-80 2>&1 | grep succeeded

使用 Bash 伪设备检查打开的端口

检查某个端口是打开还是关闭的另一种方法是使用 Bash Shell 检查 /dev/tcp/.. 或 /dev/udp/.. 下的伪设备。

在 /dev/$PROTOCOL/$HOST/$IP 伪设备上执行命令时, Bash 将在指定端口上打开到指定主机的 TCP 或 UDP 连接。

以下 if..else 语句将检查端口 443 在 kernel.org 是否 打开:

​​​​​​​if timeout 5 bash -c '</dev/tcp/kernel.org/443 &>/dev/null'thenecho "Port is open"elseecho "Port is closed"fi

输出将如下所示:

Port is open

上面的代码如何工作?

使用伪设备连接到端口时的默认超时时间非常长,因此我们使用 timeout 命令在 5 秒后终止测试命令。如果建立了 kernel.org 端口连接,则 443 测试命令将返回 true。你也可以使用 for 循环来检查指定的端口范围:

​​​​​​​for PORT in {20..80}; dotimeout 1 bash -c "</dev/tcp/10.10.8.8/$PORT &>/dev/null" && echo "port $PORT is open"done

输出将如下所示:

​​​​​​​port 22 is openport 80 is open

结论

我们为你展示了几种如何使用扫描开放端口的工具,当然你也可以使用其它工具来达到同样的目的,例如: Python Socket 模块、 Curl 、 Telnet 或 Wget 。

本文翻译自:「Linuxize」,原文:https://url.cn/5t61HyI,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。



Tags:检测端口   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
无论是要解决网络连接问题还是配置防火墙,第一件事是要检查系统实际打开了哪些端口。本文介绍了几种快速查找 Linux 系统上哪些端口向外部开放的方法。什么是开放端口监听端...【详细内容】
2020-03-13  Tags: 检测端口  点击:(66)  评论:(0)  加入收藏
▌简易百科推荐
写一个shell获取本机ip地址、网关地址以及dns信息。经常会遇到取本机ip、网关、dns地址,windows一个命令ipconfig /all全部获取到,但linux系统却并非如此。linux系统都自带ifc...【详细内容】
2021-12-27  K佬食古    Tags:shell   点击:(2)  评论:(0)  加入收藏
步骤1、配置 /etc/sysconfig/network-scripts/ifcfg-eth0 里的文件。it动力的CentOS下的ifcfg-eth0的配置详情:[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifc...【详细内容】
2021-12-24  忆梦如风    Tags:网卡   点击:(10)  评论:(0)  加入收藏
1、查找当前目录下所有以.tar结尾的文件然后移动到指定目录find . -name “*.tar” -execmv {}./backup/ ;注解:find &ndash;name 主要用于查找某个文件名字,-exec 、xargs可...【详细内容】
2021-12-17  郭主任    Tags:运维   点击:(20)  评论:(0)  加入收藏
对于经常上网的朋友来说,除了手机购物上网,pc端玩网页游戏还是很多小伙伴首选的,但是有时候明明宽带链接上了,打开浏览器却出现上不了网的现象,下面小编要来跟大家说说电脑有网络...【详细内容】
2021-12-16  小白系统    Tags:网页无法打开   点击:(28)  评论:(0)  加入收藏
在访问像github、gitlab这样的外国网站时,很有可能会出现页面加载不出来或找不到页面的错误。这时候有的朋友就会以为是网络的问题,于是把Wifi断掉连上自己手机的热点,结果却还...【详细内容】
2021-12-15  启施技术IT狼叔    Tags:外网   点击:(16)  评论:(0)  加入收藏
网络地址来源:获取公网IP地址 https://ipip.yy.com/get_ip_info.phphttp://pv.sohu.com/cityjson?ie=utf-8http://www.ip168.com/json.do?view=myipaddress...【详细内容】
2021-12-15  韦廷华12    Tags:外网ip   点击:(15)  评论:(0)  加入收藏
准备好软件IPOP、用ENSP模拟一下华为交换机 启动交换机 <Huawei>sysEnter system view, return user view with Ctrl+Z.[Huawei]sysname FTPClient[FTPClient]interface vla...【详细内容】
2021-12-15  思源Edward    Tags:交换机   点击:(24)  评论:(0)  加入收藏
我们经常用到netstat命令查看主机连接状况,包括连接ip、端口、状态等,今天就练习下shell分析netsat结果。描述假设netstat命令运行的结果我们存储在nowcoder.txt里,格式如下:Pro...【详细内容】
2021-12-14  K佬食古    Tags:netstat   点击:(19)  评论:(0)  加入收藏
什么是滑动窗口?窗口是操作系统开辟的一块缓存空间,发送方在收到接收方ACK应答之前,必须在缓冲区保留已发送的数据,如果按期收到确认应答,数据就可以从缓冲区移除。什么是滑动窗...【详细内容】
2021-12-14  DifferentJava    Tags:TCP   点击:(30)  评论:(0)  加入收藏
概述日常管理华为路由设备过程中,难为会忘记设备登录密码,那么该如何重置设备登录密码吗?本期文章将全面向各位小伙伴总结分享。重置华为设备登录密码思路先行 采用console登录...【详细内容】
2021-12-10  onme0    Tags:   点击:(27)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条