小编Fox*_*Fox的帖子

ifconfig eth0 RX 丢弃的数据包

问题

使用ifconfig命令显示越来越多的丢弃数据包的接收部分。因此,从 Internet 到达我的服务器的某些数据包似乎存在问题。

问题

  1. 这个丢弃计数器考虑了什么样的数据包?在到达 iptables 防火墙之前,还是在 iptables 接受数据包之后,是否需要所有到达的数据包?

  2. 如何解决ipconfig drop包计数器停止增加的情况?

有用的故障排除信息

由于我不知道我的问题究竟是什么,如果您认为需要一些其他信息,请随时让我完成此部分。

如果配置

eth0      Link encap:Ethernet  HWaddr 00:cc:cc:cc:cc:cc  
          inet adr:90.0.0.2  Bcast:90.0.0.255  Masque:255.255.255.0
          adr inet6: fe80::21c:c0ff:feb9:829c/64 Scope:Lien
          adr inet6: 2001:a100:1:bbbb::1/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:113264620 errors:0 dropped:2523 overruns:0 frame:0
          TX packets:168526529 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000 
          RX bytes:59171827564 (55.1 GiB)  TX bytes:223993117711 (208.6 GiB)
Run Code Online (Sandbox Code Playgroud)

请注意RX 部分中的“ dropped:2523 ”。这是最重要的。这个数字还在不断增加。

ip -4 路由显示

default via 90.0.0.254 dev eth0 
90.0.0.0/24 dev …
Run Code Online (Sandbox Code Playgroud)

ifconfig packets

17
推荐指数
2
解决办法
7万
查看次数

从不使用时,STALE arp 条目何时会变为 FAILED?

root@openwrt:~# ip -s -s -4 neigh show dev lan
10.64.42.121 lladdr b8:20:00:00:00:00 used 6387/6341/6313 probes 1 STALE
10.64.42.157 lladdr b8:20:00:00:00:00 used 24/813/19 probes 1 STALE
10.64.42.12  used 29066/30229/29063 probes 6 FAILED
10.64.42.1 lladdr e8:00:00:00:00:00 ref 1 used 10/5/5 probes 1 REACHABLE


root@openwrt:~# cat /proc/sys/net/ipv4/neigh/default/gc_interval 
30

root@openwrt:~# cat /proc/sys/net/ipv4/neigh/default/gc_stale_time
60

root@openwrt:~# cat /proc/sys/net/ipv4/neigh/lan/gc_stale_time
60
Run Code Online (Sandbox Code Playgroud)

局域网中的主机 (b8:20:00:00:00:00) 的 IP 地址为 10.64.42.121。此 IP 现在无效,该主机的 IP 现在为 10.64.42.157(新的 DHCP 租用)。

我试图弄清楚旧的 arp 缓存条目何时将状态更改为 FAILED(假设没有人尝试联系 IP)。

最后一次确认条目是在 6341 秒前(1 小时 45 前)。这大于 60 …

linux arp

8
推荐指数
2
解决办法
2万
查看次数

重启后IPv6默认网关路由消失

我在同时使用 IPv4 和 IPv6 的专用服务器上使用 Debian Wheezy。

如果配置 eth0

eth0      Link encap:Ethernet  HWaddr 11:11:11:11:11:11  
          inet adr:90.0.0.1  Bcast:90.0.0.255  Masque:255.255.255.0
          adr inet6: fe80::21c:c0ff:feb9:829c/64 Scope:Lien
          adr inet6: 2001:a100:1:bbbb::1/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1544 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2199 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000 
          RX bytes:304146 (297.0 KiB)  TX bytes:1376282 (1.3 MiB)
Run Code Online (Sandbox Code Playgroud)

(几分钟后,RX 下降计数器增加。)

cat /etc/network/interfaces

我首先使用了“网关”关键字,但它不起作用,所以我尝试在文件中添加路由,但它也不起作用。

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 90.0.0.1
    netmask 255.255.255.0
    network 90.0.0.0
    broadcast …
