网络端口
计算机可用的端口号是由TCP/IP协议规定的,范围是从0到65535(16位无符号整数)。其中,0到1023是称为"Well-known
Ports"(众所周知端口),用于常见的服务和应用程序,如HTTP(端口号80)、HTTPS(端口号443)、FTP(端口号21)等。1024到49151之间的端口号是分配给注册的应用程序和服务的,称为"Registered
Ports"(注册端口)。这些端口在全球范围内被协议分配机构分配给特定的应用程序。49152到65535之间的端口号是称为"Dynamic Ports"(动态端口)或"Private
Ports"(私有端口),用于临时的、动态分配的端口,一般由操作系统分配给客户端应用程序。需要注意的是,并非所有的端口号都可以用于应用程序,因为一些端口号已被保留或分配给特定的协议或服务。因此,实际可用的端口号可能会有所减少。
常见的网络端口(默认)
作为后端开发 一些常见的端口 要了解一下:
HTTP(超文本传输协议):
80端口:默认的HTTP端口,用于非加密的HTTP通信。
8080端口:常用的替代HTTP端口,通常用于开发和测试环境。
HTTPS(安全超文本传输协议):
443端口:默认的HTTPS端口,用于加密的HTTP通信。
FTP(文件传输协议):
21端口:FTP控制连接的默认端口,用于建立和管理FTP连接。
20端口:FTP数据连接的默认端口,用于传输文件数据。
SMTP(简单邮件传输协议):
25端口:SMTP传输邮件的默认端口,用于发件服务器与收件服务器之间的通信。
POP3(邮局协议版本3):
110端口:POP3接收邮件的默认端口,用于从邮件服务器上下载邮件。
IMAP(互联网邮件访问协议):
143端口:IMAP接收邮件的默认端口,用于在邮件服务器上管理邮件。
RMI(远程方法调用):
1099端口:RMI注册表的默认端口,用于远程方法调用。
MySQL(关系型数据库):
3306端口:MySQL数据库服务器的默认端口。
PostgreSQL(关系型数据库):
5432端口:PostgreSQL数据库服务器的默认端口。
Redis(内存数据库):
6379端口:Redis数据库服务器的默认端口。
SSH(安全外壳协议)代理:
1080端口:用于SSH代理服务器。
Apache Tomcat(Java Web服务器):
8080端口:用于Tomcat的默认HTTP端口。
Elasticsearch (ES):
HTTP REST API 默认端口:9200
节点间通信端口:9300
Hadoop:
Hadoop HDFS 默认端口:9000
Redis:
Redis 默认端口:6379
RabbitMQ:
RabbitMQ 默认端口:5672
RabbitMQ Web 管理界面默认端口:15672
java代码查询网络端口是否被占用、
import java.net.ServerSocket;
import java.io.IOException;
public class PortChecker {
public static void main(String[] args) {
int port = 8080; // 要检查的端口号
try {
ServerSocket serverSocket = new ServerSocket(port);
System.out.println("端口 " + port + " 可用");
serverSocket.close();
} catch (IOException e) {
System.out.println("端口 " + port + " 已被占用");
}
}
}