常用端口号总结
在日常编程和系统开发中,常见的端口号通常与不同的服务和协议相关。以下是一些常见的端口号及其对应的服务:
1. HTTP 和 HTTPS
- 80:HTTP(Hypertext Transfer Protocol),用于普通的网页浏览。
- 443:HTTPS(Hypertext Transfer Protocol Secure),用于加密的网页浏览。
2. 数据库端口
- 3306:MySQL 和 MariaDB 数据库的默认端口。
- 5432:PostgreSQL 数据库的默认端口。
- 1521:Oracle 数据库的默认端口。
- 1433:SQL Server 数据库的默认端口。
3. FTP 和 SFTP
- 21:FTP(File Transfer Protocol)的控制端口,用于文件传输的建立。
- 22:SFTP(Secure File Transfer Protocol)和 SSH(Secure Shell)默认端口,提供安全的文件传输和远程命令执行。
4. 邮件服务
- 25:SMTP(Simple Mail Transfer Protocol),用于发送邮件。
- 110:POP3(Post Office Protocol 3),用于接收邮件(未加密版本)。
- 143:IMAP(Internet Message Access Protocol),用于接收邮件(未加密版本)。
- 587:SMTP(发送邮件,通常用于加密传输)。
- 465:SMTP(安全加密邮件传输,通常与 SSL/TLS 一起使用)。
- 993:IMAPS(IMAP over SSL/TLS)。
- 995:POP3S(POP3 over SSL/TLS)。
5. DNS 和 DHCP
- 53:DNS(Domain Name System),用于域名解析。
- 67:DHCP(Dynamic Host Configuration Protocol)服务器端口。
- 68:DHCP 客户端端口。
6. 远程桌面和其他远程服务
- 3389:RDP(Remote Desktop Protocol),用于远程桌面连接(Windows)。
- 22:SSH(Secure Shell),用于通过命令行远程访问服务器。
7. 服务发现和容器
- 2375:Docker 非加密 API 端口(用于远程管理 Docker)。
- 2376:Docker 加密 API 端口。
- 8080:常用于开发环境中的 HTTP 服务(作为 80 端口的替代,通常用于测试和开发)。
- 3000:很多开发框架(如 Node.js、Rails)默认的开发端口。
8. VNC 和 X11
- 5900:VNC(Virtual Network Computing)服务器的默认端口,用于远程桌面共享。
- 6000:X11(X Window System)默认端口,用于图形化界面的远程访问。
9. P2P 和 Torrent
- 6881-6889:BitTorrent 协议的常见端口范围,用于点对点文件共享。
10. 其他常见端口
- 27017:MongoDB 数据库的默认端口。
- 11211:Memcached 的默认端口,用于缓存服务。
- 6379:Redis 数据库的默认端口。
- 9200:Elasticsearch 的默认端口。
- 27015:Steam 游戏服务器默认端口。
特殊用途端口
这些端口通常不适用于一般编程工作,但在某些特定场景下会用到:
- 8080:通常用于 HTTP 代理或 Web 服务的开发测试。
- 5000:Flask(Python Web 框架)默认的开发服务器端口。
- 8000:Django(Python Web 框架)默认的开发服务器端口。
端口分类
根据 IANA(Internet Assigned Numbers Authority)规范,端口号可以分为三类:
- 众所周知的端口(Well-Known Ports):0 到 1023(如 HTTP 端口 80、HTTPS 端口 443)。
- 注册端口(Registered Ports):1024 到 49151,用于应用程序和服务,但不像 0-1023 那样广泛知名(如 MySQL 端口 3306、PostgreSQL 端口 5432)。
- 动态和/或私有端口(Dynamic or Private Ports):49152 到 65535,通常由客户端临时使用,如 Web 浏览器请求的动态端口。