Run Code Online (Sandbox Code Playgroud)

route ipv6 gateway

6
推荐指数
1
解决办法
2884
查看次数

如果用户本地不存在,如何将具有 Transport_maps 的域的某些电子邮件帐户路由到另一个 MX?

我的域example.com中的 MX 服务器指向我的 Postfix 服务器。不过,我还配置了一个负责example.com电子邮件的 Google Apps 帐户。

我希望所有电子邮件都转到我的 Postfix 服务器(这已通过 DNS 区域中的 MX 设置完成),但希望将此域的某些用户转发到 MX aspmx.l.google.com

我使用 Transport_maps 参数做到了这一点。这是文件/etc/postfix/transport

test@example.com smtp:[aspmx.l.google.com]

问题是,smtpd_reject_unlisted_recipient默认设置为yes ,但 postfix 在应用传输映射之前会检查用户是否存在。我的 Postfix 服务器不知道该域的用户测试,因此它只是拒绝电子邮件。

我希望在收件人存在检查之前进行传输路由(在我当前的设置中,只有 Google SMTP 知道用户test的存在)。那可能吗?

注意:local_recipient_maps 对我不起作用,因为我使用带有 dovecot 的虚拟传输。所以收件人表是virtual_mailbox_maps。

postfix

5
推荐指数
1
解决办法
5867
查看次数

Shell命令过滤掉管道中不存在的文件

我正在寻找一种很好的方法来生成备份 tar.gz,该备份 tar.gz 将被另一个 tar.gz 的提取覆盖。

tar -ztf patch.tar.gz | grep -v "/$" | tar -T- -zcvf backup.tar.gz
Run Code Online (Sandbox Code Playgroud)

这工作得很好!但是,有时,新补丁(patch.tar.gz)不仅会包含硬盘中已经存在的文件,而且可能会添加不存在的新文件。这些不存在的文件将无法备份,第二个 tar 将产生错误。退出代码是2

tar:文件夹/文件.txt:无法统计:没有这样的文件或目录
tar:由于先前的错误而以失败状态退出

我正在寻找仅检查文件存在 (stdin) 并在 stdout 上发送现有文件的 shell 命令。它存在吗?我需要这样的东西:

tar -ztf patch.tar.gz | grep -v "/$" | filterfileexist | tar -T- -zcvf backup.tar.gz
Run Code Online (Sandbox Code Playgroud)

我需要一个 shell 命令而不是一个 shell 脚本。
显然,我可以自己在 C 中实现这个 shell 命令,因为它非常简单,但我希望找到一些可以在其他 UNIX 平台上找到的通用内容。

backup tar

5
推荐指数
1
解决办法
2280
查看次数

在生产服务器上让 « PermitRootLogin yes » 真的是一种不好的做法吗?

一天(4 年前),我重新启动了我的服务器。重新启动完成后,我尝试像往常一样使用我的常规(非 root)帐户登录。那个时候,我有PermitRootLogin no

我得到了答案

系统将于 2009 年 8 月 16 日星期日 00:43:48 关闭

并且无法登录。但事实并非如此,服务器不会关闭。它已经关闭了,但它已经启动了。实际上,我注意到由于某种神秘的原因/etc/nologin,创建的文件shutdown没有被删除。

/etc/nologin文件存在时,SSH 不允许任何用户登录,root除外。

由于PermitRootLogin设置为 « no »,我无法登录并被迫在救援模式下硬重启我的服务器,挂载文件系统,删除/etc/nologin文件,然后重启。

那么,您如何看待PermitRootLogin设置为 « yes »,但禁用其密码 ( passwd -l root),以便 root 仅允许 SSH 密钥连接?

ssh root

3
推荐指数
1
解决办法
4630
查看次数

标签 统计

arp ×1

backup ×1

gateway ×1

ifconfig ×1

ipv6 ×1

linux ×1

packets ×1

postfix ×1

root ×1

route ×1

ssh ×1

tar ×1