Mau*_*cio 5 server ftp internet file-sharing 15.10
我的 Ubuntu 服务器在 Intranet 中运行良好,我需要从 Internet 访问我的文件。我阅读了论坛,但不太了解它们。有简单的方法吗?安全不是现在的首要任务。
安全始终是重中之重,恐怕没有比这更简单的方法了:
您需要为您希望通过互联网访问的所有端口设置端口转发。请注意,每个开放端口都会带来潜在的安全风险,因此此处应稀疏。查看按服务列出的端口号列表,了解要转发哪些端口。最常转发的是:
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 访问您的网络服务器。他们只需213.109.33.44:80在浏览器的地址字段中输入 IP 和端口即可。在此示例中,我80显式指定了端口,但通常不需要。如果 80 端口被阻止,请改用其他端口。作为获取互联网 IP 的多种方法之一,您可以在 shell 中输入以下命令:
dig +short myip.opendns.com @resolver1.opendns.com
Run Code Online (Sandbox Code Playgroud)
通过 IP 访问服务器的问题有两个:
为了解决这些问题,您可以向国家机构注册域名,并在每次更改时手动或自动更新与该域名关联的 IP,或者使用动态 DNS 提供商。我会稍微谈谈后者。
我使用noip,它们是免费的,并且每个月左右都会缠着你升级到他们的付费帐户。这只是基于 5 年前可用的情况的个人选择。您应该参考最近提供的动态 DNS 比较来进行选择。
反过来,这些动态 DNS 服务将为您提供从 URL(例如www.your-server.no-ip.com您的实际 IP)的重定向。对于noip,您的服务器地址将是其顶级域之一(此处为 no-ip.com)的子域。一般来说,您可以选择您喜欢的任何子域名,例如fluffy-bunnies.no-ip.com.
拥有帐户后,您可以配置路由器(如果支持的话 - 请参阅其手册)或 Ubuntu 来更新外部 DNS 服务。需要定期向服务通知您更改的服务器 IP。同样,确切的过程取决于您的动态 DNS 提供商。他们的网站上通常有说明。我发现这ddclient是一个很好的方法。它支持最常见的提供商。要安装它,请使用:
sudo apt-get install ddclient
Run Code Online (Sandbox Code Playgroud)
然后编辑.config文件中的配置文件/etc/ddclient.conf。我的noip看起来像这样:
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
Run Code Online (Sandbox Code Playgroud)
更改将在服务器重新启动后或使用以下命令重新启动后生效ddclient:
sudo service ddclient restart
Run Code Online (Sandbox Code Playgroud)
这适用于Ubuntu 14.04.3 LTS (Trusty Tar)和ddclient 3.8.1。
就像 @fkraiem 在评论中所说,您需要在路由器上设置端口转发。并非所有路由器实际上都具有此功能,但较新的 Linksys/Belkin 路由器具有此功能,并且 Cisco 路由器都应该具有端口转发功能。
由于您没有提供太多详细信息,我无法提供准确的教程,但如果您碰巧在路由器的 Web 界面中找到端口转发菜单,您将需要将端口 80 转发到服务器的 IP 地址。
注意:出于“安全原因”,许多 ISP 实际上会阻止端口 80 的传入连接。您可能需要更改您的 Web 服务器以在端口 8080 上运行并转发该端口。
设置端口转发后,您需要知道您的外部 IP 才能进行连接。您只需谷歌“我的 IP 是什么”即可找到它。请注意,该 IP 通常是动态的,这意味着它会定期更改。如果您想要一个永久地址,我建议使用No-IP来设置动态 DNS。
如果您需要更多详细信息,请留下您的路由器型号的评论,我可以进一步提供帮助。
小智 0
将服务器上线可能与您创建的服务器无关,而是需要设置路由器/防火墙以允许从互联网访问服务器。这个过程有几种不同的方法。在允许从互联网到 LAN 的入站流量之前,您应该考虑您的网络拓扑及其结构。我建议您将 PFSnense 作为防火墙,并使用它在您的网络上创建 DMZ(非军事区)。这是您的网络的一个分支,您的主 LAN 可以访问该分支,但 DMZ 无法访问该 LAN。这是您的服务器硬件所在的位置。此外,您拥有的广域网地址类型也会影响您能否访问服务器提供的服务。如果您有通过 DHCP(动态主机控制协议)提供的地址,那么您将需要动态 DNS 提供商。我假设情况确实如此,因为静态 IP 地址是有成本的,如果您以前从未将服务器上线,那么您就没有理由使用静态 IP 地址。话虽如此,该过程应该如下所示:
步骤1)
让一台旧计算机充当防火墙。确保它至少有 3 个以太网控制器端口。安装 PFSense,并将其设置为 1 个控制器为 LAN 端口、1 个控制器为 DMZ 端口、1 个控制器为 WAN 端口。要在此配置中设置防火墙,请查看以下页面。
http://linoxy.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 复制到浏览器中才能查看页面。