在讨论这个问题前,我们先来了解一下物理端口、逻辑端口、端口号等计算机概念。

端口相关的概念:

在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型。物理端口指的是物理存在的端口,如ADSL Modem、集线器、交换机、路由器上用 于连接其他网络设备的接口,如RJ-45端口、SC端口等等。逻辑端口是指逻辑意义上用于区分服务的端口,如TCP/IP协议中的服务端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等。由于物理端口和逻辑端口数量较多,为了对端口进行区分,将每个端口进行了编号,这就是端口号

端口按端口号可以分为3大类:

1:公认端口(Well Known Port)

公认端口号从0到1023,它们紧密绑定与一些常见服务,例如FTP服务使用端口21,你在 /etc/services 里面可以看到这种映射关系。

2:注册端口(Registered Ports):

从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的.

3: 动态或私有端口(Dynamic and/or Private Ports)

动态端口,即私人端口号(private port numbers),是可用于任意软件与任何其他的软件通信的端口数,使用因特网的传输控制协议,或用户传输协议。动态端口一般从49152到65535

Linux中有限定端口的使用范围,如果我要为我的程序预留某些端口,那么我需要控制这个端口范围。/proc/sys/net/ipv4/ip_local_port_range定义了本地TCP/UDP的端口范围,你可以在/etc/sysctl.conf里面定义net.ipv4.ip_local_port_range = 1024 65000

[root@localhost ~]# cat /proc/sys/net/ipv4/ip_local_port_range32768 61000[root@localhost~]# echo 1024 65535 > /proc/sys/net/ipv4/ip_local_port_range

关于端口和服务,我曾经拿公共厕所打比方,公共厕所里的每一个厕所就好比系统的每一个端口,为人解决方便就是所谓的服务,你提供了这些服务,那么就必须开放端口(厕所),当有人上厕所时,就是在这些端口建立了链接。如果那个厕所被人占用了,就表示端口号被服务占用了,如果有一天这里不提供公共厕所服务了,这个公共厕所被拆除了,自然也就没有了端口号了。其实更形象的例子,就好比银行大堂,端口号是那些柜台,而那些取号办理业务的人就好比链接到服务器的各种客户端。他们通过端口重定向技术与柜台发送业务联系。再举一个通俗易懂的例子,端口号,好比高铁线上的每个站点,例如,长沙、岳阳等分别代表一个端口号,旅客通过火车票到各自的站点,就好比各个应用程序发往服务器端口的IP包。

端口与服务的关系

端口有什么用呢?我们知道,一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务、SMTP服务等,这些服务完全可以通过1个IP地址来实现。那么,主机是怎样区分不同的网络服务呢?显然不能只靠IP地址,因为IP 地址与网络服务的关系是一对多的关系。实际上是通过“IP地址+端口号”来区分不同的服务的。

端口号与相应服务的对应关系存放在/etc/services文件中,这个文件中可以找到大部分端口。

如何检查端口是否开放,其实不整理,还不知道有这么多方法!

1:nmap工具检测开放端口

nmap是一款网络扫描和主机检测的工具。nmap的安装非常简单,如下所示rpm安装所示。

[root@DB-Server Server]# rpm -ivh nmap-4.11-1.1.x86_64.rpm

warning: nmap-4.11-1.1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 37017186Preparing... ########################################### [100%]1:nmap ########################################### [100%]

[root@DB-Server Server]# rpm -ivh nmap-frontend-4.11-1.1.x86_64.rpm

warning: nmap-frontend-4.11-1.1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 37017186Preparing... ########################################### [100%]1:nmap-frontend ########################################### [100%]

[root@DB-Server Server]#

关于nmap的使用,都可以长篇大写特写,这里不做展开。如下所示,nmap 127.0.0.1 查看本机开放的端口,会扫描所有端口。 当然也可以扫描其它服务器端口。

[root@DB-Server Server]# nmap 127.0.0.1Starting Nmap4.11 ( http://www.insecure.org/nmap/ ) at 2016-06-22 15:46 CST

Interesting ports on localhost.localdomain (127.0.0.1):

Not shown:1674closed ports

