端口号及分类

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


分类:
    1) 众所周知的端口(Well Known Ports): 从0到1023,这些端口号一般固定分配给一些服务。例如21端口分配给FTP(文件传输协议)服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务
    2) 注册端口(Registered Ports): 从1024到49150,这些端口多数没有明确的定义服务对象,不同程序可根据实际需要自己定义。
    3) 随机端口(Private Ports): 从49152到65535。理论上,不应为服务分配这些端口。实际上,有些较为特殊的程序,特别是一些木马程序就非常喜欢用这些端口,因为这些端口常常不被引起注意,容易隐蔽。


常用端口及端口号
    21/tcp FTP 文件传输协议 
    22/tcp SSH 安全登录、文件传送(SCP)和端口重定向 
    23/tcp Telnet 不安全的文本传送 
    25/tcp SMTP Simple Mail Transfer Protocol (E-mail) 
    69/udp TFTP Trivial File Transfer Protocol 
    79/tcp finger Finger 
    80/tcp HTTP 超文本传送协议 (WWW) 
    110/tcp POP3 Post Office Protocol (E-mail)  
    443/tcp HTTPS used for securely transferring web pages
### 端口号分类及定义 端口号是传输层协议(如TCPUDP)中的一个重要概念,用于标识进程与进程之间的通信。以下是端口号的主要分类及其定义: #### 1. **公认端口(Well-Known Ports)** - 范围:`0` 到 `1023` - 定义:这些端口被称作系统端口或常用端口,通常绑定到特定的服务上[^4]。例如: - 端口 `21`:FTP(文件传输协议)控制连接 - 端口 `80`:HTTP(超文本传输协议) - 端口 `443`:HTTPS(安全超文本传输协议) - 特点:这些端口由互联网号码分配机构(ICANN)管理,并且不能重新定义其作用对象。 #### 2. **注册端口(Registered Ports)** - 范围:`1024` 到 `49151` - 定义:这些端口为没有公认端口的应用程序使用[^2]。任何应用程序都可以申请使用这些端口,但需要在IANA(互联网号码分配机构)按照规定的手续进行登记,以避免重复。 - 特点:这些端口通常用于特定应用或服务,但不像公认端口那样具有普遍性。 #### 3. **动态/私有端口(Dynamic or Private Ports)** - 范围:`49152` 到 `65535` - 定义:这些端口也被称为短暂端口,主要用于客户端进程运行时动态选择[^2]。客户端只需确保该端口号在本机上是唯一的即可。 - 特点:这些端口的存在时间较短,通常在会话结束后被释放。 #### 4. **临时端口(Ephemeral Ports)** - 范围:通常为 `1024` 到 `65535`,具体范围可能因操作系统而异[^3]。 - 定义:临时端口是由操作系统为客户端应用程序动态分配的端口,用于与服务器建立连接。它们仅在会话期间存在,会话结束后会被释放。 - 特点:这些端口通常位于注册端口动态端口范围内。 ### 示例代码:检查端口状态 以下是一个简单的Python脚本,用于检查某个端口是否开放: ```python import socket def check_port(host, port): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(2) try: result = sock.connect_ex((host, port)) if result == 0: return f"端口 {port} 是开放的。" else: return f"端口 {port} 是关闭的。" finally: sock.close() # 示例 print(check_port("127.0.0.1", 80)) # 检查本地主机的80端口 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值