Apache服务器默认的端口号是80端口,用于处理HTTP明文流量;启用HTTPS加密时默认使用443端口。这个答案在绝大多数发行版和源码编译安装的Apache中都是标准配置,不过在真实运维场景里,你遇到的“默认端口”能否正常用,往往取决于服务器上有没有其他服务抢占了80端口,以及防火墙是否放行了对应协议,下面围绕端口这件事,把排查思路、修改方法和常见坑一次性说清楚。
为什么Apache默认端口是80而不是其他数字
Apache的设计年代较早,80端口是IANA分配给HTTP协议的全球统一默认端口,浏览器在地址栏输入域名时不带端口号,默认就会去连接服务器的80端口,行业共识认为这是互联网基础设施约定俗成的标准,Apache只是遵守了这个规则,除了80端口,Apache还会在配置文件里同时监听443端口,用于处理HTTPS加密请求。
80端口和443端口的本质区别
| 端口 | 对应协议 | 数据是否加密 | 默认场景 |
|---|---|---|---|
| 80 | HTTP | 不加密,明文传输 | 普通网站访问、HTTP跳转HTTPS |
| 443 | HTTPS | 加密传输 | 登录、支付、隐私敏感页面 |
在Apache的配置文件里,这两者通常以VirtualHost(虚拟主机)的形式同时存在,只有当你手动开启了SSL模块并配置了证书时,443端口才会真正对外提供服务,如果你只配置了80端口的虚拟主机,那么通过HTTPS访问会直接报错。
怎么查看Apache当前监听的端口
很多时候你根本不需要记默认值是几,直接看服务器实际监听状态最靠谱。
用命令一行定位监听端口
登录服务器后,执行以下任意一条命令:
ss -tlnp | grep httpd netstat -tlnp | grep apache
如果Apache正在运行,你会看到类似这样的输出:
LISTEN 0 128 0.0.0.0:80
LISTEN 0 128 0.0.0.0:443
只需要关注Local Address一列,冒号后面的数字就是Apache正在监听的端口号,如果Apache没启动,命令结果为空,这时候需要先启动服务再排查。
通过配置文件确认默认端口
Apache的主配置文件通常叫httpd.conf,在Debian和Ubuntu系统上路径是/etc/apache2/ports.conf,在CentOS和RHEL系统上路径是/etc/httpd/conf/httpd.conf。
打开文件后查找Listen指令:
Listen 80
Listen 443
Listen后面的数字就是Apache启动时绑定的端口,手动修改这个值,再重启Apache,端口号就会立即改变,这是最直接的验证方式。
apache默认端口80被占用怎么办
这种情况在真实服务器上相当常见,尤其是新手在同一台机器上装了多个Web服务时,80端口一旦被占用,Apache通常无法正常启动,或者在启动时直接报错

Address already in use。
第一步:找出占用80端口的进程
执行以下命令定位是谁抢占了80端口:
ss -tlnp | grep :80
输出结果中会显示进程名和PID,常见的占用者包括Nginx、Tomcat、IIS,甚至是你自己之前启动的另一个Apache实例,如果你看到的是Nginx占用了80端口,那就需要决定到底保留哪个服务。
第二步:让Apache使用其他端口
如果想让Apache绕开被占用的80端口,可以修改Listen配置,比如把Apache切到8080端口:
Listen 8080
修改完成后重启Apache:
systemctl restart apache2 # CentOS系统用这个命令 systemctl restart httpd
此时通过http://服务器IP:8080就能访问Apache页面,需要提醒的是,使用非默认端口意味着用户在浏览器里必须手动输端口号,访问体验会打折扣,所以这只适合临时测试或内网使用。
第三步:彻底解决端口冲突
如果不想改端口,就把占用80端口的那个服务停掉或改到其他端口,比如Nginx占用时,可以改Nginx的监听端口;如果是IIS占用,通过net stop http停止相关服务,清理干净后,Apache就能恢复正常使用80端口。
apache服务器怎么修改默认端口
修改Apache监听的端口是运维中的高频操作,一般用于安全加固、端口冲突或服务器迁移,整个过程分为三步:改端口号、改虚拟主机配置、重启验证。
具体操作步骤(以Debian/Ubuntu系统为例)
第一步,编辑ports.conf文件:
vim /etc/apache2/ports.conf
第二步,把Listen 80改成目标端口,比如改成Listen 8000。
第三步,修改虚拟主机配置文件中的端口号,虚拟主机文件通常位于/etc/apache2/sites-available/目录下,在<VirtualHost :80>中,把80改成8000。
第四步,修改站点入口文件,如果有.htaccess或者项目代码里写死了URL跳转规则,需要同步更新端口号,否则网页上的链接仍然会指向80端口。
第五步,重启Apache:
systemctl restart apache2
CentOS系统的差异化操作
CentOS系统的Apache配置文件路径是/etc/httpd/conf/httpd.conf,且没有ports.conf这个文件,你需要用vim /etc/httpd/conf/httpd.conf打开主配置,找到Listen 80进行修改,虚拟主机配置通常放在

