服务器:已安装 CentOS 6、Apache 2.2 和 OpenVPN。
httpd.conf 包含:
#Listen 443
Listen 80
网站使用 https 工作,所以我认为 OpenVPN 可能正在监听 443 并转发到 Apache(端口共享),但我找不到此配置。此外,如果是这种情况,Apache 应该在第二个端口上监听以接受转发的请求,不是吗?
我搜索了所有配置包含,没有其他 Listen 指令。我还重新启动了 Apache。
如果我尝试查看哪个进程在监听 443:
# lsof -i tcp:443
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 1635 root 6u IPv6 352710 0t0 TCP *:https (LISTEN)
httpd 1259 apache 6u IPv6 352710 0t0 TCP *:https (LISTEN)
httpd 2286 apache 6u IPv6 352710 0t0 TCP *:https (LISTEN)
最后两行重复了约 20 次,但 PID 不同。
还尝试过:
# netstat -tulpn
tcp 0 0 :::443 :::* LISTEN 1635/httpd
以上所有内容似乎都表明 Apache 正在监听。我已验证我正在使用正确的 httpd.conf。
如果我取消注释#Listen 443 并重新启动 Apache,我会收到该端口已被使用的错误。
另外,我尝试注释掉其中一个 SSL vhost,以查看网站是否关闭,结果确实关闭了,所以我知道这是正确的 Apache(我认为排除了单独的 Apache 安装)。
我在 OpenVPN 的 as.conf 中唯一能找到的是:
# web server will use three consecutive ports starting at this
# address, for use with the OpenVPN port share feature
cs.dynamic_port_base=870
我怎样才能找出 443 上正在监听的内容,以便我可以停止它并让 Apache 正常监听?
答案1
SSL 配置(包括Listen
端口 443 的指令)位于/etc/httpd/conf.d/mod_ssl.conf
文件中。如果您找不到该文件,或者找不到Listen
该文件中的正确指令,则说明您的系统存在问题。