你好networking大师, 我有一个Linux(内核3.14)服务器,它作为消费电子设备(机顶盒-STB)场的TFTP,NFS和HTTP服务器。 这些设备使用TFTP从它们的内核启动,然后从我们的机器上的NFS服务器挂载它们的根FSs等。 现在,由于一个深奥的技术原因,我不打算在这里(只要相信我:),每个机顶盒必须在它自己的,物理上分开的局域网。 所以联网设置ATM的方式是: 该服务器有1个网卡用于访问世界其他地方。 它还为每个STB提供一个网卡 – 每个STB都连接到一个小型路由器,STB +一些其他设备连接到该路由器,形成一个局域网。 目前有3个机顶盒连接,局域网为172.16.50.0/24,172.16.51.0/24和172.16.52.0/24。 它的所有工作很好。 但是,我们有3个不同的局域网意味着同一个服务器必须从STB1访问172.16.50.1,从STB2访问172.16.51.1,从STB3访问172.16.52.1 – 这意味着我们有一个不同的环境每个机顶盒和每次我们说 – 上传新的RootFS用于STBs,我们需要手动编辑一些configuration文件,并把正确的IP服务器必须从这个特定的机顶盒访问。 不是很方便,容易出错! 这让我想到:如果我们简单地将这三个局域网configuration成完全相同的172.16.50.0/24,怎么办? 从机顶盒(和局域网中的其他设备)的angular度来看,一切都应该没问题,但是服务器的观点呢? Linux服务器可以有N个不同的以太网接口,所有的接口都configuration了相同的静态IP,但是每个接口都连接到一个物理上独立的LAN上?
今天跨过glibc的一个漏洞 ,涉及getaddrinfo()调用DNSparsing。 我在两台面向互联网的Bind9机器上运行Ubuntu 12.04。 我不确定我完全理解这个漏洞,但似乎是由一个恶意DNS服务器的大量回复引起的。 其中一个缓解措施是“丢弃UDP DNS数据包大于512字节的防火墙”,所以我在DNS服务器上configuration了netfilter,删除来自或去往端口53的任何UDP> 512字节: -A INPUT -i lo -j ACCEPT -A INPUT -p udp –sport 53 -m length –length 511:65535 -j DROP -A INPUT -p udp –dport 53 -m length –length 511:65535 -j DROP -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT 有没有更好的方式来做到这一点绑定设置或任何东西? 我用scapytesting了这个规则,它确实阻塞了在端口53上丢弃大于512的UDP包。 每个响应更新: -A INPUT -i lo -j ACCEPT […]
每天晚上,我都会用rsync从一台Linux Debian计算机上将几个虚拟磁盘复制到另一台Linux Debian上。 大多数文件是带有“漏洞”的原始图像:某些部分从未写入,因此在磁盘上保持未分配状态。 rsync挂在一个文件上,总是一样的。 挂起发生在50Gb传输,每次。 我不确定这是否始终处于完全相同的位置,但ls -sh显示50 Gb。 这是一个包含151 Gb的800 Gb文件(因此649 Gb是未分配的)。 其他一些虚拟磁盘有相似的数字,rsync在其上运行良好。 如果我使用rsync在本地更新文件,而没有任何networking参与(使用–no-whole-file ,这是一个要求,请参阅后面的内容),我具有完全相同的行为。 一旦rsync被阻塞,它将使用一个CPU核心到100%,在接收端使用零磁盘活动(这是一个pull请求,所以rsync从这边运行),在发送端使用零CPU和零磁盘。 我让它在几个小时内跑了。 Ctrl + c立即停止rsync。 当运行到本地复制,一旦停滞,我也有一个100%的CPU核心和零磁盘活动。 我发现唯一的例外是当我rsync这个文件到一个新的位置(即目标文件不存在)。 所以我怀疑这个问题与新旧数据的比较有关。 我使用–inplace来限制对目标磁盘的写入,因为每次备份之后都会使用快照。 所以这个选项是一个需求,rsync也是如此,除非我find一个工具只能更新这些文件的变化部分。
我们有一个简单的Web应用程序运行在一个虚拟机上,它将数据保存在MySQL 5.5数据库和InnoDB引擎中。 一切正常,大约三年,但突然变得非常缓慢。 例如,我有一个非常简单的表格控股地址: CREATE TABLE `addresses` ( `address_id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(64) CHARACTER SET latin1 NOT NULL, `firstname` varchar(64) CHARACTER SET latin1 NOT NULL, `street` varchar(64) CHARACTER SET latin1 NOT NULL, `housenumber` varchar(16) CHARACTER SET latin1 NOT NULL, `zip` varchar(5) CHARACTER SET latin1 NOT NULL, `city` varchar(64) CHARACTER SET latin1 NOT NULL, […]
[对不起,我尽量保持简短,但这是不可能的] 我在富士通西门子Primergy RX200 S3上运行Linux 2.6.22.19和linux-vserver 2.3.0.34进行开发。 英特尔(R)Xeon(R)5140 @ 2.33Ghz(带有4GB RAM)(其中大部分仍然是500MB)。 服务器有两个热插拔250GB镜像RAIDconfiguration: dev:~# mpt-status –newstyle ioc:0 vol_id:0 type:IM raidlevel:RAID-1 num_disks:2 size(GB):231 state: OPTIMAL flags: ENABLED ioc:0 phys_id:0 scsi_id:1 vendor:ATA product_id:WDC WD2500JS-55N revision:2E01 size(GB):232 state: ONLINE flags: NONE sync_state: 100 ASC/ASCQ:0xff/0xff SMART ASC/ASCQ:0xff/0xff ioc:0 phys_id:1 scsi_id:8 vendor:ATA product_id:WDC WD2500JS-55N revision:2E01 size(GB):232 state: ONLINE flags: NONE sync_state: 100 […]
随着日志结构文件系统的发展和相对便宜的固态硬盘的引入,对于在Linux上使用SSD驱动器的日志结构文件系统,是否有最佳select?
我有三个1TB硬盘,在一个软件RAID-5configuration上运行LVM。 每个驱动器被分成2个500GB的分区。 所以据mdadm知道,它有6个设备。 目前raidarrays有2.5TB的空间; 我假设其中一个500GB的分区正在用于奇偶校验? 或者可能500GB在整个arrays中使用,我不完全确定。 我的问题是:使用这种configuration,我是否安全,如果任何一个驱动器失败? 或者,我是否需要添加另一个500GB分区的第四个驱动器作为备用? 或者我需要从第四个驱动器添加另一个500GB分区,并以某种方式指定它用于奇偶校验?
我正在构build一个Web服务器,所以我想知道什么是最好的版本的Linux的目的。
我希望通过HTTP(使用Web浏览器)向几个用户授予Shell访问权限。 是否有一个实用程序,最好是免费的,我可以用它来启用它。 没有。 的用户是约。 100,我想为它们中的每一个单独的shell会话,并且Web界面应该要求它们以他们的用户/密码凭证login。
我需要找出安装程序所做的所有文件系统修改。 最有可能安装的软件包是rpm或deb,但是应用程序当然可以简单地复制或编译,并使用configure; make; make install方式进行安装。 即使rpm和deb有文件列表,它们的安装后脚本也可以进行额外的文件系统修改。 我第一次去寻找一个应用程序,可以监视另一个应用程序来查找其他应用程序所做的所有文件系统修改。 我还没有find。 接下来,我考虑了分层的文件系统,在开始安装应用程序之前,我想把它放在一个分层的文件系统中,然后在分层的文件系统上安装应用程序,然后找出在该层中发生的所有修改。 我能find的最好的是mini_fo,但似乎自2006年以来一直没有维护。它似乎也不能被覆盖/(这隐藏了一些层次的东西)。 然后我研究了基于inotify的解决scheme,但是对于从/开始的所有事情来说,这似乎是不切实际的。 例如,inotifywatch(linux.die.net/man/1/inotifywatch)默认提到手表的限制只是8K。 这也需要一些时间来安装观察者。 也有似乎是错误,新创build的目录不立即观看,所以他们的变化可能会被错过。 除了在安装和比较之前和之后从文件系统中获取快照之外,还有其他方法可以实现我想要做的事吗?