ubuntu下正确的科学上网姿势

把家里的一台电脑折腾装了ubuntu16.04LTS64Bit,下面是其配置科学上网笔记:

安装shadowsocks-Qt5,安装教程在其官方Wiki上有,贴一下

sudo add-apt-repository ppa:hzwhuang/ss-qt5
sudo apt-get update
sudo apt-get install shadowsocks-qt5

装完后就能在程序列表找到这个绿色的小飞机了,启动它,输入自己的ss-server信息,连接,搞定。

shadowsocks只是一个socks5代理,打开绿色小飞机后你会发现还是无法科学上网,需要配置一下浏览器的代理,自带的firefox配置如下 首选项-高级-网络-连接-设置-手动配置代理 socks主机:127.0.0.1 端口:1080 版本选V5 务必勾选最下面的“使用 SOCKS v5 代理 DNS”,要不还是本地DNS解析,DNS污染会让你前功尽弃!设置如下图
firefox代理

浏览器其实我更推荐使用智能代理插件,智能判断被墙站点实现智能翻墙,firefox使用foxproxy或autoproxy修复版,chrome使用switchyomega,如果你的ss-server速度很快,全局代理和智能代理使用起来可能差别不大,但如果ss-server速度较慢的话,智能代理提高科学上网品质非常明显。

可能你还会有全局科学上网的要求,这个也分两种实现方式,全局翻墙和PAC智能翻墙。
全局翻墙办法见这里

pac办法如下

使用GenPAC生成pac文件

sudo apt-get update
sudo apt-get install python-pip
sudo pip install genpac
genpac -p "SOCKS5 127.0.0.1:1080" --gfwlist-proxy="SOCKS5 127.0.0.1:1080" --gfwlist-url=https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt --output="autoproxy.pac"

更详细的使用方法请见其wiki。

生成pac之后在系统设置-网络代理设置一下,方法选“自动” 配置URL填入刚才生成的PAC路径,格式为:file:///home/{username}/autoproxy.pac,如下图
网络代理
设置好之后你就可以访问下google看看有没有成功了
google

vultr冲5美元送25美元活动又来了

Vultr是现今最大的虚拟服务器主机商之一,全球拥有15个数据中心,其中美国西部的Seattle西雅图、Silicon Valley硅谷、Los Angeles洛杉矶对中国大陆速度不错。
PS:联通和移动用户更可以选择日本东京数据中心的,直连线路,ping值才50-60ms,电信用户就算了,绕道美国,ping值超250ms。
Vultr之前已办过多次充值赠送活动,这次活动又开始了,充五美元,就能用它家最便宜的VPS半年了~

——- 活动链接请点这里活动已过期 ————–

vultr.com_promo25b_.png

——-注册教程可见此链接 ———–

充值时请检查一下是否有送25美元哦,别手抖没送就点付款了~此次活动只限新用户参加,每人只有一次机会,走过路过不要错过^_^

ss老是不定时挂掉 写个简单的进程守护

博客搬家进这个之前专门跑shadowsocks的vps后,原来在此VPS上跑得很稳的的shadowsocks老是不定时挂掉,查找日志也找不出什么原因,都是突然进程就被杀了。shadowsocks开启详细日志模式也找不出原因,折腾一段时间实在找不出什么原因导致进程被杀,先把进程被杀这件事解决先,进程被杀原因以后慢慢找。
写了个简单的进程守护脚本,有同样需要的朋友可参考

#!/bin/sh
###以下修改
ss=ss-server #更改成你所安装的ss进程名
ssstart="/etc/init.d/shadowsocks start" #更改为你的ss启动命令
###修改结束
#添加定时任务每天清空日志
echo "0 0 * * * echo "" > /var/log/ssguardian.log" >> /var/spool/cron/crontabs/root
while true;do
count=`ps -ef|grep $ss|grep -v grep`
if [ "$?" != "0" ]; then
echo "$(date "+%y-%m-%d %H:%M:%S") no ss-server, run it" >> /var/log/ssguardian.log
$ssstart
else
echo "$(date "+%y-%m-%d %H:%M:%S") OK" >> /var/log/ssguardian.log
fi
sleep 10
done

