我刚刚成功安装并设置了 Ubuntu Server 16.04,其中包括 webmin、phpmyadmin 等。
我可以通过远程登录/ftp 等从家庭网络内的其他电脑访问它,但我不确定如何设置我希望托管的网站的公共访问权限,因为我坐在 Virgin Media SuperHub(软件版本“V1.01.11”硬件版本 1.03)后面。
除非我向 Virgin Media 付费并成为企业用户,否则我似乎无法拥有静态 IP 地址。当我试图实现可公开访问的 Web 服务器时,如果 DHCP 无法使用,我有什么选择?
由于我目前失业了,所以我想尽可能地省钱,并希望可以使用服务器来展示在线作品集,这就是我选择这条路线的原因。
答案1
这很简单。您需要在 ubuntu 服务器上设置一个静态 IP,该 IP 将位于您的 LAN 内。
例如...
Virgin Media Superhub - 192.168.0.1
Ubuntu Web Server - 192.168.0.5
您需要在超级集线器上启用端口转发以指向您的 Ubuntu 服务器 IP。如果您只想托管 http,则只需转发端口 80、tcp。如果您还想使用 SSL,请转发 443 tcp。
接下来您需要选择一个动态 DNS 提供商。此服务会监听来自您的 Ubuntu 服务器的请求,您的服务器会将其公共 IP 地址报告给该服务,然后该服务会分配一个动态 DNS 条目以指向您的公共 IP。当您的 IP 发生变化时,该服务会意识到这一变化,然后重新分配给您的新 IP。
我不会详细介绍选择,因为 Ubuntu 有一个社区维基页面,将继续维护最新和最好的内容。
该信息可在此处找到。 https://help.ubuntu.com/community/DynamicDNS
答案2
对于 Web 服务器来说,没有静态 IP 地址是一个问题,理论上可以编写一个脚本来检查您当前的 WAN IP 地址,然后(如果可能)将该 IP 自动更新为您已购买的域名(如果 DNS 提供商允许某种自动更新机制)。
即使您可以这样做,您仍可能会遇到问题,您的 DNS 名称/URL 的新 IP 地址会通过 DNS 根服务器进行级联,并且不是每个人都能立即拥有/获取新的 IP 地址,或者试图缓存域名 IP 的人等等。
但如果服务器的 IP 不断变化,这将是找到服务器的唯一方法。
但您仍然需要为域名/URL 付费。
编辑:在我发表我的想法时,其他人也发表了相同的想法,抱歉重复回答。
答案3
我认为最简单的方法是这样的:
首先将您的 ubuntu 服务器配置为具有静态本地 IP,如下所述:https://help.ubuntu.com/lts/serverguide/network-configuration.html
然后打开您路由器所需的端口,例如 apache 默认端口是 80(我的路由器上的配置可以从
Advanced Setup
->NAT
->完成Virtual Servers
)。最后使用免费服务获得免费域名,例如http://www.noip.com/。首先您需要一个帐户,然后选择一个免费域名(免费域名的结尾很奇怪,例如
.ddns.net
),然后安装 noip duc 并使其在启动时运行(如果您对网站指南有疑问,我可以为您提供进一步的说明)。每次您的新网络 ip(路由器的 ip 而不是本地 ip)都会更新并将其指向您选择的域名。
例如,我的服务器的本地 IP 是 192.168.2.222(当我想从同一网络内的本地 PC 访问它时我会使用它),域名是 lichking.ddns.net,它指向我当前拥有的 IP(我使用它从网络之外的任何地方访问我的服务器)。