常用服务器端口全解析:基础概念到实用操作

技术教程 11评选

玩服务器、搞建站的朋友,肯定经常跟“端口”打交道。比如远程连接要用22端口,开网站要80/443端口,数据库有3306、6379这些… 端口就像服务器上的“门牌号”,每个“门”对应不同的服务。11评选整理了这份端口指南,从基础概念到常用操作,不管是新手还是老鸟,都能找到有用的内容。

一、先搞懂:端口的核心概念

别被专业术语吓到,其实很简单:

  • 端口:就是个数字(0-65535),用来区分同一台服务器上的不同服务。比如80端口对应网页服务,22端口对应远程连接,互不干扰。

  • TCP/UDP:这是两种传输协议,同一个端口在TCP和UDP下是独立的。比如“TCP:80”和“UDP:80”是两个不同的“门”,各司其职。

  • 端口分类(IANA标准)

    • 0-1023:系统端口(也叫知名端口),被固定服务占用,比如80(HTTP)、443(HTTPS);

    • 1024-49151:注册端口,需要申请注册,比如常见的8080(HTTP备用);

    • 49152-65535:动态/私有端口,临时用的,比如客户端连接服务器时随机分配的端口。

想查系统里端口对应哪些服务?Linux直接输 cat /etc/services,Windows用 netsh int ipv4 show excludedportrange 就行。

二、必记!生产环境最常用的端口速查表

这些端口天天都可能用到,记不住也没关系,收藏起来随时查:

端口协议对应服务说明
22TCPSSH远程管理服务器的默认端口,Linux/UNIX系统常用
80TCPHTTP明文网页服务,访问网站默认用这个端口
443TCPHTTPS加密网页服务,带SSL/TLS的安全连接,现在网站基本都用这个
3306TCPMySQLMySQL数据库的默认端口,建站常用
5432TCPPostgreSQLPostgreSQL数据库的默认端口,企业级应用常用
6379TCPRedisRedis内存数据库的默认端口,缓存、会话存储常用
27017TCPMongoDBMongoDB这个NoSQL数据库的默认端口
8080TCPHTTP备用开发测试、反向代理常用,比如Tomcat默认用这个
8443TCPHTTPS备用加密服务的备用端口,当443被占用时用
3389TCPRDPWindows远程桌面的默认端口,远程控制Windows服务器用

三、怎么看哪个端口被占用了?Linux/Windows实用命令

服务器上端口被占用是常有的事,比如想启动Nginx却提示80端口被占,这时候就得查清楚是谁在用。

Linux系统(推荐用ss,比netstat更高效)

  • 看所有正在监听的端口(TCP和UDP):ss -tuln

  • 具体查80端口被哪个进程占用:ss -tulnp | grep :80(带进程ID和名称)

  • 也可以用lsof:lsof -i:80

  • 如果要强制关掉占用80端口的进程:fuser -k 80/tcp

Windows系统(用PowerShell或命令提示符)

  • 查看监听中的TCP端口及对应进程:Get-NetTCPConnection -State Listen | Select LocalPort, OwningProcess

  • 查80端口的占用情况:netstat -ano | findstr :80(最后一列是进程ID)

  • 强制结束进程(替换1234为实际进程ID):taskkill /PID 1234 /F

四、防火墙怎么开放端口?不同系统操作不同

端口配置好了,防火墙没开放也白搭。分享几个常用系统的快速配置命令:

  • Ubuntu/Debian系统(用ufw防火墙)sudo ufw allow 22/tcp(开放22端口的TCP连接)

  • CentOS/RHEL系统(用firewalld)sudo firewall-cmd --add-port=80/tcp --permanent && sudo firewall-cmd --reload(--permanent表示永久生效,reload是重新加载配置)

  • Windows系统(PowerShell)New-NetFirewallRule -Name "Allow HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow(创建允许80端口入站的规则)

如果是云服务器阿里云腾讯云、AWS等),还要在云平台的“安全组”里配置,添加入站规则开放需要的端口(比如80、443、22),不然防火墙开放了也访问不了。

五、端口转发:用SSH穿透内网的小技巧