/etc/httpd/conf.d/目录下,修改完成后执行systemctl restart httpd重启服务。
验证修改是否生效
修改端口后,不能光看配置文件就完事,关键是服务能不能正常起来,执行:
ss -tlnp | grep apache
确认新端口号出现在监听列表中,然后在浏览器中访问http://IP:新端口号,能看到Apache欢迎页就代表修改成功。
怎么让Apache同时监听多个端口
在实际业务中,Apache同时监听80和443端口是常态,但如果你需要Apache同时监听三个或更多端口,比如80、443和一个自定义端口,语法很简单:
Listen 80
Listen 443
Listen 8080
然后在虚拟主机配置里增加对应的<VirtualHost :8080>块即可,这种做法常用于同一台服务器上跑多个不同端口隔离的站点,或者配合反向代理做端口分流。
多端口配置的常见坑
很多人在参考网上教程配置多端口时,只改了Listen,忘了加虚拟主机块,结果访问新端口显示的是Apache默认欢迎页而不是自己的站点,这是虚拟主机配置缺失导致的,不是端口没生效,不同端口指向的网站根目录建议分开,避免多个端口指向同一路径造成安全边界模糊。
apache端口安全加固的实用建议
除了知道默认端口是80,有经验的运维还会专门针对端口做安全收敛。
限制外部扫描和访问来源
如果你的Apache只是给内部系统用,完全没必要把80和443端口暴露在公网,通过云服务器的安全组规则或者本机防火墙,把Apache监听端口的来源IP限制成公司网段,就能极大降低被扫描和攻击的概率。
对非标准端口做额外保护
如果因为业务需要,Apache监听了非标准的8080、8888等端口,容易被自动化脚本扫描到,建议给这些端口加上HTTP基础认证,或者只允许白名单IP访问,在Apache配置里关闭目录列表功能:
Options -Indexes
定期检查端口状态
每隔一段时间运行一次ss -tlnp检查Apache监听的端口是否正常,同时确认没有被恶意植入其他监听端口,如果发现Apache多了个你没配置过的监听端口,很可能服务器已被植入后门,需要立即排查。
Apache默认端口80和Nginx默认端口一样吗
这是一个经常被问到的问题,答案是:一样,Nginx和Apache都是Web服务器,默认都监听80端口和443端口,正因为如此,在同一台服务器上同时安装Apache和Nginx时,端口冲突几乎是必然的,解决方案和前面讲的一致:把其中一个服务切换到其他端口,或者干脆只保留一个。
本质上,80端口是HTTP协议的标准入口,属于“公共资源”,任何Web服务器都默认绑定它,所以Apache和Nginx的默认端口没有本质区别,区分它们主要看处理并发请求的架构模式,而不是端口号。

Apache重启后端口不生效的排查思路
修改完配置文件并重启Apache后,偶尔会发现新端口没起来,或者旧端口还在,这种情况多半是忽略了以下细节。
配置文件语法检查
在重启前先检查配置文件语法是否正确:
apachectl configtest
如果输出Syntax OK,说明语法没问题,可以放心重启,如果语法报错,重启时Apache会很“倔强”地拒绝启动,端口自然也不会改变。
是否改了正确的配置文件
Apache的配置文件结构在不同系统中差异较大,Debian系有ports.conf和sites-available/目录,CentOS系基本全在httpd.conf里,如果你在CentOS系统里到处找ports.conf文件,那肯定是找不到的,反过来,在Ubuntu系统里只改httpd.conf也不起作用,因为Debian系的ports.conf是独立文件,优先级更高。
防火墙是否放行了新端口
修改端口后,如果本机防火墙没放行新端口,外部访问依然不通,比如修改到8080端口后,执行:
firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload
在云服务器上还需要检查安全组的入站规则,新端口加进去后才能从公网访问。
常见问题解答
Apache默认端口80被防火墙拦截怎么办
如果Apache已经在80端口正常运行,但外部无法访问,多半是防火墙拦截,查看防火墙状态:
systemctl status firewalld
如果防火墙开启状态,用以下命令放行80端口:
firewall-cmd --permanent --add-port=80/tcp firewall-cmd --reload
云服务器还需要登录控制台,在安全组里添加入方向规则,放行TCP 80端口,两者缺一不可,只改一边都可能造成访问不通。
Apache的443端口必须要配置证书才能用吗
是,443端口启用HTTPS协议必须配置SSL证书,否则Apache无法监听该端口,证书可以从云服务商免费申请,也可以使用自签名证书进行测试,配置完成后,Apache才能正常在443端口提供加密访问,如果没有配置证书,仅仅在配置文件里写Listen 443,Apache启动时会报错。
Apache修改端口之后HTTPS访问会受影响吗
会,如果你修改了443端口的监听设置,HTTPS访问地址必须同步变更,比如把443改成8443,用户就需要通过https://域名:8443访问,如果是修改了80端口,则HTTP跳转HTTPS的规则也需要同步调整,否则用户访问的链接会跳到错误的端口,实际生产环境中,除非出于安全需要,否则不建议轻易改动80和443这两个默认端口。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/792430.html


评论列表(5条)
这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是端口部分,给了我很多新的思路。感谢分享这么好的内容!
读了这篇文章,我深有感触。作者对端口的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!
这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于端口的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!
这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是端口部分,给了我很多新的思路。感谢分享这么好的内容!
读了这篇文章,我深有感触。作者对端口的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!