【Linux】端口分类


什么是端口?
     可以这样说:端口是计算机与外部通信的途径,没有它,计算机便又聋又哑。

     在网络技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如RJ-45端口、SC端口等等。二是逻辑意义上的端口,一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。我们这里将要介绍的就是逻辑意义上的端口。

     那么TCP/IP协议中的端口指的是什么呢?如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口 可以有65536个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535。

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

     需要注意的是,端口并不是一一对应的。比如你的电脑作为客户机访 问一台WWW服务器时,WWW服务器使用“80”端口与你的电脑通信,但你的电脑则 可能使用“3457”这样的端口。


     按对应的协议类型,端口有两种:TCP端口和UDP端口。由于TCP和UDP 两个协议是独立的,因此各自的端口号也相互独立,比如TCP有235端口,UDP也 可以有235端口,两者并不冲突。

端口如何分配?

与IP地址一样,端口号也不是随意使用的,而是按照一定的规定进行分配。端口的分类标准有好几种。

按端口号划分
(1)周知端口(Well Known Ports)
     周知端口是众所周知的端口号,范围从0到1023,其中80端口分配给WWW服务,21端口分配给FTP服务等。我们在IE的地址栏里输入一个网址的时候( 比如www.cce.com.cn)是不必指定端口号的,因为在默认情况下WWW服务的端口号是“80”。
     网络服务是可以使用其他端口号的,如果不是默认的端口号则应该在地址栏上指定端口号,方法是在地址后面加上冒号“:”(半角),再加上端口号。比如使用“8080”作为WWW服务的端口,则需要在地址栏里输入“www.gonet8.com gonet8.com:8080”。
但是有些系统协议使用固定的端口号,它是不能被改变的,比如139 端口专门用于NetBIOS与TCP/IP之间的通信,不能手动改变。

(2)注册端口(Registered Ports)
     从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。这些端口多数没有明确的定义服务对象,不同程序可根据实际需要自己定义,如远程控制软件和木马程序中都会有这些端口的定义的。记住这些常见的程序端口在木马程序的防护和查杀上是非常有必要的。

(3)动态端口(Dynamic Ports)
     动态端口的范围是从1024到65535。之所以称为动态端口,是因为它 一般不固定分配某种服务,而是动态分配。动态分配是指当一个系统进程或应用程序进程需要网络通信时,它向主机申请一个端口,主机从可用的端口号中分配 一个供它使用。当这个进程关闭时,同时也就释放了所占用的端口号。



按协议类型划分

按协议类型划分,可以分为TCP、UDP、IP和ICMP(Internet控制消息协议)等端口。下面主要介绍TCP和UDP端口:
(1)TCP端口

     TCP端口,即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。常见的包括FTP服务的21端口,Telnet服务的23端口,SMTP服务的25端口,以及HTTP服务的80端口等等。

(2)UDP端口

     UDP端口,即用户数据包协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。常见的有DNS服务的53端口,SNMP(简单网络管理协议)服务的161端口,QQ使用的8000和4000端口等等。


保留端口:

UNIX有保留端口号的概念,只有超级用户特权的进程才允许给它自己分配一个保留端口号。这些端口号介于1~1023之间,一些应用程序将它作为客户与服务器认证的一部分。

网络服务中常用的端口


