如何解决我的 VPS 的网络问题?

如何解决我的 VPS 的网络问题?

问题:我的 Ubuntu VPS 偶尔会出现网络问题。我无法通过 SSH 连接到盒子,也无法通过 IP 地址 ping 盒子。我可以通过主机串行终端访问盒子。当我通过串行访问盒子时,我无法 ping 出任何地方(据我所知),即使通过 IP 地址 ping 也是如此。一段时间后,网络恢复,有时无需我的干预。有时在我摆弄时它会恢复。但很难说出原因。(编辑:它持续断网 1 小时)

问题:我该如何解决此问题?我可以做什么来排除我控制范围内的配置/软件问题,以便我可以更放心地向我的 VPS 主机提出此问题?

我尝试过的事情:

  • 关闭并启动 eth0
  • 暂时禁用防火墙
  • 检查了 VPS 主机咨询是否存在网络问题 - 没有发现任何问题
  • 通过 Web 控制台重新启动服务器
  • 注意:这些对我都不起作用

细节:

  • Ubuntu 10.04.1 LTS
  • 使用 Xen 虚拟化托管
  • 具有根访问权限(SSH)来执行我自己的升级、安装等。
  • 我将 VPS 设置为 VPN 服务器,这样我就可以像“Road Warrior”一样连接到它,并首先通过 VPS 转发所有流量。这就是 10.8.XX 的垃圾
  • 所有流量(包括 DNS 查找)都通过 VPS 转发
  • 使用简单防火墙(ufw)并遵循一些基本规则
  • 还可作为某些服务的服务器,包括 Mumble 和 Web 服务器
  • 我在 VPS 上设置了一个脚本作为 cron 作业,每 5 分钟通过 IP 地址 ping 一些常见的互联网实体。如果 ping 失败,则将其记录到文件中。很简单。网络中断通常会持续一个小时。它并不总是在一天中的同一时间发生。在几乎所有情况下,网络都会中断一小时,然后“神奇地”恢复。
  • 我的 VPS 的内存使用率通常很高。通常我会用到最大内存并使用一些交换空间。内存占用最大的是 Java,如果这个细节有帮助的话。
  • 我的提供商一直没有提供任何帮助。他们给出的回复从“很抱歉,我们遇到了一个不幸的问题”到“现在没有问题”。这让我很沮丧,因为通常我遇到问题时才会提交工单,但等工单处理完毕时问题已经消失了。最近的沟通是他们建议重新格式化我的 VPS 并重新开始,但我对此并不感兴趣。
  • 网络中断总是每小时发生一次(5-10 分钟内)。也就是说,网络中断不会在 XX:30、XX:45 等时间左右开始。

网络状态监测

    内核 IP 路由表  
    目标网关 Genmask 标志 MSS 窗口 irtt Iface  
    10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0  
    XX.57.1​​66.0 0.0.0.0 255.255.255.128 U 0 0 0 eth0  
    192.168.50.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0  
    10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0  
    0.0.0.0 XX.57.1​​66.1 0.0.0.0 UG 0 0 0 eth0  

IP 路由列表

    10.8.0.2 dev tun0 proto 内核范围链接 src 10.8.0.1  
    XX.57.1​​66.0/25 dev eth0 proto 内核范围链接 src XX.57.1​​66.59  
    192.168.50.0/24 通过 10.8.0.2 dev tun0  
    10.8.0.0/24 通过 10.8.0.2 dev tun0  
    默认通过 XX.57.1​​66.1 dev eth0 metric 100

猫/等/网络/接口

    自动 eth0  
    iface eth0 inet 静态  
        地址 XX.57.1​​66.59  
        网关XX.57.1​​66.1  
        网络掩码 255.255.255.128  
    自动档  
    iface lo inet 环回

答案1

首先,如果您认为这是供应商未解决的问题,我强烈建议您迁移。当 VPS.net 的 SAN 不断崩溃(导致所有 VPS 都瘫痪)时,我曾对其抱有希望,但经过几个月的“我们已彻底修复此问题”后,它仍然崩溃,我不得不用我的钱包投票。

创办一家 VPS 公司出奇的容易(你实际上只需要一点数据中心空间和一些服务器),因此在你获得客户服务之前,他们的技术能力并不完全相同。

但要彻底解决问题,我首先要考虑如何防止东西进入交换区。保留交换区,但要尽一切努力,以免事情发展到这种地步。控制 Java 应用程序或添加更多 RAM。然后看看会发生什么。如果这种情况很常见,你不必等待很长时间(或付出很多)就能看到结果。

CPU 也一样。如果长时间以 100% 运行,您需要确保它们不会干扰其他应用程序。最简单的方法是将频繁使用的应用程序的 nice 值设置为正值。例如 +10 之类的 nice 值应该可以让系统在您的应用程序之前获得资源的完全优先权。边栏:nice 值基本上意味着在 CPU 调度方面它们更加礼貌。具有较低(例如 -20)nice 值的东西意味着它们的优先级高于所有其他具有较高 nice 值的东西。

如果可以,请将测试扩展到其他本地网络项目。如果他们提供 DNS 解析器(很多服务器公司都提供),请不断 ping 解析器(每分钟几次)并记录结果。如果您在停机期间仍能访问它,则不太可能是您的错。

正如我所说,如果这不是你的错,那就离开吧。如果你再花点时间试图解决这个问题,那么你就得不偿失了继续和这些人在一起的任何好处。我个人对 Linode 有非常良好和长期的体验,但还有很多好公司。

相关内容