【问题标题】:Apache Server Port ConfigurationApache 服务器端口配置
【发布时间】:2015-07-29 11:51:07
【问题描述】:

当我运行 Apache 并将其配置为侦听端口 80 和 443 时,它是否只侦听我网络上的本地流量?如何判断我的服务器是否对网络可见? (我想将其保密以用于本地开发目的)我认为为了让其他人能够访问我的服务器,我实际上必须在我的路由器上打开端口 80 和 443,但我不得不说我很困惑。任何帮助将不胜感激!

【问题讨论】:

    标签: apache


    【解决方案1】:

    端口与它是否在网络上可见无关。这是服务器正在侦听的IP address,以及是否允许IP address,如果前面有防火墙,则接受入站连接。因此,如果您使用LocalhostRFC 1918 IP 地址,则无需担心。它必须使用可公开访问的 IP 地址或主机名。

    当 Apache 启动时,它会绑定到本地的某个端口和地址 机器并等待传入​​的请求。默认情况下,它监听所有 机器上的地址。但是,可能需要告诉它听 特定端口,或仅在选定的地址上,或组合 两个都。这通常与虚拟主机功能结合使用,该功能 确定 Apache 如何响应不同的 IP 地址、主机名 和端口。

    https://httpd.apache.org/docs/2.2/bind.html

    此外,如果您在路由器后面,则在您将路由器转发到 80 或 443 之前,没有任何东西可以从外部通过。

    【讨论】:

    • 那个答案不是 100% 正确的。如果路由器连接到互联网(人们没有指定路由器的类型或品牌)并且默认情况下路由器将连接主机的标准端口映射到路由器的基于外部接口,那么问题是合法的 - 默认情况下是 apache听 0.0.0.0。
    • @Jobst 不,它没有。如果将自身绑定到机器上的所有 IP 地址。他可能不会在接口上配置 IP 地址 0.0.0.0。所以我的回答没有错。
    【解决方案2】:

    您没有指定您正在使用的操作系统/发行版,因此很难猜测 apache.conf 或 httpd.conf 的位置,您需要找到它(包括 ssl.conf 文件)。

    在顶部的某个地方,您会发现几行谈论“Listen: 允许您绑定 apache”。您可以将其限制为本地计算机的网络,包括本地主机,现在假设您的 ipaddress 是 192.168.10.1:

    Listen 127.0.0.1:80
    Listen 192.168.10.1:80
    

    再往下一点你会发现一个部分在谈论“DocumentRoot”,然后它会谈论“Directory”,让它看起来像:

    <Directory />
      Order Allow, Deny
      Deny From All
      allow from 192.168.0.0
      allow from 127.0.0.1
    </Directory>
    

    并取决于您的文档根目录:

    <Directory /var/www>
      Order Allow, Deny
      Deny From All
      allow from 192.168.0.0
      allow from 127.0.0.1
    </Directory>
    

    这将只允许本地流量到达您的服务器。你需要确保你的ip地址在192.168.0.0的范围内。

    请注意,您需要在名为“ssl.conf”的文件中执行相同操作。

    【讨论】:

    • 如果他的路由器没有端口转发,这一切都不是必需的。他已经说过了。阅读我的更新和我的其他评论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 2014-09-26
    • 2015-04-10
    • 2017-06-01
    相关资源
    最近更新 更多