新安装的 Linux,无法使 ssh 或 http 连接正常工作,连接已建立但断开?

新安装的 Linux,无法使 ssh 或 http 连接正常工作,连接已建立但断开?

因此,我/我们有全新的 Fedora Core 28 安装,我们一直在尝试将其上线。据我们所知,安装过程非常顺利。它有两个网卡,一个用于内部网络,一个具有固定 IP 地址。它是一台服务器,因此其主要工作是运行 Web 服务器。httpd并且它必须可以从控制台以外的其他方式访问,因此它正在运行sshd

一开始,一切似乎都正常。第一次使用网络是使用 yum 安装许多软件包,没有问题。我们添加了gnomeGUI,添加了firefoxWeb 浏览器,然后使用它来帮助获取故障排除数据。内网上的连接很好。连接SSH没有问题,并且至少设置了一个帐户以使用加密密钥来避免密码。使用内部和外部 IP 连接到新的 Web 服务器似乎也很好。所以,我们觉得我们已经确认ssh和 Web 服务器配置正确。...最初,我们不知道有什么问题。

当我们开始与外界建立连接时,事情就“出问题了”。尝试连接SSH完全失败,与 Web 服务器的连接似乎也完全失败。

第一次尝试是使用防火墙。它是如何配置的?是iptables还是firewalld?我们如何确保可以从外部通过?我们发现不知何故我们将 中的例外配置为-在我们的例子中/etc/firewalld/zones默认区域是,我们在重新启动时注意到它对此有抱怨,并将其更改为,这样我们就不再注意到任何抱怨了。仍然没有快乐。"FedoraServer.xml"httpdhttp

然后就是nmap!这是 Linux 系统的端口扫描器,用于查看任何网络目标的开放端口。这似乎表明我们没有被防火墙阻止。我们确认iptables未被使用,但 确实被使用了firewalld,所以我们将其关闭,但仍然没有结果。

然后我们考虑了较旧的设备。双绞线以太网端口是双向设备,因此外部端口的入站情况可能良好而出站情况则不好吗?或者,交换机上可能有一个坏端口?因此,我们尝试交换它们,内部和外部。没有变化。

然后我们考虑了一下,也许路由器在过滤,尽管它不应该这样做。新盒子是用来替换一个退役的旧盒子的,旧盒子功能齐全,但谁知道呢?也许路由器已经疯了?所以,我们去登录看看。但不幸的是,没人能找到路由器的密码。

相反,由于路由器只通过系统的外部 IP 来识别系统,因此我们关闭了一个功能齐全的系统,并让新系统获取已关闭系统的 IP 地址。这排除了路由器作为潜在原因的可能性,至少我们是这么认为的。然而,问题仍然存在。

有人认为可能是路由器出了问题,因为它可能正在获取 MAC 地址,因此为了排除这种可能性,我们重新启动了路由器。同样,情况没有任何改善。

然后,我突然意识到,请我们的外部测试人员通过在命令行中添加 -v(最多可以添加三个)来增加 ssh 连接诊断数据的详细程度,并请我们的内部系统管理员检查 Apache 日志。这非常有帮助。我们发现,外部感知正在ssh进入我们的sshd守护进程,但连接被断开,而且 Web 服务器日志显示来自我们预期位置的正确入站连接,并记录“200”作为结果,这意味着httpd认为 Web 客户端正在获取他们的页面。但事实并非如此。

好的,那么现在怎么办?

答案1

经过巨大的痛苦如上所述,我认为需要进行一次彻底、细致的调查,而且我也这样做了。我们找到了解决方案,而且非常简单!

必须明白的是,几位在该领域拥有 30 多年经验的资深专家都忽略了这一点!

原因很简单,就是盒子上的默认路由有一个字符错误;它正在寻址路由器,但路由器响应的两个 IP 地址中有一个是错误的!一个地址用于通过端口 80 连接操纵路由器,另一个地址用于路由出站流量。

记住这一点很有用:入站连接在某个特定点之前都是良好的,当返回工作切换焦点时,然后,当响应从内部而不是外部发起时,路由必须是正确的,但事实并非如此。这就是它失败的原因。

我不完全确定为什么出站发起的连接工作得如此顺利,但合理的猜测是路由器意识到它在错误 IP 地址上收到的数据包仍然在向外发送,因此进行了相应的路由。嗯。非常感谢您的意见。

简单地说,仅仅因为您正在与路由器对话并不意味着您拥有正确的出站路由地址!至少对我们来说是这样。

相关内容