PORT STATE SERVICE22/tcp open ssh

25/tcp open smtp111/tcp open rpcbind631/tcp open ipp1011/tcp open unknown3306/tcp open mysql

Nmap finished:1 IP address (1 host up) scanned in 0.089seconds

You have new mailin /var/spool/mail/root

[root@DB-Server Server]#

2:netstat 工具检测开放端口

[root@DB-Server Server]# netstat -anlp | grep :3306tcp0 0 :::3306 :::* LISTEN 7358/mysqld

[root@DB-Server Server]# netstat -anlp | grep :22tcp0 0 :::22 :::* LISTEN 4020/sshd

tcp0 52 ::ffff:192.168.42.128:22 ::ffff:192.168.42.1:43561 ESTABLISHED 6198/2[root@DB-Server Server]#

如上所示,这个工具感觉没有nmap简洁明了。当然也确实没有nmap功能强大。

3:lsof 工具检测开放端口

[root@DB-Server Server]# service mysql start

Starting MySQL......[ OK ]

[root@DB-Server Server]# lsof -i:3306COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

mysqld7860 mysql 15u IPv6 44714 TCP *:mysql (LISTEN)

[root@DB-Server Server]# service mysql stop

Shutting down MySQL..[ OK ]

[root@DB-Server Server]# lsof -i:3306[root@DB-Server Server]#

[root@DB-Server Server]# lsof -i TCP| fgrepLISTEN

cupsd3153 root 4u IPv4 9115TCP localhost.localdomain:ipp (LISTEN)

portmap3761 rpc 4u IPv4 10284 TCP *:sunrpc (LISTEN)

rpc.statd3797 rpcuser 7u IPv4 10489 TCP *:1011(LISTEN)

sshd4020 root 3u IPv6 12791 TCP *:ssh(LISTEN)

sendmail4042 root 4u IPv4 12876 TCP localhost.localdomain:smtp (LISTEN)

4: 使用telnet检测端口是否开放

服务器端口即使处于监听状态,但是防火墙iptables屏蔽了该端口,是无法通过该方法检测端口是否开放的。

5:netcat工具检测端口是否开放。

[root@DB-Server ~]# nc -vv 192.168.42.128 1521Connection to192.168.42.128 1521 port [tcp/ncube-lm] succeeded![root@DB-Server ~]# nc -z 192.168.42.128 1521; echo $?Connection to192.168.42.128 1521 port [tcp/ncube-lm] succeeded!

0[root@DB-Server ~]# nc -vv 192.168.42.128 1433nc: connect to192.168.42.128 port 1433 (tcp) failed: No route to host

关闭端口和开放端口

关闭端口和开放端口应该是两种不同的概念,每个端口都有对应的服务,因此要关闭端口,只要关闭相应的服务就可以了。像下面例子,开启了MySQL服务,端口3306处于监听状态,关闭MySQL服务后,端口3306自然被关闭了

[root@DB-Server Server]# service mysql start

Starting MySQL......[ OK ]

[root@DB-Server Server]# lsof -i:3306COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

mysqld7860 mysql 15u IPv6 44714 TCP *:mysql (LISTEN)

[root@DB-Server Server]# service mysql stop

Shutting down MySQL..[ OK ]

[root@DB-Server Server]# lsof -i:3306[root@DB-Server Server]#

所以,系统里面有些不必要的端口和服务,从安全考虑或资源节省角度,都应该关闭那些不必要的服务。关闭对应的端口。另外,即使服务开启,但是防火墙对对应的端口进行了限制,这样端口也不能被访问,但端口本身并没有关闭,只是端口被屏蔽了。

