2019年5月26日星期日

软路由选Centos7还是Debian9的比较

先说结论:选Debian9

Centos7可能重心还是在企业市场,所以对这种软路由方面的优化还不是非常完善,这里说几点用Centos7做软路由时遇到的几个问题。

1.pppoe进程占CPU太高,在下载速度达到6MB的时候,pppoe进程占CPU 20%多,这点很奇怪,在debian9上几乎不占用CPU。

2.pppoe拔号的问题,某些情况下,比如运营商出现故障,此时正好又重启Centos7,那pppoe拔号就会无法成功,然后一直卡着,等待80秒超时后才会继续执行后面的服务,比如sshd服务,导致的现象时,ip已经可以ping通,但ssh要等待80多秒才可以连接上,而且后续也不会再进行pppoe拔号尝试。Debian9并没有这个问题。

3.ipv6的问题1,如果设置了net.ipv6.conf.all.forwarding=1,那系统启动时,日志里会报内核已经开启ipv6转发,但配置文件里并没有启用,并重启一次网络,导致网络启动变慢。解决方法是在ifcfg-里手动添加ipv6forwarding=yes,就连lo接口都要去添加,这点实在不够体贴,Debian9并没有此问题。

4.ipv6的问题2,ipv6转发需要安装wide-dhcpv6包,配置完成后,在启动时会报dhcp6cctlkey这个文件不存在,让人比较困惑是不是需要某个key,其实解决方法只要touch一个这样的空文件就可以了,为什么这个包里不带一个呢?Debian9没有这个问题,会带一个这样的文件,而且里面也有密钥,这个密钥是干吗不清楚,但至少不会遇到这样的报错。

综上所述,个人认为Debian9更适合拿来做软路由。

2019年5月24日星期五

Centos7开启TRIM的方法

安装hdparm:
yum install hdparm -y

检测硬盘是否支持TRIM:
hdparm -I /dev/sda | grep TRIM
   * Data Set Management TRIM supported (limit 8 blocks)

可以先手动TRIM一次:
fstrim --verbose --all
/boot: 752.3 MiB (788824064 bytes) trimmed
/: 89.1 GiB (95708200960 bytes) trimmed

开启TRIM服务,每周会TRIM一次,不需要手动TRIM:
systemctl status fstrim.timer
systemctl start fstrim.timer
systemctl enable fstrim.timer

另外,还可以将/tmp设置为tmpfs,这会将/tmp挂载在内存中,进一步优化SSD寿命。
systemctl start tmp.mount
systemctl enable tmp.mount

qBittortent-4.15已编译版本,适合cenots7和debian 9


centos7和debian 9上yum安装的qbit还是3.3.7版本,虽然可用,但的确有点老了,于是自己编译了一份,可以正常使用,100M宽带下载速度达到15MB极限。

centos 7下载链接:
https://yadi.sk/d/-LNkkSUzaV65aQ

debian 9 download:
https://yadi.sk/d/7ajLr7vWg3dxdw



Centos7 pppoe自动重连的方法

上篇blog讲了尽量不要让ifcfg-ppp0开机自启,用rc.local来启动的原因:
https://techshd.blogspot.com/2019/05/centos7-pppoesshd.html

然后启动脚本是:
pppoe-start >/dev/null 2>&1 &
sleep 1
killall pppoe-start
这篇讲下原因,因为某些情况下,比如运营商故障,导致pppoe-start一直无法拔号成功,那在超时80秒后,会被自身kill掉,并且不会再重试,除非手动再次执行。

这里先了解下pppoe-start的拔号过程,pppoe-start在执行后会调用pppoe-connect,这个才是真正去拔号的进程,然后pppoe-start会去监测是否拔号成功,如果成功,自身退出,如果超过80秒未成功,就会去kill掉connect再退出。

为了让它能一直重试,避免被kill掉,所以在后面加killall,pppoe-start进程没有了,但pppoe-start会一直不断的去尝试拔号,直到成功。


2019年5月23日星期四

Centos7 pppoe导致sshd启动慢的解决方法

pppoe-setup配置完成后会写入一个ifcfg-ppp0网卡的配置,正常情况下是不会影响sshd服务的。

但有一个特殊的情况,就是在系统启动时,pppoe由于某些原因没有拔号成功,此时这个网卡就会一直等待,在等待80秒超时退出后,才会继续启动后面的服务,比如sshd服务,导致的现象就是ip已经ping通了,但ssh要等待80多秒才可以连上。

解决方法:
将ifcfg-ppp0的ONBOOT修改为no,然后在rc.local里添加拔号:
pppoe-start >/dev/null 2>&1 &
sleep 1
killall pppoe-start
至于为什么要kill,下篇写。


代码插入存档备用
<pre class="code prettyprint">
代码放在此处
</pre>

更换阿里云源

CentOS 7: wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo http:/...