AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 710163
Accepted
nowox
nowox
Asked: 2015-08-02 05:01:51 +0800 CST2015-08-02 05:01:51 +0800 CST 2015-08-02 05:01:51 +0800 CST

如何诊断Linux系统上的互联网访问失败?

  • 772

我有一个VM运行Xen。虚拟机运行了好几个月,突然网络访问中断。

             Dom0                           DomU

.-------.  bridge  .-------. virtual link .------.
| eth0  |----------| vif55 |-------x------| eth0 |
'-------'          '-------'       |      '------'
                                   |
Seems to be broken somewhere here /

但是,我仍然可以xm console从Dom0和访问VM.

我想了解问题的根源是什么。我可以肯定的是,如果我重新启动,我的VM一切都会恢复正常(我知道这是因为这不是第一次发生)......

这是我到目前为止所做的:

来自 DomU

xm console domu
$ sudo su
$ ifconfig

网络连接看起来没问题。IP 没问题,但是这些命令中的任何一个都会失败:

$ ping dom0
$ ping 8.8.8.8

我得到的错误是:

$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
ping: sendmsg: No buffer space available
^C
--- 8.8.8.8 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 24002ms

我fail2ban的看起来并不坏:

$ tail -n2 fail2ban.log
2015-07-31 19:41:52,851 fail2ban.actions[1854]: WARNING [ssh] Ban 218.65.30.61
2015-07-31 19:51:53,618 fail2ban.actions[1854]: WARNING [ssh] Unban 218.65.30.61

$ iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
fail2ban-apache  tcp  --  anywhere             anywhere             multiport dports http,https
fail2ban-ssh  tcp  --  anywhere             anywhere             multiport dports ssh

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain fail2ban-apache (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

Chain fail2ban-ssh (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

给出的可用磁盘空间df看起来没问题。

来自 Dom0

VM正在运行:

$xmlist | grep domu
domu                                   55  4096     4     -b---- 670393.8

它连接到vif55:

$iptables -L | grep domu
ACCEPT     all  --  domu            anywhere            PHYSDEV match --physdev-in vif55.0

vif55可用:

$ ifconfig | grep vif55.0
vif55.0   Link encap:Ethernet  HWaddr fe:ff:ff:ff:ff:ff
          inet6 addr: xxxx::fcff:ffff:xxxx:ffff/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:60965324 errors:0 dropped:0 overruns:0 frame:0
          TX packets:130097868 errors:0 dropped:22 overruns:0 carrier:0
          collisions:0 txqueuelen:32
          RX bytes:3441407339 (3.2 GiB)  TX bytes:161037189 (153.5 MiB)

vif55连接到网桥:

$ brctl show
bridge name     bridge id               STP enabled     interfaces
eth0            8000.10604ba1432a       no              peth0
                                                        vif1.0
                                                        vif10.0
                                                        vif11.0
                                                        vif48.0
                                                        vif51.0
                                                        vif55.0
                                                        vif56.0
                                                        vif57.0
                                                        vif58.0
                                                        vif59.0
                                                        vif60.0
                                                        vif9.0
virtual-machines
  • 1 1 个回答
  • 773 Views

1 个回答

  • Voted
  1. Best Answer
    womble
    2015-08-02T12:52:59+08:002015-08-02T12:52:59+08:00

    这个谜团的关键是你从中得到的错误ping: sendmsg: No buffer space available。这意味着数据包不只是被丢弃在某个地方,它们实际上是在某个地方的来宾中“阻塞”了。在物理机中,这表明内核驱动程序和/或硬件存在错误;同样,在 VM 中,这意味着您在某处有低级错误的网络代码。

    首先,确保您使用最新的补丁,尤其是在主机上。如果您正在运行一个非常旧的操作系统版本,那么现在可能是升级它的时候了——Xen 多年来已经修复了很多错误。

    您可以net.core.wmem_max暂时通过增加sysctl.xml来解决它。但是,这不是“修复”,只是一种解决方法;大概较大的缓冲区空间最终会再次填满,您将回到现在的位置。

    您没有指定如何运行来宾。如果它是完全虚拟化的,那么您正在使用的模拟 NIC 中可能存在错误;virtio 是您最好的选择,但如果您已经在使用它,请尝试使用它e1000。

    • 1

相关问题

  • Xen - 无法创建域,因为“无法连接 vdb”

  • 我可以安全地为我的虚拟机使用什么范围的 MAC 地址?

  • 将 VMDK 转换为 VHD 后启动虚拟机时出现问题

  • 在 VM 中运行 Fedora 目录服务器

  • 如何提高 Hyper-V 性能

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve