![无法从外部网络访问 Ubuntu Web 服务器站点](https://linux22.com/image/1052708/%E6%97%A0%E6%B3%95%E4%BB%8E%E5%A4%96%E9%83%A8%E7%BD%91%E7%BB%9C%E8%AE%BF%E9%97%AE%20Ubuntu%20Web%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%99%E7%82%B9.png)
因此,我在 Ubuntu 14.04 服务器发行版上设置了一个 LAMP Web 服务器,并在其上安装了 owncloud 和 wordpress。它通过以太网连接到网络,据我所知,连接性很好(它可以 ping 站点并顺利获取更新)。当我从服务器所连接的路由器连接到无线网络(同一网络)时,我可以正常访问 wordpress 和 owncloud。但是,当我尝试从其他网络位置(例如从我的公寓)访问它时,问题就出现了。会话超时。
我按照指示检查了端口 80 和 443 的端口转发(ZyXEL PK5001Z-CenturyLink 路由器)http://portforward.com/english/routers/port_forwarding/ZyXEL/PK5001Z-CenturyLink/Apache.htm。我尝试对服务器 IP 地址上的每个端口进行 ping 操作,但没有成功。
我对编程和网络还很陌生,所以这可能是一个简单的解决方案,我只是不知道该去哪里找。任何建议都将不胜感激。服务器和地址的信息列在下面。提前谢谢您。
IP:192.168.0.170
URL:fernweh.ddns.net“/wordpress”或“/owncloud”
通过 noip.com 分配动态 IP
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 更新
好的,我按照建议配置了 noip2,但仍然没有成功。我还在几个较高的端口上设置了端口转发(也按照建议),仍然没有成功。
然后我检查了哪些端口实际上是打开的
'nmap -v -sT local'
发现了 1000 个端口,其中只有 2 个未被过滤
'80/tcp http open
443/tcp https closed'
我是否需要使用
'iptables -A INPUT -p tcp --dport "port number" -j INPUT'
或者说这不相关?
答案1
192.168.0.170 是服务器在您的私有 LAN 中使用的私有 IP 地址。任何人都可以使用它,因此永远不会路由到互联网。要访问互联网,您需要将路由器指定为默认网关。您已经知道这一点,因为您在路由器上启用了端口转发。
当我 ping 你的 DDNS 地址时,fernweh.ddns.net
它会解析为你的内部 IP
$ ping fernweh.ddns.net
PING fernweh.ddns.net (192.168.0.170) 56(84) bytes of data.
由于上述原因,这是行不通的。
我想你已经在运行 NoIP 客户端了?如果是,请重新配置它
sudo /usr/local/bin/noip2 -C
如果没有,请下载并安装就像描述的一样。由于只给出链接而不给出其他内容的做法不太好:
下载源码包到你的主文件夹并解压
cd ~/Downloads
wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
tar xf noip-duc-linux.tar.gz
cd noip-2.1.9-1/
切换到root:sudo -s
并安装
make install
最后,您需要运行它noip2
或将其设为服务,以便它在启动时运行。(请参阅README.first
源文件夹中的)
它将编译二进制文件并引导您完成配置。
此外:
- 您无法 ping 端口。
ping
通过发送 ICMP 数据包来工作。与 TCP/UDP 不同,ICMP 没有端口的概念。您的路由器和/或 ISP 可能会阻止 ping 到您。 - 正如@Zacharee1 和@Daniel 在评论中提到的,您的 ISP 也可能阻止了 HTTP(S) 等知名端口。在高端口上运行您的 Web 服务器。这样,您还可以获得非常轻微的攻击保护,因为需要进行完整的端口扫描才能发现正在运行的 Web 服务器。请注意,这不是足够的安全措施!保持您的 WordPress 和 OwnCloud 安装为最新版本。