Ubuntu 17.10 没有本地主机之外的外部连接

Ubuntu 17.10 没有本地主机之外的外部连接

在过去的 8 个小时里,我一直在为这个问题苦苦思索,但我无论如何也找不到问题所在。

我在安装了 apache2 的机器上安装了全新的 Ubuntu 17.10。当我尝试连接到本地主机上的服务器时,我像往常一样获得了 Ubuntu 测试页面。但是当我尝试从本地主机以外的任何地方连接时,我什么也得不到。无论我使用什么浏览器,都只是显示连接已超时。

我尝试 ping 服务器,ping 成功。我网络上的其他每台机器都可以在端口 80 上接收流量,因此排除了路由器的问题。UFW 处于非活动状态,所以我看不出它怎么会造成干扰。我甚至尝试在同一台机器上切换到不同的操作系统,切换操作系统时它可以工作,但它无法与 17.10 配合使用。

我现在已经束手无策了,不知道下一步该怎么办。

如能得到任何帮助我们将非常感激,提前谢谢!

答案1

网络堆栈的常规故障排除如下:

  1. 首先检查您的服务是否正在运行并监听网络套接字(接口),即 ipaddress 和端口号。通过运行以下命令:

    netstat -lanp | grep apache2
    
  2. 记下上面命令中的 IP 地址和端口号。在我的例子中

    tcp6       0      0 :::80               :::*              LISTEN      12253/apache2  
    tcp6       0      0 :::443              :::*              LISTEN      12253/apache2
    
  3. 尝试从另一台机器远程登录到你的套接字

    telnet ipaddress_ofyour_apache_host 80
    

    你应该得到

    Trying ipaddress_ofyour_apache_host..
    Connected to ipaddress_ofyour_apache_host
    
  4. 如果你能连接上,这意味着在操作系统网络层面一切正常,没有防火墙阻止或其他问题

  5. 如果你仍然没有从 apache 获得欢迎页面,请继续检查 apparmor,并暂时禁用它

    sudo systemctl stop apparmor.service
    sudo update-rc.d -f apparmor remove
    
  6. 如果仍然没有看到页面,请通过 Web 浏览器再次检查,然后检查 apache2 access.log

答案2

好吧,问题已经解决了,但不幸的是我无法解释具体原因。我在路由器中对服务器进行了静态映射,我猜服务器不喜欢它。我切换了服务器的 IP 地址,它似乎运行正常。

相关内容