这个脚本的作用是 通过ps命令判断shadowsocks的进程是否存在,不在就重新启动它,存在就不作任何操作。这是个循环操作,执行完之后休眠10秒,再次运行,如此往复。
用nohup命令把它丢在后台运行

nohup sh ssguardian.sh >/dev/null 2>&1 &

运行日志通过以下命令查看

tail -f /var/log/ssguardian.log

博客搬家了

博客建博初期安家里serverhub的免费独立IP主机上,后来因serverhub取消了免费主机的独立IP,并且线路也抽风得厉害,感觉不爽,开始搬家,其间短期搬到香港的hosthatch VPS上,其线路没绕道美国之前,确实不错,后来绕道美国也就没法看了。。。你想像一下,你访问的数据在太平洋来回跑了四次,能快得了吗?

后来搬到xvmlabs家512M 7IP 4.99刀VPS上(搬瓦工bandwagonhost的母公司IT7的旗下公司),总算安顿下来,算下来已经接近两年时间了。

前阵访问博客查下资料,发现无法访问,显示服务器响应超时。ssh上vps查看,vps没挂,就是负载很高,超过10了,进入到管理后台一看,提示VPS占用太多CPU已被系统自动降频!怪不得会响应超时!再进入ssh查看负载高的原因,web端口很多并发连接,有几十个IP每个发起了超过100个连接,蛋痛,遇到蛋痛的人CC攻击了,搞不懂我这个人畜无害的博客有什么好攻击的。

查清原因,着手处理,先分析日志,导出攻击IP,iptables ban掉这些IP,OK,负载一下就降下来了~

只是像XVMLABS这种超低价VPS,其CPU资源限制得太厉害了,几乎是被人轻轻一“摸”就不行了,稳妥起见还是搬家吧,这个xvmlabs用来跑ss还是不错的,就别要求它做建站这种高难度工作了。

手里刚好有一个去年黑五买的ultravps.eu的1G RAM的VPS闲置,就把博客搬到那吧~

经过一番折腾,已把博客搬家了,这个vps是KVM架构,上了锐速,看起来访问速度还快了一点点~

入手专业型录音笔 奥林巴斯 OLMYPUS LS-P2

工作需要一台好一点的录音笔,预算1000以下,一番查找,确定以下几个型号
1 TASCAM DR-05 ¥500-600
2 ZOOM H4N ¥1000-1200
3 OLYMPUS LS-14 ¥1000-1200
4 TASCAM DR-40 ¥1000-1200
5 ZOOM H1 ¥500-600
以上几个都是非常热门的专业型录音笔,网上资料很多,每个型号都有一定的拥趸。最先PASS掉两个500元价位的机器,有那么多的预算还是买好一点的吧,三个1000元价位的功能上都差不多,LS-14最小巧但精简了幻像电源,外接麦克风这些专业接口,扩展性略逊于另外两款。H4N和DR-40都是傻大黑粗型,在外拿出来录音B格满满。但我不需要B格,更看中的是便携,对于专业接口也无感,于是最终确定LS-14。放出三款图片,大家可自行对比。
DR-40
TASCAM DR-40
H4N
ZOOM H4N
LS-14
确定目标后要购买时犯难了,LS-14已经下市,日本已经无售,国行价格坑爹1999软妹币,看SMZDM的的记录,这货最低时日淘才700多块,现在就是闲鱼的二手也得1000左右,看起来全无性价比。
准备放弃选择这个型号,在日亚挑选时无意中看到了这货的继任版本 LS-P2 性能功能相当,体积更加小巧,增加了蓝牙支持,外壳也改为金属材质,这个可真是我的菜;缺点也不是没有,国内没上市,没有中文菜单,只有英文和日文菜单,不过只要有英文菜单对我来说就没有问题了,没犹豫,直接就下单了。
LS-P2
TB2duaub4tmpuFjSZFqXXbHFpXa_!!11952275.jpg
TB22JuBb5pnpuFjSZFIXXXh2VXa_!!11952275.jpg
价格为15887JPY 改送货地址到国内后有退税,价格变为14710JPY,退了1177JPY,国际运费661JPY,预收税款(多退少不补)1829JPY,最终价17200JPY,折合人民币约1075元。
LS-P2 Order
等收货了来个开箱:)

