我在 Raspberry Pi 上运行一个网络服务器。我的问题是,它在我的家庭网络之外无法工作;在其他任何地方,计算机都无法连接。这是一个 LAMP 服务器,我使用本教程。我认为这与公有/私有 IP 有关;我怎样才能让我的服务器可供外界访问?
我的路由器是 Netgear WNDR3400。
答案1
只是为了收集大家的评论,并澄清一些事情
Web 服务器使用端口 80 (HTTP) 或 443 (HTTPS)。如果您的 Raspberry Pi Web 服务器正在提供网页服务,它将在其中一个常用端口上运行。当然,您可以根据需要使用自定义端口,但是为了访问 Raspberry Pi 上的网页,您需要在 URL 中包含自定义端口号(例如www.raspi.com:8080 or if using IP address: 10.0.0.1:8080
)。如果您只是在 URL 中输入 http 或 https ( eg. http://www.raspi.com or http://10.0.0.1
),那么它将分别是端口 80 和 443。
您与 Raspberry Pi 的 SSH 会话使用端口 22,因为它是安全外壳的“默认”端口。
有关保留/公共端口的更多信息,请检查维基百科
现在回答你的问题
how can I make my server accessible to the outside world?
您需要让您的家庭路由器(如您提到的 Netgear WNDR3400)进行端口转发。默认情况下(出于安全考虑),任何路由器都应该有一个内置防火墙,可以阻止来自外部的未经请求的请求进入您的家庭网络,这就是它为您所做的。有关您的家庭路由器的特定端口转发说明,请按照此来自 portforward.com 的链接
如何设置端口转发的基本思想:
- 登录到您的路由器
- 在路由器上找到端口转发页面
- 在 Raspberry Pi 的 IP 上设置端口转发 80,到端口 80
测试这是否有效:
- 打开浏览器
- 打开你的外部 IP 地址。如果你不知道你当前的外部 IP 是什么,你可以去这里去检查。
- 如果您的端口转发正确完成,并且您的 Raspberry Pi 正确提供页面,您应该能够看到托管在您的 Raspberry Pi 上的网页。
希望这可以帮助。