Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

 更新时间:2025年06月08日 11:27:44   作者:酷爱码  
Apache HTTP Server(简称 httpd)是 Linux 系统中最常用的 Web 服务器之一,本文将详细介绍如何在 Linux 系统中修改 httpd 的默认端口,并确保配置生效,感兴趣的可以了解下

Apache HTTP Server(简称 httpd)是 Linux 系统中最常用的 Web 服务器之一。默认情况下,httpd 监听的是 80 端口(HTTP)和 443 端口(HTTPS)。然而,在某些场景下(如避免端口冲突、增强安全性或自定义服务需求),用户需要修改 httpd 的默认端口。本文将详细介绍如何在 Linux 系统中修改 httpd 的默认端口,并确保配置生效。

一、修改 httpd 默认端口的步骤

1. 查找 httpd 配置文件路径

Apache 的配置文件通常位于以下路径之一,具体取决于 Linux 发行版:

  • CentOS/RHEL:/etc/httpd/conf/httpd.conf
  • Ubuntu/Debian:/etc/apache2/ports.conf 或 /etc/apache2/apache2.conf

可以使用以下命令查找配置文件位置:

apachectl -V | grep SERVER_CONFIG_FILE

输出结果会显示主配置文件路径,例如:

SERVER_CONFIG_FILE: "/etc/httpd/conf/httpd.conf"

2. 编辑配置文件

打开配置文件并找到 Listen 指令。默认情况下,Listen 指令可能如下:

Listen 80

将其修改为新的端口号,例如 8080:

Listen 8080

如果需要同时支持 HTTPS,还需修改 HTTPS 的监听端口(默认 443):

Listen 8443

此外,确保 VirtualHost 指令中的端口与 Listen 一致。例如:

<VirtualHost *:8080>
    # 网站配置内容
</VirtualHost>

3. 保存配置文件并重启 httpd 服务

保存文件后,重启 httpd 服务以使配置生效。命令因 Linux 发行版而异:

CentOS/RHEL:

sudo systemctl restart httpd

Ubuntu/Debian:

sudo systemctl restart apache2

4. 检查 httpd 是否监听新端口

使用以下命令确认 httpd 是否已绑定到新端口:

sudo netstat -tuln | grep 8080

或:

sudo ss -tuln | grep 8080

输出示例:

tcp  0  0 0.0.0.0:8080  0.0.0.0:*  LISTEN

二、常见问题与解决方案

1. 端口被占用

如果新端口已被其他服务占用,httpd 将无法启动。解决方法:

  • 修改 Listen 指令为未被占用的端口。
  • 使用 netstat 或 lsof 查找占用端口的进程并终止它:

sudo lsof -i :<端口号>

2. 防火墙限制

Linux 的防火墙(如 firewalld 或 iptables)可能阻止外部访问新端口。解决方案:

firewalld:

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

iptables:

sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
sudo service iptables save

3. SELinux 限制

SELinux 可能阻止 Apache 使用非标准端口。解决方案:

查看 SELinux 状态:

sestatus

如果启用,允许 httpd 使用新端口:

sudo semanage port -a -t http_port_t -p tcp 8080

三、验证修改是否生效

本地测试:

使用 curl 命令测试本地访问:

curl http://localhost:8080

远程访问:

在浏览器中输入 http://<服务器IP>:8080,确认是否能正常访问网站。

四、注意事项

备份配置文件:

修改前备份原始配置文件,避免误操作导致服务中断:

sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak

兼容性:

如果网站依赖 HTTPS,需同时修改 SSL 配置中的端口(如 443 → 8443)。

安全性:

使用非标准端口(如 8080)可减少自动化攻击的风险,但仍需结合其他安全措施(如防火墙规则、SSL/TLS 加密)。

五、总结

通过修改 Listen 指令并调整防火墙和 SELinux 配置,可以轻松更改 Apache HTTP Server 的默认端口。这一操作适用于解决端口冲突、优化安全策略或满足特定业务需求。在实际操作中,请务必验证配置的正确性,并确保服务在重启后正常运行。

如果遇到问题,可通过查看日志文件(如 /var/log/httpd/error_log 或 /var/log/apache2/error.log)快速定位原因。掌握这一技能将帮助您更灵活地管理 Linux 上的 Web 服务。

到此这篇关于Linux中修改Apache HTTP Server(httpd)默认端口的完整指南的文章就介绍到这了,更多相关Linux修改httpd默认端口内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • linux swap交换分区(详解)

    linux swap交换分区(详解)

    当物理内存和swap都被使用完那么就会出错,out of memory,本文即将学习linux swap交换分区来解决这个问题
    2021-08-08
  • 对send(),recv()函数的全面理解

    对send(),recv()函数的全面理解

    下面小编就为大家带来一篇对send(),recv()函数的全面理解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • RHCE桥接,免密登录和修改端口号介绍

    RHCE桥接,免密登录和修改端口号介绍

    大家好,本篇文章主要讲的是RHCE桥接,免密登录和修改端口号介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Apache安装配置避坑指南

    Apache安装配置避坑指南

    这篇文章主要介绍了Apache安装配置避坑,很多小伙伴会遇到两个问题,一个是80端口被占用另一个是监听端口443端口被占用,本文给大家分享解决方法,需要的朋友可以参考下
    2022-09-09
  • 在Debian系的Linux中检查软件包是否被安装的方法

    在Debian系的Linux中检查软件包是否被安装的方法

    这篇文章主要介绍了在Debian系的Linux中检查软件包是否被安装的方法,采用bash shell操作、适用于Ubuntu等Debian系的Linux系统,需要的朋友可以参考下
    2015-03-03
  • 通过yum升级CentOS/RHEL最小化安装的方法

    通过yum升级CentOS/RHEL最小化安装的方法

    下面小编就为大家带来一篇通过yum升级CentOS/RHEL最小化安装的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • Ubuntu系统下用Crontab命令定时执行PHP文件详解

    Ubuntu系统下用Crontab命令定时执行PHP文件详解

    这篇文章主要给大家介绍了在Ubuntu系统下用Crontab命令定时执行PHP文件的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • Linux使用perf跟踪.NET程序的mmap泄露的流程步骤

    Linux使用perf跟踪.NET程序的mmap泄露的流程步骤

    如何跟踪.NET程序的mmap泄露,这个问题困扰了我差不多一年的时间,即使在官方的github库中也找不到切实可行的方案,这几天我仔仔细细的研究这个问题,结合大模型的一些帮助,算是找到了一个相对可行的方案,本文将介绍Linux使用perf跟踪.NET程序的mmap泄露的流程步骤
    2025-05-05
  • centOS7 桥接模式设置静态Ip的方法步骤

    centOS7 桥接模式设置静态Ip的方法步骤

    这篇文章主要给大家介绍了关于centOS7 桥接模式设置静态Ip的方法步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用centOS7具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • Linux中sudo、su和su -命令的区别小结

    Linux中sudo、su和su -命令的区别小结

    我们知道,在Linux下对很多文件进行修改都需要有root(管理员)权限,比如对/ect/profile等文件的修改。下面这篇文章主要给大家总结介绍了关于Linux中sudo、su和su -命令的区别的相关资料,需要的朋友可以参考下
    2018-09-09

最新评论