Linux 系统中的端口(Port)说明

Linux 系统中的端口(Port)

Linux 系统中的端口(Port)是用于标识网络进程的逻辑端口,TCP/IP 协议中端口范围为:0 ~ 65535。这些端口号被 IANA(Internet Assigned Numbers Authority)划分为三个范围,各有不同的用途。


🧩 一、Linux 端口号的划分

端口范围名称/类型用途说明
0 - 1023知名端口(Well-known ports)系统服务使用,必须由 root 权限进程绑定。如:HTTP、SSH、DNS 等
1024 - 49151注册端口(Registered ports)普通应用程序注册使用,用户进程或服务可能使用,如 MySQL、PostgreSQL 等
49152 - 65535动态/私有端口(Dynamic/Private ports)客户端临时通信时自动分配的端口,称为临时端口(Ephemeral Ports)

🧠 二、常见端口示例

1. 知名端口(0~1023)
端口服务名称协议用途
22SSHTCP安全远程登录
23TelnetTCP不安全的远程登录
25SMTPTCP邮件传输
53DNSUDP/TCP域名解析
80HTTPTCP网站访问
443HTTPSTCP加密网站访问
3306MySQLTCP数据库服务
5432PostgreSQLTCP数据库服务
2. 注册端口(1024~49151)

这些端口由开发者向 IANA 注册,部分常见服务如下:

端口服务名称用途
2379/2380etcd 集群分布式配置
2181Zookeeper协调服务
8080Tomcat / HTTP开发常用 Web 服务端口
3. 动态/私有端口(49152~65535)
  • 不会被服务器监听使用。
  • 客户端用于和服务器建立连接时的临时端口。
  • 操作系统在发起 TCP/UDP 连接时动态分配。

例如:

# 客户端主动连接服务器时使用的端口
curl http://example.com
# 系统自动分配一个 49152~65535 的临时端口

🧾 三、查看当前端口使用情况的命令

# 显示监听的端口及服务
ss -tnlp

# 或
netstat -tunlp

# 查看某端口是否被监听
lsof -i:8080

⚙️ 四、端口安全管理建议

  1. 关闭不必要的端口/服务:减小攻击面。

  2. 配置防火墙策略

    # 使用 firewalld 添加允许端口
    firewall-cmd --add-port=80/tcp --permanent
    firewall-cmd --reload
    
  3. 启用 SELinux/AppArmor 等安全机制 控制端口访问。


如果要 NFS 的默认端口 2049 改成其他端口,主要需要考虑以下几个方面:


✅ 一、选用新端口的原则

  1. 避免系统知名端口(0–1023),以免冲突。

  2. 避免与常见注册端口冲突,例如:

    • 3306 (MySQL)
    • 5432 (PostgreSQL)
    • 6379 (Redis)
    • 27017 (MongoDB)
    • 8080 (常见Web端口)
  3. 尽量在私有/动态端口中挑选(49152–65535)

    • 好处:冲突概率低,使用灵活。
    • 缺点:有些老旧的客户端或防火墙策略可能不允许此范围通信。

🎯 推荐的替代端口范围(相对安全)

以下是一些通常“闲置”的端口,可以用于替代:

端口号理由说明
30000–31000Kubernetes NodePort 范围内,常用于服务测试,自定义用途多
40000–41000一般无特定服务绑定,可作私有协议使用
50000–51000传统上为备选私有服务端口,例如 Jenkins 使用 50000 作为 slave 通信
60000–61000通常未被常见服务占用,适合自定义服务

🚧 二、注意事项

  1. 改了端口后,客户端也要同步更改,否则连接不上。
  2. NFS 4 默认使用固定端口 2049如需更换,得结合 rpcbind/nfsd 做更多配置,且兼容性较差
  3. 有些 NFS 功能仍依赖 rpcbind 的动态端口(如 mountd),可以通过配置让其使用固定端口。

🛠️ 三、如何修改 NFS 端口(以 mountd 为例)

# 设定 mountd 使用固定端口 4001
echo "MOUNTD_PORT=4001" >> /etc/sysconfig/nfs

# 如果你坚持要改掉 2049 端口(不推荐)
# 修改 /etc/modprobe.d/nfs.conf
echo "options nfs nfsport=4009" >> /etc/modprobe.d/nfs.conf

# 重启 NFS 服务
systemctl restart nfs-server

🔒 四、防火墙开放

记得放通新端口:

# 以 4009 为例
firewall-cmd --add-port=4009/tcp --permanent
firewall-cmd --reload

🧠 总结建议

推荐端口:40000 ~ 41000 范围内选择一个(例如:4009

如果你只是想避免暴露默认端口用于安全增强,这种方式配合防火墙、加密(如 Kerberos、VPN)效果更好。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值