是否可以从家里或 LAN 之外的远程计算机查看我的 Apache 服务器(本地主机)?

是否可以从家里或 LAN 之外的远程计算机查看我的 Apache 服务器(本地主机)?

我正在开发一个网站,需要与其他利益相关者分享进展。

是否可以从家里或 LAN 之外的远程计算机查看我的 Apache 服务器(本地主机)?

答案1

localhost 是一个内部接口,世界其他地方无法使用。

您有两个选择。一个是重新配置您的 Web 服务器以侦听外部接口的端口 80。另一个选择是将 TCP 流量从外部端口 80 转发到本地主机。

无论选择哪种方法,您都需要某种访问限制。

答案2

Web 服务器所在的 LAN 在哪里?如果它在您家中,那么您可以配置您的个人 Soho 路由器,将所有传入 http(80) 的请求转发到本地 LAN 上的特定 IP 地址。这在大多数情况下是通过路由器的管理 Web 界面实现的,该界面可通过设备的网关 IP 访问。您需要确保将 apache 配置为监听计算机的 LAN IP,而不仅仅是环回接口:

netstat -ntlp

这将列出哪些服务正在监听哪个 IP:port。您可能需要修改 apache 的 listen 指令,如下所示:

收听 0.0.0.0:80

并验证 iptables 是否配置为接受发往端口 80 的流量。

如果服务器设置在内部网络上,而您无权访问或修改路由器...那么您不应尝试将该服务器公开。如果您能让它工作,这很可能违反公司政策。

此外,您不必向所有人透露您的家庭 IP 地址(因为它会在某个时间点更改/过期),而是可以给出一个 dyndns 地址。请参阅 dyndns.org

如果这不是您想要的,请在问题中提供更多详细信息。

答案3

设置好 apache 服务器并允许路由器将端口转发到您机器上的 http 端口(假设在家中)。我建议您为家用机器设置静态 ip,并在路由器上设置 dyndns 帐户,这可以帮助您的客户看到您已设置好网络托管。

最好的选择是在上述设置之后,或者如果您有远程服务器,则使用“基本 HTTP 身份验证”,以便只有登录的特定用户才能看到您的页面。

# cat .htaccess # the directory which you want to protect.  
AuthType Basic
AuthName "Beta users only"
AuthUserFile /abs/path/to/passwd/file
Require valid-user 

查看密码命令将用户名和密码填充到 /abs/path/to/passwd/file

答案4

为了鼓励升级到更高端的套餐,并阻止低端套餐大量使用上行流量,ISP 通常会过滤最常见的 Internet 服务器端口。因此,您要做的第一件事就是更改 Apache 正在监听的端口。端口 1024 以上的任何端口通常都是安全的选择。或者,您可以联系您的 ISP,了解他们愿意为解除流量封锁支付多少钱。

Listen 8080
<VirtualHost *:8080>
  # ...
</VirtualHost>

其次,假设您正在使用伪装 NAT 路由器(如果您有路由器,就假设它是),您将需要将相同的端口转发到您的服务器。

第三,如果您的互联网连接有动态 IP 地址,您将需要一个与之一起更新的域名。DynDNS (dyndns.com) 可能是此类解决方案最知名和最值得信赖的提供商。

在设置完成后,有人应该能够通过指定满的URL。可能需要“http”来强制浏览器不尝试使用其他协议,并且必须指定端口,即使使用域名也是如此。

例子:

  • http://<域名或 IP>:<端口»/
  • http://256.256.256.256:8080/
  • http://example.com:8080/

相关内容