mysql查看端口是否打开_linux查看端口是否开放相关推荐

  1. linux 查看端口占用总数_Linux查看某个端口的连接数

    一.查看哪些IP连接本机 netstat -an 二.查看TCP连接数 1)统计80端口连接数 netstat -nat | grep -i "80"| wc -l 2)统计htt ...

  2. Android如何查看UDP端口,udp端口如何打开?UDP端口测试介绍

    平时看似非常简单的计算机功能,却不知其中含有多少方面的程序协助.说到udp相信大家都不了解它是什么,有什么作用,其实简单的说,udp就是一个传输数据过程中的一个通道,也就是说我们平时通过qq或者其他软 ...

  3. linux 查看网络流量来源_Linux查看网络流量

    作为一个非职业运维,不时需要查看Linux服务器上的网络流量状况.本文介绍几个常用的Linux查看网络流量命令,并简要介绍其用法.部分命令系统已经内置,某些命令则需要从软件仓库或者自行编译安装,本文以 ...

  4. 服务器操作系统端口怎么开的,服务器端口怎么打开_系统端口安全配置

    服务器端口怎么打开服务器端口怎么打开 方法方法 步骤步骤 1 1 首先在右下角电脑连接右键打开网络连接设置 2 2 选择一个正常使用的网络连接右键属性 3 3 打开本地连接属性后看到高级选项 4 4 ...

  5. linux ssh端口是否打开,如何查看linux中的ssh端口开启状态

    linux系统中查看系统位数(转载) 查看系统多少位网上很多种说话   ### getconf WORD_BIT 错误的 这3个是对的        getconf LONG_BIT    echo ...

  6. mysql 查看内核版本命令_Linux查看版本命令问题

    展开全部 linux 查看版本62616964757a686964616fe4b893e5b19e31333433626462命令 git版本 git --version git version 1. ...

  7. linux怎么看mysql地址端口通不通_linux 测试端口通不通(四种方法)

    针对Linux系统:有1.2.3.4四种方法 针对Windows系统:有2.5两种通用方法 一般情况下使用"telnet ip port"判断端口通不通,其实测试方法不止这一种,还 ...

  8. mysql可执行程序在什么路径_Linux查看可执行程序所在路径

    提高 ASP.NET Web 应用性能的 24 种方法和技巧 那性能问题到底该如何解决?以下是应用系统发布前,作为 .NET 开发人员需要检查的点. 1.debug=「false」 当创建 ASP.N ...

  9. linux查看wifi信号命令_Linux查看WiFi SSID密码的方法

    无论在什么操作系统中,都可能会涉及到WiFi信号的接入,然后系统就会把用户输入的WiFi密码记录起来,在Linux查看WiFi SSID密码比起Windows系统中要方便很多,其实也就是一条命令的事. ...

最新文章

  1. python 取list 里面最大的数或者最小数
  2. Java系列 – 用Java8新特性进行Java开发太爽了(续)
  3. 跟着“路线图”,我们一起遨游机器学习的世界!
  4. 解决写入InfluxDB时,报unbalanced quotes的问题
  5. linux ssh -R 代理不同内网主机互连
  6. vim查看cmd打印的trick
  7. C#鼠标右键弹出菜单
  8. oCPC:计算广告出价策略
  9. SQL Server 数据库部分常用语句小结
  10. 【渝粤题库】国家开放大学2021春2097民法学(1)题目
  11. 6大分布式定时任务对比
  12. 信息奥赛一本通(1310:【例2.2】车厢重组)
  13. WebGIS——Openlayers加载图层
  14. Python的安装(源码编译安装,IDE安装)
  15. JavaScript文档对象模型DOM节点概述(1)
  16. git学习 远程仓库02
  17. python中字典的常用函数_Python字典(Dict)详解 - 常用函数详解
  18. esp ghost引导_UEFI+GPT裸机装GHOST版Windows系统ESP分区引导模块
  19. Kotlin版本的新闻类APP 简闻
  20. 2022卡塔尔世界杯。CSDN世界杯勋章来啦

热门文章

  1. MySQL锁机制全面解析
  2. Bluetooth L2CAP
  3. 联通“三不”设门槛,移动“三不”争用户
  4. MySQL导出忽略指定表,mysqldump备份数据库时忽略某个或多个表
  5. Docker19版部署及基本操作
  6. pandas之多重影分身
  7. system.badimageformatexception 未能加载文件或程序集
  8. Python爬取煎蛋网的妹子图
  9. Python 读取excel文件中的数据并转换为字典
  10. noVNC 安装、配置与使用