平台:CentOS Linux 版本 7.5.1804
我有一个刚刚安装的 apache2,我需要让它监听非默认端口以适应主机的防火墙策略。
我将 httpd.conf 改为
收听 7800
当我启动服务时
systemctl 启动 httpd
得到错误
6月20日 09:58:46 ian-ui-esb2 httpd[4834]: (13)权限被拒绝: AH00072: make_sock: 无法绑定到地址 [::]:7800
我使用 lsof 检查了端口未被使用。此外,我还尝试使用以下方法手动启动 httpd:
/usr/sbin/httpd
注意:我以 root 身份执行此操作,因此没有收到权限错误可能并不奇怪。
它运行正常,确实在 7800 上监听,我在浏览器中看到了欢迎页面。我关闭了手动启动的 httpd,浏览器无法连接 - 所以我毫不怀疑我确实在 7800 上运行了 apache。
服务文件与默认安装相同,没有修改。没有特殊用户信息。我不确定 systemctl 会尝试以哪个用户身份运行 httpd。进程持续时间不够长,无法确定。
知道发生什么事了吗?
答案1
有趣的答案是您需要告诉 CentOS 该端口将用于 http!
semanage port -a -t http_port_t -p tcp 7800
就是所需要的一切。