详解Linux服务器最多能开放多少个端⼝
⽬录
端⼝相关的概念:
端⼝与服务的关系
1:nmap⼯具检测开放端⼝
2:netstat ⼯具检测开放端⼝
3:lsof ⼯具检测开放端⼝
4:ss ⼯具检测开放端⼝
5:使⽤telnet检测端⼝是否开放
6:netcat⼯具检测端⼝是否开放
关闭端⼝和开放端⼝
端⼝相关的概念:
在⽹络技术中,端⼝(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的端⼝范围,你可以在/f⾥⾯定义
net.ipv4.ip_local_port_range = 1024 65000
[root@localhost ~]# cat /proc/sys/net/ipv4/ip_local_port_range
32768 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 37017186
< >>>>>>>>### [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 37017186
< >>>>>>>>### [100%]
1:nmap-frontend >>>>>>>>### [100%]
关于nmap的使⽤,都可以长篇⼤写特写,这⾥不做展开。如下所⽰,nmap 127.0.0.1 查看本机开放的端⼝,会扫描所有端⼝。当然也可以扫描其它服务器端⼝。
[root@DB-Server Server]# nmap 127.0.0.1
telnet ip 端口号Starting Nmap 4.11 ( /nmap/ ) at 2016-06-22 15:46 CST
Interesting ports on localhost.localdomain (127.0.0.1):
Not shown: 1674 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
111/tcp open rpcbind
631/tcp open ipp
1011/tcp open unknown
3306/tcp open mysql
Nmap finished: 1 IP address (1 host up) scanned in 0.089 seconds
You have new mail in /var/spool/mail/root
[root@DB-Server Server]#
2:netstat ⼯具检测开放端⼝
[root@DB-Server Server]# netstat -anlp | grep 3306
tcp 0 0 :::3306 :::* LISTEN 7358/mysqld
[root@DB-Server Server]# netstat -anlp | grep 22
tcp 0 0 :::22 :::* LISTEN 4020/sshd
tcp 0 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
[ OK ]
[root@DB-Server Server]# lsof -i:3306
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
mysqld 7860 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| fgrep LISTEN
cupsd 3153 root 4u IPv4 9115 TCP localhost.localdomain:ipp (LISTEN)
portmap 3761 rpc 4u IPv4 10284 TCP *:sunrpc (LISTEN)
rpc.statd 3797 rpcuser 7u IPv4 10489 TCP *:1011 (LISTEN)
sshd 4020 root 3u IPv6 12791 TCP *:ssh (LISTEN)
sendmail 4042 root 4u IPv4 12876 TCP localhost.localdomain:smtp (LISTEN)
4:ss ⼯具检测开放端⼝
[root@localhost ~]# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 50 *:3306 *:*
LISTEN 0 128 *:111 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 32 *:8808 *:*
LISTEN 0 128 [::]:111 [::]:*
LISTEN 0 128 [::]:22 [::]:*
[root@localhost ~]#
5:使⽤telnet检测端⼝是否开放
服务器端⼝即使处于监听状态,但是防⽕墙iptables屏蔽了该端⼝,是⽆法通过该⽅法检测端⼝是否开放的。
6:netcat⼯具检测端⼝是否开放
[root@DB-Server ~]# nc -vv 192.168.42.128 1521
Connection to 192.168.42.128 1521 port [tcp/ncube-lm] succeeded!
[root@DB-Server ~]# nc -z 192.168.42.128 1521; echo $?
Connection to 192.168.42.128 1521 port [tcp/ncube-lm] succeeded!
[root@DB-Server ~]# nc -vv 192.168.42.128 1433
nc: connect to 192.168.42.128 port 1433 (tcp) failed: No route to host
关闭端⼝和开放端⼝
关闭端⼝和开放端⼝应该是两种不同的概念,每个端⼝都有对应的服务,因此要关闭端⼝,只要关闭相应的服务就可以了。像下⾯例⼦,开启了MySQL服务,端⼝3306处于监听状态,关闭MySQL服务后,端⼝3306⾃然被关闭了
[root@DB-Server Server]# service mysql start
[ OK ]
[root@DB-Server Server]# lsof -i:3306
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
mysqld 7860 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]#
所以,系统⾥⾯有些不必要的端⼝和服务,从安全考虑或资源节省⾓度,都应该关闭那些不必要的服务。关闭对应的端⼝。另外,即使服务开启,但是防⽕墙对对应的端⼝进⾏了限制,这样端⼝也不能被访问,但端⼝本⾝并没有关闭,只是端⼝被屏蔽了。
到此这篇关于详解Linux服务器最多能开放多少个端⼝的⽂章就介绍到这了,更多相关Linux服务器开放端⼝内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
TCP-IP练习题(有答案)..
« 上一篇
计算机网络基础知识测试 (14)
下一篇 »
推荐文章
热门文章
-
随机森林特征选择原理
2024-10-02 -
自动驾驶系统中的随机森林算法解析
2024-10-02 -
随机森林算法及其在生物信息学中的应用
2024-10-02 -
监督学习中的随机森林算法解析(六)
2024-10-02 -
随机森林算法在数据分析中的应用
2024-10-02 -
机器学习——随机森林,RandomForestClassifier参数含义详解
2024-10-02 -
随机森林 的算法
2024-10-02 -
随机森林算法作用
2024-10-02 -
监督学习中的随机森林算法解析(十)
2024-10-02 -
随机森林算法案例
2024-10-02 -
随机森林案例
2024-10-02 -
二分类问题常用的模型
2024-10-02 -
绘制ssd框架训练流程
2024-10-02 -
一种基于信息熵和DTW的多维时间序列相似性度量算法
2024-10-02 -
SVM训练过程范文
2024-10-02 -
如何使用支持向量机进行股票预测与交易分析
2024-10-02 -
二分类交叉熵损失函数binary
2024-10-02 -
tinybert_训练中文文本分类模型_概述说明
2024-10-02 -
基于门控可形变卷积和分层Transformer的图像修复模型及其应用
2024-10-02 -
人工智能开发技术的测试和评估方法
2024-10-02
最新文章
-
基于随机森林的数据分类算法改进
2024-10-02 -
人工智能中的智能识别与分类技术
2024-10-02 -
基于人工智能技术的随机森林算法在医疗数据挖掘中的应用
2024-10-02 -
随机森林回归模型的建模步骤
2024-10-02 -
r语言随机森林预测模型校准曲线
2024-10-02 -
《2024年随机森林算法优化研究》范文
2024-10-02
发表评论