Thursday, December 31, 2015

How to delete specific IPv6 rule of UFW

eg. ufw allow 22/tcp
echo y | ufw delete $(ufw status numbered | grep 22/tcp.*v6 | cut -c 2,3)

or script:
delv6=$(ufw status numbered | grep 22/tcp.*v6 | cut -c 3)
if [ -n "$delv6" ]; then
echo y | ufw delete $delv6
fi
unset delv6

How to install libsodium for ChaCha20

cd /etc

wget --no-check-certificate https://download.libsodium.org/libsodium/releases/LATEST.tar.gz

tar zxf LATEST.tar.gz

cd libsodium*

./configure

apt-get install make

make && make install

echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf

ldconfig

How to remove exim4

apt-get --purge remove exim4 exim4-base exim4-config exim4-daemon-light -y

How to install gevent

apt-get install build-essential python-dev -y
pip install gevent

Wednesday, December 30, 2015

电视遥控器按钮坏了

电视遥控器的开关机按钮坏了,确认是按钮的导电橡胶有问题,前后经过几次尝试:

1. 遥控器有空按钮,空按钮的导电橡胶是正常的,思路是把空按钮的导电橡胶移植到开关机按钮上:
1) 用小刀轻取下2块导电橡胶,用502粘,估计是和按钮的橡胶材质有关系,502干不了粘不住,残念。。。
2) 改用热溶胶粘,粘是粘上了,但是一开始用手感还好,用了几次按钮就变硬不灵敏,再后来就完全不灵敏了,残念。。。
2.  另一思路是把废旧的遥控器的某个按钮整个套在这个开关机按钮下,虽然导电橡胶小了点,经测试是没问题的:
1) 原本的开关机按钮保持不变,用小刀取下导电橡胶,把按钮底部弄光滑点就行了。 
2) 用剪刀取下废旧的遥控器的某个按钮,形状要同样是圆的,大小和开关机按钮接近的,按钮周围的橡胶多保留一些,不要光秃秃的就只有一个按钮。 
3) 用小刀把取下的按钮切短一点,再套进去开关机按钮试试,反复几次可以取得最合适的高度。 
4) 组装,装电池,测试,works well!
此方法有一个小缺点,因为是把整个按钮连同周围的橡胶套在下面,组装完毕后开关机按钮底部会比较厚,导致外壳不能像原本一样封得很紧密,但完全盖得住就是了。

关于 Dnsmasq 的配置问题 simple configuration about Dnsmasq

关于 /etc/dnsmasq.conf 文档

#resolv-file= 用来指定上游 DNS 服务器列表所在文件路径,默认注释掉,意思等同于 resolv-file=/etc/resolv.conf ,这里改为/etc/resolv.dnsmasq.conf
sed -i '1,$s/^#resolv-file=.*/resolv-file=\/etc\/resolv.dnsmasq.conf/' /etc/dnsmasq.conf
然后指定上游 DNS
echo "nameserver 8.8.8.8" >> /etc/resolv.dnsmasq.conf
echo "nameserver 8.8.4.4" >> /etc/resolv.dnsmasq.conf
对于 /etc/resolv.conf 只保留一条本地 DNS
echo "nameserver 127.0.0.1" > /etc/resolv.conf
#strict-order 若取消注释,用来表示严格按照 resolv-file 指定的文件中的顺序从上到下进行 DNS 解析,直到第一个成功解析成功为止

#no-resolv 若取消注释,则表示不读取 resolv-file 指定的文件,但取消的同时应该在此文档添加上游服务器地址,否则 DNS 查询会 refused ,比如添加一行上游服务器 server=8.8.8.8 

#no-dhcp-interface= 若取消注释并指定网卡名,则关闭此网卡的 DHCP功能,只启用 DNS 功能
sed -i '1,$s/^#no-dhcp-interface=.*/no-dhcp-interface=venet0/' /etc/dnsmasq.conf

这里有个问题,若 resolv-file= 不另外指定文件(即默认使用 /etc/resolv.conf ),并在 /etc/resolv.conf 追加一行 nameserver 127.0.0.1 ,这样就把上游服务器地址和本地 DNS 服务器地址放在同一文件,还是可以解析的,只是不知为何不会有循环问题,还有 DNS 优先级是怎样的?


参考:http://www.freeoa.net/osuport/servap/dnsmasq-use-intro-refer_2480.html


把多个png文件转换成支持多个分辨率的ico文件

工具:ImageMagick 命令:magick convert -background transparent sample*.png sample.ico