有时候需要访问内网服务,或者把内网服务暴露到公网,端口转发很好用,用SSH就能实现:

  • 本地端口转发:比如内网有台机器(10.0.0.10)的80端口跑着服务,通过公网服务器(public-server-ip)访问它:ssh -L 8080:10.0.0.10:80 user@public-server-ip,之后访问本地8080端口就等于访问内网10.0.0.10的80端口。

  • 远程端口转发:把本地的3000端口服务(比如开发中的网站)通过公网服务器暴露出去,让别人能访问:ssh -R 8080:localhost:3000 user@public-server-ip,别人访问公网服务器的8080端口,就等于访问你的本地3000端口。

六、Docker容器怎么映射端口?

用Docker跑服务,必须把容器内的端口映射到宿主机,不然外面访问不了。

  • 运行容器时直接映射:docker run -d -p 8080:80 --name web nginx(把容器的80端口映射到宿主机的8080端口,访问宿主机8080就到容器80)

  • 在docker-compose.yml里配置(更适合多服务):

    services:
      web:
        image: nginx:latest
        ports:
          - "8080:80"   # 宿主机8080 → 容器80
          - "8443:443"  # 宿主机8443 → 容器443
        restart: unless-stopped

七、端口故障排查:8步搞定大部分问题

端口访问不了?按这8步查,基本能找到原因:

  1. 服务启动了吗?比如查Nginx:systemctl status nginx(没启动就启动它:systemctl start nginx

  2. 端口在监听吗?用ss -tuln | grep :端口号,没结果就是没监听

  3. 本地防火墙挡了?查防火墙状态,比如ufw:ufw status | grep 端口号,没允许就开放

  4. 云安全组没配置?去云控制台的安全组看看,入站规则有没有允许这个端口

  5. SELinux阻止了?CentOS等系统可能有,查一下:getsebool -a | grep httpd(对应服务的布尔值)

  6. 端口转发配置错了?查iptables转发规则:iptables -t nat -L -n

  7. 网络连通吗?用telnet或curl测试:telnet 服务器IP 端口号curl -v 服务器IP:端口号

  8. 容器网络模式问题?Docker容器的话,查网络模式:docker inspect 容器名 | grep Network(比如bridge模式需要端口映射,host模式不用)

八、安全最佳实践:这三条一定要记住

端口配置不当容易出安全问题,记住这三条铁律:

  • 最小权限原则:只开放业务必须的端口。比如一个静态网站,开80和443就行,22端口(远程)也尽量限制来源,其他端口都关掉。

  • 限制来源IP:重要端口(比如22、3306)别全网开放,只允许指定IP访问。比如ufw命令:ufw allow from 192.168.1.0/24 to any port 22(只允许192.168.1.x网段连接22端口)。

  • 定期审计:每周查一次开放的端口,记录下来对比,发现陌生端口及时处理。命令:ss -tuln > ports_$(date +%F).log(每天生成一个日志文件)。

九、一键检测常用端口状态的脚本(Linux)

自己写了个简单脚本,能快速检查常用端口是否开放,新手也能直接用:

#!/bin/bash
# 文件名: check-ports.sh
echo "端口状态快速检查($(date '+%Y-%m-%d %H:%M:%S'))"
echo "----------------------------------------"
for port in 22 80 443 3306 5432 6379 27017; do
    if ss -tuln | grep -q ":$port "; then
        echo "OPEN   $port"
    else
        echo "CLOSED $port"
    fi
done

使用方法:把上面的内容保存为check-ports.sh,然后执行 chmod +x check-ports.sh && ./check-ports.sh,就能看到这些常用端口是开放(OPEN)还是关闭(CLOSED)了。

总结:端口管理没那么难,实用为主

其实端口管理不用死记硬背,常用的那几个记住就行,其他的知道怎么查、怎么配置就够了。11评选觉得,重点是做好安全防护,不该开的端口坚决关掉,必要的端口限制好来源,这样服务器才更安全。遇到端口问题按排查步骤一步步来,基本都能解决。收藏这篇,以后用到的时候翻出来看看,肯定能省不少事~