如下:
用端口对照
端口:0
服务:Reserved
说明:通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用通常的闭合端口连接它时将产生不同的结果。一种典型的扫描,使用IP地址为0.0.0.0,设置ACK位并在以太网层广播。
端口:1
服务:tcpmux
说明:这显示有人在寻找SGI Irix机器。Irix是实现tcpmux的主要提供者,默认情况下tcpmux在这种系统中被打开。Irix机器在发布是含有几个默认的无密码的帐户,如:IP、GUEST UUCP、NUUCP、DEMOS 、TUTOR、DIAG、OUTOFBOX等。许多管理员在安装后忘记删除这些帐户。因此HACKER在INTERNET上搜索tcpmux并利用这些帐户。
端口:7
服务:Echo
说明:能看到许多人搜索Fraggle放大器时,发送到X.X.X.0和X.X.X.255的信息。
端口:19
服务:Character Generator
说明:这是一种仅仅发送字符的服务。UDP版本将会在收到UDP包后回应含有垃圾字符的包。TCP连接时会发送含有垃圾字符的数据流直到连接关闭。HACKER利用IP欺骗可以发动DoS攻击。伪造两个chargen服务器之间的UDP包。同样Fraggle DoS攻击向目标地址的这个端口广播一个带有伪造受害者IP的数据包,受害者为了回应这些数据而过载。
端口:20、21
服务:FTP
说明:FTP服务器所开放的端口,用于上传、下载。最常见的攻击者用于寻找打开anonymous的FTP服务器的方法。这些服务器带有可读写的目录。木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口。
端口:22
服务:Ssh
说明:PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点,如果配置成特定的模式,许多使用RSAREF库的版本就会有不少的漏洞存在。
端口:23
服务:Telnet
说明:远程登录,入侵者在搜索远程登录UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术,入侵者也会找到密码。木马Tiny Telnet Server就开放这个端口。
端口:25
服务:SMTP
说明:SMTP服务器所开放的端口,用于发送邮件。入侵者寻找SMTP服务器是为了传递他们的SPAM。入侵者的帐户被关闭,他们需要连接到高带宽的E-MAIL服务器上,将简单的信息传递到不同的地址。木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口。
端口:31
服务:MSG Authentication
说明:木马Master Paradise、Hackers Paradise开放此端口。
端口:42
服务:WINS Replication
说明:WINS复制
端口:53
服务:Domain Name Server(DNS)
说明:DNS服务器所开放的端口,入侵者可能是试图进行区域传递(TCP),欺骗DNS(UDP)或隐藏其他的通信。因此防火墙常常过滤或记录此端口。
端口:67
服务:Bootstrap Protocol Server
说明:通过DSL和Cable modem的防火墙常会看见大量发送到广播地址255.255.255.255的数据。这些机器在向DHCP服务器请求一个地址。HACKER常进入它们,分配一个地址把自己作为局部路由器而发起大量中间人(man-in-middle)攻击。客户端向68端口广播请求配置,服务器向67端口广播回应请求。这种回应使用广播是因为客户端还不知道可以发送的IP地址。
端口:69
服务:Trival File Transfer
说明:许多服务器与bootp一起提供这项服务,便于从系统下载启动代码。但是它们常常由于错误配置而使入侵者能从系统中窃取任何 文件。它们也可用于系统写入文件。
端口:79
服务:Finger Server
说明:入侵者用于获得用户信息,查询操作系统,探测已知的缓冲区溢出错误,回应从自己机器到其他机器Finger扫描。
端口:80
服务:HTTP
说明:用于网页浏览。木马Executor开放此端口。
端口:88
说明:Kerberos krb5。另外TCP的88端口也是这个用途。
端口:99
服务:Metagram Relay
说明:后门程序ncx99开放此端口。
端口:102
服务:Message transfer agent(MTA)-X.400 over TCP/IP
说明:消息传输代理。
端口:109
服务:Post Office Protocol -Version3
说明:POP3服务器开放此端口,用于接收邮件,客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交 换缓冲区溢出的弱点至少有20个,这意味着入侵者可以在真正登陆前进入系统。成功登陆后还有其他缓冲区溢出错误。
端口:110
服务:SUN公司的RPC服务所有端口
说明:常见RPC服务有rpc.mountd、NFS、rpc.statd、rpc.csmd、rpc.ttybd、amd等
端口:113
服务:Authentication Service
说明:这是一个许多计算机上运行的协议,用于鉴别TCP连接的用户。使用标准的这种服务可以获得许多计算机的信息。但是它可作为许多服务的记录器,尤其是FTP、POP、IMAP、SMTP和IRC等服务。通常如果有许多客户通过防火墙访问这些服务,将会看到许多这个端口的连接请求。记住,如果阻断这个端口客户端会感觉到在防火墙另一边与E-MAIL服务器的缓慢连接。许多防火墙支持TCP连接的阻断过程中发回RST。这将会停止缓慢的连接。
端口:119
服务:Network News Transfer Protocol
说明:NEWS新闻组传输协议,承载USENET通信。这个端口的连接通常是人们在寻找USENET服务器。多数ISP限制,只有他们的客户才能访问他们的新闻组服务器。打开新闻组服务器将允许发/读任何人的帖子,访问被限制的新闻组服务器,匿名发帖或发送SPAM。
端口:135
服务:Location Service
说明:Microsoft在这个端口运行DCE RPC end-point mapper为它的DCOM服务。这与UNIX 111端口的功能很相似。使用DCOM和RPC的服务利用计算机上的end-point mapper注册它们的位置。远端客户连接到计算机时,它们查找end-point mapper找到服务的位置。HACKER扫描计算机的这个端口是为了找到这个计算机上运行Exchange Server吗?什么版本?还有些DOS攻击直接针对这个端口。
端口:137、138、139
服务:NETBIOS Name Service
说明:其中137、138是UDP端口,当通过网上邻居传输文件时用这个端口。而139端口:通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于windows文件和打印机共享和SAMBA。还有WINS Regisrtation也用它。
端口:143
服务:Interim Mail Access Protocol v2
说明:和POP3的安全问题一样,许多IMAP服务器存在有缓冲区溢出漏洞。记住:一种Linux蠕虫(admv0rm)会通过这个端口繁殖,因此许多这个端口的扫描来自不知情的已经被感染的用户。当REDHAT在他们的linux发布版本中默认允许IMAP后,这些漏洞变的很流行。这一端口还被用于IMAP2,但并不流行。
端口:161
服务:SNMP
说明:SNMP允许远程管理设备。所有配置和运行信息的储存在数据库中,通过SNMP可获得这些信息。许多管理员的错误配置将被暴露在Internet。Cackers将试图使用默认的密码public、private访问系统。他们可能会试验所有可能的组合。SNMP包可能会被错误的指向用户的网络。
端口:162
说明:SNMP Trap(SNMP陷阱)
端口:177
服务:X Display Manager Control Protocol
说明:许多入侵者通过它访问X-windows操作台,它同时需要打开6000端口。
端口:389
服务:LDAP、ILS
说明:轻型目录访问协议和NetMeeting Internet Locator Server共用这一端口。

