在使用ifconfig命令显示越来越多的丢弃数据包的接收部分。因此,从 Internet 到达我的服务器的某些数据包似乎存在问题。
这个丢弃计数器考虑了什么样的数据包?在到达 iptables 防火墙之前,还是在 iptables 接受数据包之后,是否需要所有到达的数据包?
如何解决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 ”。这是最重要的。这个数字还在不断增加。
default via 90.0.0.254 dev eth0
90.0.0.0/24 dev …
Run Code Online (Sandbox Code Playgroud) 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 …
我在同时使用 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) 我的域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。
我正在寻找一种很好的方法来生成备份 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 平台上找到的通用内容。
一天(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 密钥连接?