![如何将我的服务器放在互联网上?](https://linux22.com/image/1053889/%E5%A6%82%E4%BD%95%E5%B0%86%E6%88%91%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%94%BE%E5%9C%A8%E4%BA%92%E8%81%94%E7%BD%91%E4%B8%8A%EF%BC%9F.png)
我在内联网上有一个运行良好的 Ubuntu 服务器,我需要从互联网访问我的文件。我阅读了论坛,但不太了解。有简单的方法吗?安全现在不是首要任务。
答案1
安全永远是首要任务,恐怕没有比这更简单的方法了:
转发端口
您需要为所有希望通过互联网访问的端口设置端口转发。请注意每个开放端口都存在潜在的安全风险,所以这里要稀疏一些。看一个按服务列出的端口号列表了解要转发哪些端口。最常转发的是:
- 端口
22
:SSH(用于远程管理您的服务器) - 端口
80
:HTTP(网站) - 端口
443
:HTTPS(加密网站) - 端口
989-990
:FTP(文件共享)
转发端口的具体过程因路由器供应商不同而不同,甚至因型号不同而不同。您必须查阅路由器手册和/或互联网以了解您的特定路由器。下面,我附上了 Ubee 我的电缆调制解调器菜单的图片。
基本上,您指定传入端口范围(80-80
对于 http)、要将数据包转发到的服务器的本地 IP(192.168.10 in my picture
)以及请求应转到的服务器端口范围(again 80-80 in my example
)。
请注意,一些互联网服务提供商会80
专门阻止您运行自己的家庭网络服务器。这只不过是烦人而已,因为您可以使用另一个端口。许多动态 DNS 服务(见下文)允许指定备用端口。要获取有关您的互联网连接的非常全面的信息,包括哪些端口被阻止,您可以使用netalyzr加州大学伯克利分校。如果不起作用,你可以使用其他东西或者检查浏览器中是否允许 Java Applet
通过互联网IP访问
完成此操作后,人们就可以通过您的互联网 IP 访问您的 Web 服务器。他们只需213.109.33.44:80
在浏览器的地址栏中输入 IP 和端口(例如)。在此示例中,我80
明确指定了端口,这通常不需要。如果端口 80 被阻止,请使用其他端口。作为获取互联网 IP 的多种方法,你可以在shell中输入以下命令:
dig +short myip.opendns.com @resolver1.opendns.com
通过 IP 访问服务器的问题有两个:
- IP 很难记住
- 如果您的互联网服务提供商决定更改(有时不经通知),IP 可能会发生变化,除非您支付静态 IP。
动态 DNS 服务
为了解决这些问题,您可以向您所在国家的主管部门注册一个域名,并在每次更改时手动或自动更新与该域名关联的 IP,或者使用动态 DNS 提供商。我将稍微讨论一下后者。
我用诺伊普,它们是免费的,只会每个月左右骚扰你升级到付费账户。这只是基于 5 年前可用的个人选择。你应该咨询最近的动态 DNS 提供的比较选择。
反过来,这些动态 DNS 服务将为您提供从 URL 重定向www.your-server.no-ip.com
到您的实际 IP。 为了诺伊普您的服务器地址将是其顶级域名之一的子域名(此处为 no-ip.com)。通常,您可以选择任何您喜欢的子域名,例如fluffy-bunnies.no-ip.com
。
自动更新动态 DNS 提供商的 IP
拥有帐户后,您可以配置路由器(如果支持 - 请参阅其手册)或 Ubuntu 以更新外部 DNS 服务。服务需要定期收到您更改的服务器 IP 的通知。同样,确切的过程取决于您的动态 DNS 提供商。他们通常在其网站上提供说明。我发现这ddclient
是一种很好的方法。它支持大多数常见的提供商。要安装它,请使用:
sudo apt-get install ddclient
然后编辑配置文件/etc/ddclient.conf
。我的是诺伊普看起来像这样:
protocol=dyndns2
daemon=36000
pid=/var/run/ddclient.pid
ssl=yes
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
server=dynupdate.no-ip.com
login=confus
password='1234321'
conserve.no-ip.org
重新开始
更改将在服务器重启后或使用以下命令重新启动后生效ddclient
:
sudo service ddclient restart
这对Ubuntu 14.04.3 LTS (Trusty Tar)
和 都有效ddclient 3.8.1
。
答案2
就像 @fkraiem 在评论中说的,你需要在路由器上设置端口转发。实际上并非所有路由器都提供此功能,但较新的 Linksys/Belkin 路由器提供此功能,而 Cisco 路由器应该都提供端口转发功能。
由于您没有提供太多细节,我无法提供确切的教程,但如果您碰巧在路由器的 Web 界面中找到端口转发菜单,您将需要将端口 80 转发到服务器的 IP 地址。
注意:许多 ISP 实际上会出于“安全原因”阻止对端口 80 的传入连接。您可能必须将 Web 服务器更改为在端口 8080 上运行并进行转发。
设置好端口转发后,您需要知道外部 IP 才能连接。您只需谷歌搜索“我的 IP 是什么”即可找到它。请注意,此 IP 通常是动态的,这意味着它会定期更改。如果您想要一个永久地址,我建议使用无IP设置动态 DNS。
如果您需要更多详细信息,请留下您的路由器型号的评论,我可以提供进一步的帮助。
答案3
将服务器上线可能与您创建的服务器无关,而是需要设置路由器/防火墙以允许从互联网访问服务器的过程。此过程有几种不同的方法。在允许从互联网到 LAN 的入站流量之前,您应该考虑网络拓扑及其结构。我建议您将 PFSnense 作为防火墙,并使用它在您的网络上创建 DMZ(非军事区)。这是您的网络的一个分支,您的主 LAN 可以访问该分支,但 DMZ 无法访问该 LAN。这是您的服务器硬件所在的位置。此外,您拥有的广域网地址类型也会影响您能否访问服务器提供的服务。如果您拥有通过 DHCP(动态主机控制协议)提供的地址,则需要动态 DNS 提供商。我假设情况确实如此,因为静态 IP 地址需要付费,如果您以前从未将服务器上线过,则没有理由购买静态 IP 地址。话虽如此,该过程应按如下方式进行:
步骤1)
找一台旧电脑作为防火墙。确保它至少有 3 个以太网控制器端口。安装 PFSense,并将其设置为一个控制器为 LAN 端口,一个控制器为 DMZ 端口,一个控制器为 WAN 端口。要在此配置中设置防火墙,请查看以下页面。
http://linoxide.com/firewall/install-pfsense-firewall/
进而
doc.pfsense.org/index.php/Example_basic_configuration
第2步)
设置动态 DNS URL:
或者(稍微容易一些,但可能会花钱)
dyn.com/远程访问/
步骤3)
为您的域名创建一个指向动态 DNS URL 的 cname 别名。
步骤4)
配置您的 PFSense 安装以使用您选择的动态 DNS 方法。
如果您选择不使用动态 DNS(这完全有可能),则需要将防火墙的 WAN 端口配置为使用静态 IP 地址。然后,您需要将 URL 的 @A 记录指向该静态 IP 地址。
静态 IP 步骤 2)
portal.pfsense.org/docs/manuals/c2758/getting-started.html
静态 IP 步骤 3)
然后登录您的域名注册商并更新 @A 记录以指向您的 WAN 端口上的静态 IP 地址。在执行这些操作之前,请确保您已完成设置 DMZ 的第一步。有很多探测器试图侵入您的服务器并恶意使用它。
笔记
抱歉,我只能在此说明中发布两个链接。您需要将 URL 复制到浏览器中才能查看页面。