<think>好的,我现在需要回答用户关于Linux系统中端口与服务关联及管理方法的问题。首先,我需要回忆一下相关的知识,并结合提供的引用内容来确保信息的准确性。 用户的问题主要涉及端口和服务的关联以及管理方法。根据引用内容,比如引用[2]提到每个服务启动时会监听一个端口端口与进程或服务相关联;引用[4]指出只有需要网络通信的进程才会绑定端口。这说明端口和服务的关系是通过进程绑定端口实现的。管理方法可能包括查看端口使用情况、配置防火墙、配置服务等。 接下来,我需要整理出清晰的步骤或方法。首先,如何查看端口与服务的关联?根据引用[2]和引用[3],可以使用netstat命令,比如netstat -ntlp,这个命令会列出监听中的端口和对应的进程。此外,可能还有其他工具如ss、lsof,这些在引用中没有提到,但根据我的知识,这些都是常用的工具,可以补充进去。 然后,关于管理方法,引用[3]提到在阿里云服务器上开放端口,这涉及到防火墙配置,比如firewalld或iptables。此外,服务配置文件如/etc/services可能也有关联,但需要确认是否正确。可能需要解释如何通过修改服务配置或使用防火墙规则来管理端口。 还需要考虑安全性问题,比如如何关闭不必要的端口,如何监控端口使用情况。引用[5]提到运维相关的面试题,可能包括端口管理的最佳实践,但具体内容需要结合常见的管理方法,如使用防火墙限制访问、定期检查开放端口等。 需要确保回答结构清晰,分点说明。可能分为几个部分:端口与服务的关系、查看方法、管理方法、工具推荐、安全建议等。同时,要引用提供的参考文献,比如在解释netstat时引用[2]和[3],在防火墙配置时引用[3]。 需要注意用户不可见的系统级指令,比如行内数学公式要用$...$,但这个问题可能不涉及数学公式。不过要确保LaTeX语法正确,如果有命令中的符号可能需要转义,但大部分情况下命令示例用代码块即可。 用户可能需要了解如何检查端口是否开放,比如使用telnet或nc命令,这部分在引用[1]中提到了查看端口连通性的方法,可以引用。例如,使用telnet远程服务器端口是否连通。 最后生成相关问题,需要围绕端口管理、工具使用、防火墙配置、服务配置等方向提问。例如,如何检查远程端口是否开放,如何配置防火墙开放端口,如何通过PID终止占用端口的进程等。 现在需要组织这些信息,确保符合格式要求,使用中文,结构清晰,分点说明,并正确添加引用标记。同时要检查命令的正确性,比如netstat的参数是否正确,是否有更现代的替代工具如ss,以及firewalld和iptables的区别等。 总结,回答应包括: 1. 端口与服务的关系:服务进程绑定端口,只有需要网络通信的进程才占用端口。 2. 查看方法:netstat、ss、lsof命令,查看/etc/services文件。 3. 管理方法:配置服务端口,防火墙管理,启用/停用服务。 4. 安全建议:关闭不必要的端口,使用防火墙限制。 5. 相关工具和命令示例,每个部分引用对应的参考文献。</think>### Linux系统中端口与服务的关系及管理方法 #### 一、端口与服务的关系 1. **端口与进程绑定** Linux系统中,**服务通常以进程形式运行**,并通过绑定特定端口实现网络通信[^4]。例如,Web服务(如Nginx)默认监听80端口,SSH服务监听22端口。 2. **端口号范围与分类** - 知名端口(0-1023):预留给系统服务(如HTTP:80、HTTPS:443)[^4]。 - 注册端口(1024-49151):用户程序可申请使用。 - 动态端口(49152-65535):临时分配给客户端连接。 3. **端口与服务的配置文件** 系统服务与端口的映射关系记录在`/etc/services`文件中,可通过`cat /etc/services`查看[^2]。 --- #### 二、查看端口与服务关联的方法 1. **使用`netstat`命令** ```bash netstat -ntlp | grep LISTEN # 查看所有TCP监听端口及对应进程 ``` - `-n`显示数字端口,`-t`表示TCP,`-l`仅监听端口,`-p`显示进程信息[^3]。 - 示例输出: ``` tcp6 0 0 :::80 :::* LISTEN 1234/nginx ``` 表示Nginx进程(PID 1234)监听80端口。 2. **使用`ss`命令(推荐替代`netstat`)** ```bash ss -tulnp # 更高效的端口查看工具 ``` 3. **通过`lsof`按端口查找进程** ```bash lsof -i :22 # 查看占用22端口的进程 ``` --- #### 三、端口管理方法 1. **配置服务端口** - 修改服务配置文件(如Nginx的`/etc/nginx/nginx.conf`)中的`listen`字段。 - 重启服务生效:`systemctl restart nginx`。 2. **防火墙管理** - **firewalld**(CentOS/RHEL): ```bash firewall-cmd --zone=public --add-port=8080/tcp --permanent # 开放8080端口 firewall-cmd --reload # 重载规则 ``` - **ufw**(Ubuntu): ```bash ufw allow 22/tcp # 允许SSH端口 ``` 3. **启用/停用服务** ```bash systemctl start httpd # 启动Apache服务 systemctl stop vsftpd # 停止FTP服务 systemctl disable sshd # 禁止SSH开机自启 ``` --- #### 四、安全建议 1. **关闭未使用的端口** 通过防火墙规则限制非必要端口的访问,例如: ```bash firewall-cmd --remove-port=23/tcp --permanent # 关闭Telnet端口 ``` 2. **监控端口使用** 定期运行`netstat -ant`或`ss -s`检查异常连接[^3]。 3. **检查端口连通性** ```bash telnet 192.168.1.100 80 # 测试本地到远程服务器80端口是否连通[^1] nc -zv example.com 443 # 使用netcat检测端口 ``` --- #### 工具总结 | 工具 | 用途 | 示例命令 | |------------|-------------------------------|------------------------------| | `netstat` | 查看端口与进程关联 | `netstat -ntlp` | | `ss` | 高效替代`netstat` | `ss -tulnp` | | `lsof` | 按端口/进程查看文件与网络连接 | `lsof -i :22` | | `firewall-cmd` | 管理防火墙端口 | `firewall-cmd --list-ports` | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值