Smokeping 常用操作

在centos上安装了smokeping 以后,我们可能会经常遇到各种问题

  1. 对target进行修改,修改完以后,我们需要重启smokeping service ,一般情况下是不需要重启httpd,因为smokeping 的主程序会查看config 的timestamp,如果有变化就会重新读取config 配置文件,但是如果你把target 通过include 的方式包含在config当中,那么即使你修改了target文件,但是config 文件的timestamp 仍然不变。经过测试,解决办法有两个: 要么稍微修改一下config 文件,添加或者删除一些无关紧要的文字,要不然就在重启完smokeping以后再重启一下httpd服务
  2. 还有一个经常见的问题就是slave 的图没有数据,这个一般是权限的问题。因为slave 端的数据,是slave 端通过http call,写入master 端的,而master 端完成此项任务的是httpd,因此httpd 要对 data 文件夹下面的target 的文件夹要有写入权限。实现这个目标,可以有多种实现的办法,一种办法是利用getfacl 和 setfacl 来设置apache 对这些目录单独的权限,另外一种办法是把这些文件的group 设置为apache,并且给apache 写入的权限 chmod g+w *
  3. 查看rrd文件里面的是否用数据,例如可以用rrdtool fetch Akamai1~10.10.16.111.rrd AVERAGE 命令查看master端slave提交的rrd文件

阿里轻量云香港

阿里轻量云香港测试IP为149.129.84.1,新加坡测试IP: 149.129.49.31

移动联通直连,但是电信去程为NTT,回程为CN2

被用来服务国内的移动和联通客户还是很不错的

阿里轻量云和普通ECS的区别就是没有内网IP(自带的内网IP无法和ECS的内网互联),另外也没有那2G的防御

同样的腾讯云香港的测试IP为119.28.11.12

还有华为云香港的测试IP为159.138.33.92

GCP的CDN 35.244.179.64

K2P刷官改

K2P A2版因为强大的可玩性,遭到了很多玩家的吹捧,而事实上也确实如此,记住K2P 要收的话一定要收A2版

如果侧重于玩,那么openwrt无疑是最好的选择,可是如果仅仅是为了跑稳定的服务,那么K2P官改无疑是最好的选择.

K2P的破解,随着K2P自带系统的不断升级,越来越难,现在的K2P一般自带的是V22.5.7.85

本方法适用于最新的K2P MTK 22.8.5.189、22.10.2.23、22.10.2.24固件。

一般来说,只需使用下面的第一个工具,刷入breed然后下载固件,在breed里刷入固件即可

更多

Bind 的 forwarding 和 recursion

很少接触bind的各种服务,可是几乎每年都会用到一次两次,每次都得重新搜索bind 的文档,太麻烦了。。下面是在stackoverflow上看到关于bind 的forwarding 和 recursion 的描述,写的很好.

Forwarding: just passes the DNS query to another DNS server (e.g. your ISP’s). Home routers use forwarding to pass DNS queries from your home network’s clients to your ISP’s DNS servers. For example, for foo.example.com, a forwarding DNS server would first check its cache (did it already ask this question before), and if the answer is not in its cache, it would ask its forwarder (your ISP’s DNS server) for the answer, which would respond with either a cached response, or would perform recursion until it figured out the answer.

Recursion: or caching server, the DNS server receiving the query takes it upon itself to figure out the answer to that query by recursively querying authoritative DNS servers for that domain. For example, for foo.example.com, a recursor would first query the root servers for what DNS servers are responsible for the .com TLD, then it would ask those servers for example.com, then it would query the servers for example.com for foo.example.com, finally getting the answer to the original query.

In terms of security, you should separate recursors/forwarders (typically DNS servers used to service a bunch of clients) and authoritative DNS servers (typically these are responsible ONLY for answering queries re: domains that they are authoritative for – these servers will NOT perform recursive queries for anyone).

在centos 7上安装bind 并把它设置为resursor server 最简单了,直接 yum install bind bind-utils就可以了,bind 的默认named.conf 就是一个完整只适用于本机localhost 的 resursor server 设置

centos 7 安装geoipupdate