家里改光纤 折腾电信光猫记

之前村里集中光改时嫌还要交200块改造费,就没有去申请光改。不知道是不是心理原因,自从村里光改后大多数人都用上100M光纤网络之后,越来越觉得家里的6M ADSL小水管慢,前阵终于受不了,打10000号申请光改,最终交了100块让其实施光改,之前美名为集中光改真是坑,集中光改的费用居然比单独申请的费用还要高!另外升级光纤要每月加30块IPTV费用(借网络机顶盒给你使用)。原宽带为1080元/年包电话月租,算起来最终的费用就是 1080+360=1440/年 包固定电话月租。光改后最少保持这个套餐2年。

申请是年前申请的,大概农历26日左右吧,之后等到大年十二来装,当天装好网络就通了,并不像10000号说的那样可能会断网一两天。这一点不错。

过来安装那天要上班,下班回家就测试了速率能不能达到,合同上写的为下行100Mbps,上行2Mbps,结果为下行110-120Mbps,上行为4-6Mbps,非常不错,多次测试都差不多这个速度,晚上上网高峰测试也不会有波动。

电信配的光猫为友华PT921G 一千兆一百兆一ssid,默认的用户名密码权限非常低,能改动的东西非常有限,试着用电信通用的超级管理员账号 telecomadmin 密码 nE7jA%5m 登陆,居然直接就登陆上去,庆幸没有被电信更改,要不又得费一番手脚调出密码。

超级管理员密码被更改了的情况,大家可以自行搜索怎么解决,网上这类教程非常多,看了过程也并不是特别复杂,我这里就不展开说了。

这光猫电信人员装好默认用的是路由模式,Internet绑定千兆口和ssid,有线通过千兆口连接上网,手机笔记本之类无线设置可以直接连接其Chinanet-xxxx开头的WIFI上网。网络要求不高的人这种方式确实是最省心的,有线LAN口不够用的话可以另买个5口交换机进行扩展。

以上方式于我肯定是不适用的,原因有二,其一:这光猫性能有限,达不到我的要求;其二:wifi性能弱,家里无线设备最多时能达20台,用这台光猫带肯定是一个噩梦。

最终的方案是:

Internet改光猫直接拨号为纯桥接,绑定千兆口,之前的千兆路由–网件WNR3500Lv1接千兆口拨号,作为家里的主路由使用。
WNR3500Lv1刷了tomato,支持双wan,以后再接入移动光纤可以也接入此路由实现流量走自定义路由,线路负载均衡。其无线信号比较孱弱,干脆关闭掉它的无线功能,另加一个NEWIFI MINI接入LAN口作AP使用。

最后就是IPTV了,每月交30块不能白交,电信安装人员说要看IPTV必须把IPTV机顶盒和光猫用网线连通,接到光纤的百兆口,这个口默认是绑定IPTV的。IPTV的账号密码之类电信安装人员已经直接在机顶台里设好了,我试着连接网线的光猫IPTV口之后就直接可看了。

问题就是家里之前装修时并没有在电视机旁边留有网线接口,直接拉线的的话非常不美观,看着接受不了。看到机顶盒支持无线WIFI,就寻思可不可以通过连接无线实现IPTV功能。

光猫改路由模式为桥接模式的教程较多,但实现IPTV无线连接资源教程就非常少了,我没有搜过什么有用的信息,最终自己研究,实现了如下功能

1 光猫路由模式改桥接模式,另接性能强的路由器拨号
2 IPTV无线连接,和网线say goodbye
3 双拨,搞清楚怎么弄了,不过我的宽带账号不支持,把办法说出来,大家自行测试。

以上这些改动都需要超级管理员账号才能完成,默认的的账户为 telecomadmin 密码为 nE7jA%5m 如被电信人员更改了的话,请自行搜索相关文章调出密码。

