Articles of 内核

在一个接口上禁用rp_filter

我有一个Ubuntu 16.04服务器,充当具有多个(VLAN)接口的路由器。 缺省情况下,所有接口都使能了rp_filter (反向path过滤)。 我想保持这种方式,但只是一个接口的例外。 (来自这个接口的数据包应该被允许有一个源IP地址,这个IP地址不对应这个接口的任何路由目的地址。) 假设这个接口的名字是ens20.4 ,它的vlan-raw-device是ens20 ,目的接口(用于testing数据包stream)被命名为ens20.2 (尽pipe它适用于任何目标接口)。 我试图只为ens20.4设置rp_filter属性,但没有成功: echo 0 > /proc/sys/net/ipv4/conf/ens20.4/rp_filter 所以,出于testing目的,我还禁用了vlan-raw-device和testing目标接口的rp_filter : echo 0 > /proc/sys/net/ipv4/conf/ens20/rp_filter echo 0 > /proc/sys/net/ipv4/conf/ens20.2/rp_filter 仍然没有成功,具有“欺骗”源IP地址的数据包仍然被丢弃。 只有当我禁用所有接口的rp_filter ,数据包才能通过: echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter 但是,我仍然想保留所有其他接口的反向path过滤 – 我错过了什么?

Linux如何确定磁盘的SCSI地址?

问候, 我正在使用VMware ESX 4下的RHEL 5.5来宾虚拟机。当我在VM硬件设置中configuration虚拟磁盘时,每个磁盘都有一个格式为“N:M”的SCSI地址。 例如,“1:3”将表示SCSI主机号码1和SCSI目标ID 3。 当我从虚拟机的BIOS或Windows操作系统查看磁盘信息时,检测到的SCSI地址信息与虚拟硬件设置相匹配。 但是在Linux下,SCSI地址组件不匹配,至less不完全一致。 我已经尝试了三个受支持的虚拟SCSI和SAS驱动程序,它们似乎都“破碎”,但方式各不相同。 这里列出了虚拟硬件地址与Linux下每个驱动程序检测到的内容: Driver vHW Addr Linux Addr ——– ——– ———- LSI SAS 0:0 0:0 LSI SAS 0:3 0:1 LSI SAS 0:6 0:2 LSI SCSI 1:1 2:1 LSI SCSI 1:4 2:4 LSI SCSI 1:7 2:7 pvSCSI 2:2 1:2 pvSCSI 2:5 1:5 pvSCSI 2:8 1:8 我的主要问题是为什么在Linux下发生这种情况? 接下来的问题是:我如何修复它或自己修复它? 如果我猜测,我会说这是内核如何发出SCSI主机号码以及Linux […]

如何强制Debian启动新的内核?

我正在远程系统上运行Debian 6,Debian GNU / Linux,Linux 2.6.32-5-amd64(在Grub2下)(1.98 + 20100804-14 + squeeze1)(无法查看预启动消息)。 我编译并安装了一个新的内核,但是我无法启动它。 我做了什么: 通过以下方式安装软件包: dpkg -i linux-headers-3.5.3.20120914-amd64_3.5.3.20120914-amd64-10.00.Custom_amd64.deb linux-image-3.5.3.20120914-amd64_3.5.3.20120914-amd64-10.00.Custom_amd64.deb 这更新了Grubconfiguration。 我的/boot/grub/grub.cfg现在包含: menuentry 'Debian GNU/Linux, with Linux 3.5.3.20120914-amd64' –class debian –class gnu-linux –class gnu –class os { insmod raid insmod mdraid insmod part_msdos insmod part_msdos insmod ext2 set root='(md0)' search –no-floppy –fs-uuid –set 5a3882a9-c7df-4f6a-9feb-f03e3e37be01 echo 'Loading Linux 3.5.3.20120914-amd64 […]

需要多长时间才能批量生产?

我们正在运行一个网站,目前正在服务3-5万页面浏览量。 我们的网站是一个文件共享网站,因此它包含25万个文件和几千个符号链接。 硬盘是1500GB的SATA硬盘。 使用hdparm我们知道我们的硬盘速度已经降低到15-20 MB / s,这是80 MB / s。 所以现在我们要运行fsck来修复磁盘问题。 fsck会解决这个问题吗? fsck需要多less时间才能完成(只是我们要计算我们将要进入​​的停机时间)?

意外地缩小了窗口

我运行一个主要的媒体上传/下载网站,我注意到这些: 这是严重的或背景噪音,由于大的文件大小,是否有任何调整,我可以添加到/etc/sysctl.conf来改善和防止问题? [8822139.804040] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 (repaired) [8822140.944041] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 (repaired) [8822143.224052] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 (repaired) [8822147.776079] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 (repaired) [8822156.896049] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 (repaired) [8822175.136049] TCP: Peer 177.47.116.196:53829/80 unexpectedly shrunk window 2513116350:2513136117 […]

/ dev / shm&/ proc强化

我已经看到提及保护/ dev / shm和/ proc,我想知道你是如何做到这一点的? 我认为这涉及/etc/sysctl.conf编辑的某种权利。 像这些? kernel.exec-shield = 1 kernel.randomize_va_space = 1

如果Linuxcaching过大,为什么QEMU不能分配内存?

如果我使用我的机器[Ubuntu 16.04 64位,内核4.4]一段时间,QEMU需要内核caching丢弃,否则,它不会pipe理分配内存。 为什么会发生? 这是一个示例运行: ~$ free -m total used free shared buff/cache available Mem: 15050 5427 3690 56 5931 4803 Swap: 0 0 0 ~$ sudo qemu-system-x86_64 -m 10240 # and other options qemu-system-x86_64: cannot set up guest memory 'pc.ram': Cannot allocate memory ~$ echo 3 | sudo tee /proc/sys/vm/drop_caches 3 ~$ free -m […]

如何最小化Linux服务器重新启动

上周,关于是否需要重新启动Unix(或Linux)机器的Slashdot文章有一些评论。 超过几个评论者提到机器的正常运行时间为几年。 据我所知,linux盒子需要经常重新启动以应用内核补丁,特别是安全相关的补丁(比如ac1db1tch3z漏洞利用 )。 在“yum更新内核”之后运行uname -r似乎显示旧的内核直到重新启动才加载。 我的问题是,这些盒子如何实现多年正常运行? 我想到了一些可能的解决scheme 这些机器不是生产和/或暴露给用户的,所以安全补丁不是那么重要。 所有的海报都使用Ksplice等在线修补服务 内核安全补丁可以通过重新加载模块而不是整个内核来应用。 uname -r在内核补丁之后反映错误的信息,并且更新的内核被加载。 这些解释中的任何一个是否合理,或者我的理解中是否存在某些东西? 还有另外一种方法可以将过去两年来所需的二十多次重启最小化吗?

单片机与微内核

单核内核和微内核在结构和安全性方面有什么不同? 我的朋友告诉我,Linux系统具有单一的内核,因此不容易破解,但我不认为他确实是正确的。 有人请赐教。

什么是创build生成的/ autoconf.h?

我们试图构build一个需要内核源码的软件,而不仅仅是头文件。 所以我们通过centos src rpm下载了内核源代码。 但是autoconf.h缺失。 我们尝试了 把.config放在适当位置(从/ boot复制一个)。 运行make oldconfig 那么什么是创buildautoconf.h文件? 我们真的需要build立内核吗?