很多人在安装完centos 7 mini iso 以后会安装bind-utils,bind-utils 包含了许多DNS查询的工具包,其中就有一个dependency GeoIP library

但是这个GeoIP library 是包含在老版的geoipupdate这个程序中的,版本号应该为1.5,但是maxmind 早就放弃了对于老版geoipupdate的支持,因此如果你的程序需要geoipupdate 的支持的话,用centos 7 默认repo 自带的geoipupdate 的话,肯定是不行的了

因此我们肯定是要安装经过重新开发过的只支持新的geoip 数据库格式的geoipupdate

github地址是https://github.com/maxmind/geoipupdate

但是这里又出现了一个问题,如果我们直接使用rpm 的安装包来安装的话,默认的可执行command 会被安装在/usr/bin/geoipupdate, conf 地址会被安装在/etc/GeoIP.conf, 这样会和老版的geoipupdate 发生冲突,但是bind-utils 又依赖于老版的GeoIP 库,不可能卸载掉

这里有一个比较简单的解决办法,就是直接安装linux 的通用安装包,而不是用专门的centos的rpm安装包,这样可执行程序的路径就可以被我们自行选择

bootstrap中的sr-only

最近在看bootstrap4,经常会有sr-only这个类

sr是screen reader的缩写,这个表示是为视力有障碍的人士准备的类.

在前端开发中,有些时候设计图上面会出现仅供正常视觉用户看的元素。比如:导航栏菜单当前页面选中高亮状态,这些状态只有视力正常的人才能正常使用。

而残障人士,弱势或盲人是很难或者根本看不出导航菜单高亮的。他们上网可能借助的是屏幕阅读器,也就是 screen reader(sr),屏幕阅读器需要找到能辨识的文本说明然后“读”出来给用户听。

CentOS 7 Nginx 默认配置

在centos 7 下,用nginx official repo安装的nginx stable版本的config 默认配置如下:

user nginx;
worker_processes 1;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;


events {
worker_connections 1024;
}


http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;
#tcp_nopush on;

keepalive_timeout 65;

#gzip on;

include /etc/nginx/conf.d/*.conf;
}

但是很明显, 这个配置过于简单了,结合军哥的LNMP,我们可以稍微改动一下config:

user nginx;

worker_processes auto;
worker_cpu_affinity auto;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;

events {
use epoll;
worker_connections 51200;
multi_accept off;
accept_mutex off;
}


http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 50m;

sendfile on;
sendfile_max_chunk 512k;
tcp_nopush on;

keepalive_timeout 60;

tcp_nodelay on;


gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";

#limit_conn_zone $binary_remote_addr zone=perip:10m;
##If enable limit_conn_zone,add "limit_conn perip 10;" to server section.


server_tokens off;
access_log off;

server {

listen 80 default_server;
server_name _;
index index.html index.htm index.php;
root /usr/share/nginx/html;


}


include /etc/nginx/conf.d/*.conf;
}

在CentOS7上,nginx的启动是有systemd 来管理的,位置在/usr/lib/systemd/system/nginx.service

配置文件为:

[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

macbook pro的无线大坑

这周一直在给macbook pro 重装系统,可恶的天朝网络,时断时续,经常从十几MB的下载速度掉到几十KB, 还有动不动can’t download items..

今天无意间在抽屉里发现当初买macbook时赠送的thunderbolt2转网线的接口,就无意识的插上网线一试发现reload system时,速度竟然能够一直保持在几十MB每秒, 6.05GB的macos Mojave,只需要5分钟就可以下载完毕..

看来再好的无线wifi硬件,在稳定性上还是不如ethernet

Macbook通过恢复功能重新安装macOS

大家都知道在开机的时候,按住Command+R可以重装系统,但是其实这里还有另外两个选项:

Option + Command + R, 也可以通过internet自动重装系统,但是是自动安装最新版本的macOS

Shift + Option +Command + R, 通过internet自动重装买这台macbook时安装的系统,如果这个系统太老并且不再被苹果所支持了,那么会通过internet安装正在支持的最为接近这个旧系统的macOS