重启httpd失败:无法绑定0.0.0.0:443及[::]:443端口求助
Apache重启失败:443端口绑定错误及IPv6配置问题
错误日志信息
重启httpd时,/var/log/httpd/error_log中出现以下错误:
[Tue Sep 13 16:32:12.154638 2022] [core:crit] [pid 3255] (22)Invalid argument: AH00069: make_sock: for address [::]:443, apr_socket_opt_set: (IPV6_V6ONLY) (98)Address already in use: AH00072: make_sock: could not bind to address [::]:443 (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:443
已做的排查
执行命令检查443端口的配置重复情况:
$ sudo grep '443' -r /etc/httpd/conf.d/* /etc/httpd/conf.d/corona-web-app.conf:<VirtualHost *:443> /etc/httpd/conf.d/ssl.conf:Listen 443 https /etc/httpd/conf.d/ssl.conf:#NameVirtualHost *:443 /etc/httpd/conf.d/ssl.conf:#<VirtualHost _default_:443> /etc/httpd/conf.d/ssl.conf:##ServerName www.example.com:443
环境信息
- Apache版本:
$ sudo httpd -v Server version: Apache/2.4.6 (CentOS) Server built: Mar 24 2022 14:57:57
- 操作系统:
$ cat /etc/os-release NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7"
- PHP版本:
$ php -v PHP 5.4.16 (cli) (built: Apr 1 2020 04:07:17) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies with Zend OPcache v7.0.5, Copyright (c) 1999-2015, by Zend Technologies
额外说明
服务部署在Amazon LightSail,防火墙已开放22、80、443端口,目前无法定位问题,寻求解决思路。
解决思路
检查端口占用进程
用ss或netstat找出占用443端口的进程:sudo ss -tulpn | grep :443 # 或 sudo netstat -tulpn | grep :443若发现其他进程(如nginx、重复的httpd实例)占用,停止对应进程后重启httpd。
修复IPv6_V6ONLY配置错误
错误提示指向IPv6配置问题,可通过两种方式处理:- 禁用系统IPv6:编辑
/etc/sysctl.conf,添加/修改:
执行net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1sudo sysctl -p生效后重启httpd。 - 强制Apache仅监听IPv4:修改
/etc/httpd/conf.d/ssl.conf中的Listen指令为Listen 0.0.0.0:443 https,避免监听IPv6地址。
- 禁用系统IPv6:编辑
全面检查Apache监听配置
排查主配置文件是否存在重复监听:sudo grep -r "Listen 443" /etc/httpd/若发现重复的
Listen 443指令,注释掉多余项。验证配置语法
检查Apache配置文件是否存在语法错误:sudo httpd -t根据提示修复错误后再重启服务。
检查SELinux规则
CentOS 7默认开启SELinux,可能影响端口绑定:sudo getsebool -a | grep httpd若
httpd_can_network_connect未开启,执行:sudo setsebool -P httpd_can_network_connect on
内容的提问来源于stack exchange,提问作者Juan Manuel Etchebarne Arias
相关产品推荐
相关产品推荐