下面说下操作办法
1 登陆超级管理员,默认IP为 192.168.1.1 账户为 telecomadmin 密码为 nE7jA%5m
登陆
2 定位到网络–宽带设置–连接名称 下拉选单可以看到有三个连接 VOICE为电话语音服务 OTHER为IPTV INTERNET为宽带相关的,我们要改的就是这个,默认为路由模式,其模式为Route,绑定LAN1和SSID1,我们改为桥接Bridge,绑定选项选LAN1千兆口,把SSID1去除勾选(后面IPTV无线连接要用到,一个SSID无法同时关联两个连接),链接方式选择PPP,其余选项不用更改,默认即可,设置好后保存,发现网络不通后即可连接路由器到LAN1口进行拨号,光猫路由改桥接搞定。
改桥接
设置完成是这样的
Bridge Done

3 连接名称定位到OTHER,这个是IPTV的连接项,默认为Bridge桥接,绑定LAN2百兆口,如下
IPTV 桥接
要改无线连接的话,桥接模式无法无线拨号,所以必须在光猫上完成拨号,把Bridge改为Route路由模式,设置如下(,注意必须绑定SSID1才能无线连接,改为路由模式之后必须填写IPTV拨号账号和密码,此信息一般可在安装单上找到,我这边是安装人员直接贴在IPTV机顶盒上的。
IPTV 路由
查看IPTV光猫拨号IPTV成功与否可以到 状态–网络侧信息 查看OTHER连接是否成功获取到IP。看到获取IP了,就可以在机顶盒上连接到SSID1,拔掉网线了,Enjoy Your wireless IPTV

4 测试能否双拨可以通过新建一条连接,模式选Route,承载业务INTERNET,绑定LAN2(前面设置IPTV绑定了LAN2的话要先解绑),链接方式选PPP,最下面填入拨号账户和密码,保存之后切换到 状态–网络侧信息 查看新建的连接能否获取IP,如果是的话,恭喜你,你的账号支持多拨!如果一直是“连接中”的话,代表你的账号不能多拨,别费时间折腾了。
我的测试结果是不支持,It is so bad…
status

之前在深圳办理的电信100M光纤的账号就可以,我拨号4次,叠加宽带到400M下行,8M上行~ 这种叠加在你普通上网时并不会感到什么区别,在多线程下载时,可以看到效果。

Okay,就写到这里吧&^_^&

ss公共服务器定时更改密码并同步更新到博客

公共服务器两天前就搭建好了,折腾了一阵,终于实现自动定时更改连接密码再自动在博文中更新它。
看到别人是通过php实现的,但博主我php拙计,只懂得一点shell脚本,最终通过shell弄好了,脚本分享出来,有一样需要的朋友可参考。

#! /bin/bash
#更改FTP的IP 用户名 密码
ftp_ip=glorystar.me
ftp_user=ftp
ftp_passwd=yourpasswd
#更改部分结束
passwd=`cat /dev/urandom | head -1 | md5sum | head -c 8`
cat > /etc/shadowsocks/config.json << EOF
{
    "server":"0.0.0.0",
    "server_port":8989,
    "local_address":"127.0.0.1",
    "local_port":1080,
    "password":"$passwd",
    "timeout":60,
    "method":"chacha20"
}
EOF
echo $passwd > /home/wwwroot/passwd.txt
cd /home/wwwroot
ftp -v -n $ftp_ip << END
user $ftp_user $ftp_passwd
passive
delete passwd.txt
put passwd.txt
bye
END
/etc/init.d/shadowsocks restart
exit

crontab定时执行以上脚本,我设定的是每天1时更改一次。

0 1 * * * sh ~/sh/ss.sh

解释一下脚本的实现过程
1 通过dev/urandom生成随机8位密码
2 用这个随机密码配置ss配置文件。
3 输出这个密码到passwd.txt文本文件,这个文件可供http访问。本来到这一步也就完成了,但因为vps服务器没有上ssl,在博客上直接引用这个txt文件会提示不安全内容而不加载,要手动加载,比较麻烦,所以有了下面的步骤。
4 通过ftp把这个passwd.txt上传到博客所在的服务器,博文上直接引用本地资源就不会有问题了。
PS 如果你的博客没有ssl,可以忽略ftp部分。

在博文上引用这个txt文件可通过iframe实现。

<iframe name="txt" marginwidth="0" marginheight="0" width="70" height="15" src="passwd.txt" frameborder="0"></iframe>

给用作公共服务器的vps安装vnstat流量监控

安装教程参照军哥的Linux VPS流量查看/监测工具 — vnStat 原教程有坑,在这里也把我的安装过程说下

1.下载vnstat和vnstat php frontend

wget http://soft.vpser.net/status/vnstat/vnstat-1.9.tar.gz
wget http://soft.vpser.net/status/vnstat/vnstat_php_frontend-1.5.1.tar.gz

2.安装vnstat

tar zxvf vnstat-1.9.tar.gz
cd vnstat-1.9
make && make install

3.把vnstat php frontend放到网站目录

tar zxvf vnstat_php_frontend-1.5.1.tar.gz
mv vnstat_php_frontend-1.5.1 /home/wwwroot/default/vnstat

4.配置vnstat

cat > /var/lib/vnstat/dump.sh<<EOF
vnstat -u -i eth0
vnstat --dumpdb -i eth0 >/var/lib/vnstat/vnstat_dump_eth0
EOF

把这个脚本加入crontab每五分钟执行一次

crontab -e
*/5 * * * * sh /var/lib/vnstat/dump.sh

5.配置vnstat php frontend

cd /home/wwwroot/default/vnstat
vi config.php
#指定显示标题
$iface_title['eth0'] = 'vultr-vps';
#设置以什么图片格式显示图表,可选svg和png,png兼容更好,默认svg,我们改成png。
$graph_format='png';
#指定安装目录,默认如下不用更改
$vnstat_bin = '/usr/bin/vnstat';
#指定数据目录,改为之前我们通过脚本每五分钟dump出来的那个目录。
$data_dir = '/var/lib/vnstat/';
#其它项可不更改。

遇到的坑
vnstat php frontend需要popen函数,lnmp1.0之前的版本没有禁用函数,所以军哥也没在他的教程里指出来,之后的版本都禁用掉了这个函数,导致访问vnstat页会无响应,php-fpm进程会占用100%CPU。
解决办法是解禁popen函数

vi /usr/local/php/etc/php.ini
#把disable_functions里的popen删除掉。
lnmp restart

vnstat
之后访问就正常了,搞定收工~

Netgear网件官方固件的qos还挺好用的

苦逼的博主家里的网络还是电信6M(0.5M上行),平常使用还好;但是周末时哥嫂回到家里网络就真的是炸了,近十台手机,起码得有两个人同时用手机看在线视频,老妈还要看电视–乐视网络视频,那时电脑真的是看个网站都不顺畅,卡半天才能刷出来。

农村地区,还没光纤覆盖;打电话给电信说要升级宽带,被告知6M已达到这条线路的最大宽带,没有资源再供提速了。

因为这种情况,路由器qos成了刚需,前阵一直在折腾这个,下面把折腾的过程说下。

最先家里网络主路由是一个TP-LINK的猫路由一体机,下面再接一个NETGEAR WNR-3500Lv1提供有线千兆网络,因为这个路由的无线信号不强,又另接了个newifi mini专做ap。

首先开刀的是WNR-3500Lv1,原来刷了openwrt在用,因为听说tomato的qos比较强,就刷了一系列的tomato固件:tomato dualwanTomato by Shibby,一番使用下来,发现开启了qos也没有什么效果,完全无法限制住迅雷,虽然迅雷下载速度能被限制到100kb/s,但网络还是很卡,而网络总使用率不到400kb/s,但迅雷开启了近2000个并发连接,以为是主路由的锅,他的性能无法承受这个连接数。于是设置不使用tp-link的路由功能,把它当作一个纯粹的宽带猫来使用,使用桥接由wnr3500lv1进行拨号上网。但这样设置了,问题依旧。好吧,估计是电信作了连接数限制吧。

之后还设置过在tomato上命令配置限制连接数,但效果也不明显。

之后在齐齐奔跑—Alex看到了这个qos限速脚本

#bbs.dualwan.cn 2015-8-14 by cheng1196  qq372693586
#这是OPENWRT固件与Tomato固件通用智能限速脚本
#装载核心模块
insmod cls_u32
insmod em_u32
insmod act_connmark
insmod act_mirred
insmod sch_ingress
insmod cls_fw
insmod sch_htb
insmod sch_sfq
insmod sch_red
#设置局域网处于192.168.1.0的网段
UIP="192.168.1."
NET="192.168.1.0/24"
#设置限速的ip地址192.168.1.100到192.168.1.130
#DHCP分配也需要设置192.168.1.100到192.168.1.130
IPS="100"
IPE="130"
#设置宽带的最大上传下载速度,UP上传,DOWN下载,1兆等于128,这是20兆光纤上传与下载
UP=384
DOWN=2560
#装载核心模块,创建QOS专用链
insmod imq
ifconfig imq1 up
ifconfig imq0 up
iptables -t mangle -N QOSUP
iptables -t mangle -N QOSDOWN
iptables -t mangle -A FORWARD -s $NET -d ! $NET -p ! icmp -j QOSUP
iptables -t mangle -A FORWARD -d $NET -s ! $NET -p ! icmp -j QOSDOWN
iptables -t mangle -A QOSUP -j IMQ --todev 1
iptables -t mangle -A QOSDOWN -j IMQ --todev 0
iptables -t mangle -A QOSUP -p udp --dport 53 -j RETURN
iptables -t mangle -A QOSUP -m length --length :512 -j RETURN
iptables -t mangle -A QOSDOWN -p udp --sport 53 -j RETURN
iptables -t mangle -A QOSDOWN -m length --length :512 -j RETURN
tc qdisc del dev imq0 root
tc qdisc del dev imq1 root
tc qdisc add dev imq0 root handle 1: htb
tc qdisc add dev imq1 root handle 1: htb
tc class add dev imq0 parent 1: classid 1:1 htb rate $((DOWN))kbps
tc class add dev imq1 parent 1: classid 1:1 htb rate $((UP))kbps
i=$IPS;
while [ $i -le $IPE ]
do
tc class add dev imq1 parent 1:1 classid 1:$i htb rate $((UP/32))kbps ceil $((UP/16*4))kbps quantum 1500 prio 5
tc qdisc add dev imq1 parent 1:$i handle $i: sfq limit 64 perturb 10
tc filter add dev imq1 parent 1: protocol ip prio 100 handle $i fw classid 1:$i
tc class add dev imq0 parent 1:1 classid 1:$i htb rate $((DOWN/32))kbps ceil $((DOWN/16*14))kbps quantum 3001 mtu 3200 prio 5
tc qdisc add dev imq0 parent 1:$i handle $i: sfq perturb 10
tc filter add dev imq0 parent 1: protocol ip prio 100 handle $i fw classid 1:$i
iptables -t mangle -A QOSUP -s $UIP$i -j MARK --set-mark $i
iptables -t mangle -A QOSDOWN -d $UIP$i -j MARK --set-mark $i
i=`expr $i + 1`
done

有一定效果,比tomato自带的qos效果更好一点,之前迅雷下载会导致整个网络几乎处于不可用状态,用这个还行,起码网页还刷得出来,视频能播放,不过放十几秒缓冲个几秒也是蛋痛得紧。

说到底还是网络的速度实在是太慢了,只有0.5M上传,在路由后台可以看到迅雷在下载时几乎占满了上传,导致整个网络拥堵。qos有一定效果但它毕竟也不是万能的。

最后突然想起来,网件的原生固件也有带qos的,何不试试它的qos怎么样呢?说真的,这个WNR3500Lv1路由器几乎买来就是折腾的,几乎没有正经用过网件的原生固件。

网件的qos最终带来的惊喜,其qos默认配置不用改,开启它就好,真的挺强的,实测能限制住迅雷,网络繁忙时其下载速度会自动降下来,其也会自动限制住迅雷多开连接,在tomato下,迅雷能开启近2000个并发连接,在原生qos下,只能开启300多个。

最终在这个qos下,我用6M宽带做到了两台手机看超清网络视频,我在一台电脑看斗鱼超清直播,另一台电脑开迅雷下载。而视频全部不卡,迅雷下载被限制在150kb/s左右。

如果你也有和我一样的困扰,并且你手里也有网件的路由器的话,不妨试下网件原生固件(界面看起来真的好挫)的qos功能,没准它能给你惊喜呢~

最后,祝各位圣诞快乐哦~