glorystar 发布的文章

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

之前村里集中光改时嫌还要交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功能,没准它能给你惊喜呢~

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

网件netgear系列路由丢失MAC地址改回原厂设定的办法

折腾学习openwrt的测试路由是网件Netgear WNR3500L V1,这个路由也算当年的一个经典型号,配置如下

Broadcom BCM4718A@453MHz
64MiB RAM
8MiB FLASH
4 x 1千兆LAN口
1 USB2.0

总体来说,可玩性很高,性能也还过得去。
这是网件的开源路由,各大路由系统DD-WRT OPENWRT TOMATO等都有支持。

在折腾的过程中,发现MAC地址丢失了,表现为mac地址为 00:FF:FF:FF:FF:FF ,这个问题曾经困扰了我很久,试了很多办法都不能把它改回来,走了很多弯路。

mac丢失并不会影响使用,但强迫症患者表示看到这个mac非常不爽!

近期总算找到办法把它改回出厂mac了,之前没有记录起来,导致又出现这个问题后又是一番查找才解决问题,这里把过程贴下,权作记录方便以后自己查找,也方便后来者遇到和我一样的问题少走弯路。

1、 无论你现在使用的是什么版本的固件,请把它刷回官方固件。
2、 下载网件的telnetenalbe,把telnetEnable.exe解压到你的个人文件夹(省去cd到目录或者加patch的麻烦)。
3、 WIN键+R 打开运行 输入 CMD 打开CMD 输入如下命令 telnetenable.exe 192.168.1.1 00FFFFFFFFFF Gearguy Geardog IP为你路由IP,请做相应更改,最后两参数为用户名密码,注意大小写。
4、 再另外打开一个CMD窗口, telnet 192.168.1.1 登录上去
5、 输入如下命令更改MAC

cd /sbin
burnethermac 设备原MAC地址
reboot #重启退出后门模式

注意mac地址不用加符号,只输入字符就行。
搞定收工。

此办法同样适用于以下网件路由型号

DC112a v1: Works with UDP of version TelnetEnable and adminstration admin/pw, telnet does not require password.
DGN1000v3: Router Firmware Version V1.0.0.14_0.0.14 works, gives access to a BusyBox console w/o authentication
DGND3700v1/DGND3800B: < 3.0.0.8 works with original telnetenable over TCP; >= 3.0.0.8 works with any telnetenable patched for UDP
EX2700: firmware V1.0.1.8 works, gives access to root shell w/o authentication (telnetenable listens on UDP/23)
EX6100: Works with original telnetenable (TCP/23) with credentials super_username/super_passwd (not admin/password as one might think) or Gearguy/Geardog or both. Sometimes it doesn't unlock with first attempt (parser_enable?)
R6700: V1.0.0.2_1.0.1 Tested and working with modified python script of telnetenable.
R7000: Assumed to be working with modified python script of telnetenable, and modified telnetenable binary for linux x86-64. V1.0.4.30_1.1.67 & V1.0.7.2_1.1.93 tested working with linux telnetenable from insaneid github using web GUI credentials. Doesn't work with super_username & super_passwd nvram variables that are still present. Changing them does nothing. The telnet login ignores credentials (telnet -l username router_ip).
R7500: V1.0.0.82 Tested and working with modified python script of telnetenable, and modified telnetenable binary for linux x86-64.
WG602 (unknown version): assumed to work
WGR614 v1-2: unknown; may work
WGR614 v3,v4,v5,v6: known to work
WGR614 v7: known to work (if it does not work for you, try to hard reset your router first)
WGR614 v8 (WGR614L): works, access to a BusyBox console without authentication
WGR614 v9: works, gives access to a BusyBox console without authentication
WGR614 v10: works, gives access to a BusyBox 0.60.0 console without authentication
normally uses the old TCP utility
the latest WNR1000v3 OEM firmware (1.0.2.68_60.0.93NA) modified (board id hex edited) uses the UDP utility
WGT624 (unknown version): assumed to work
WGT624 v2, v3: works
WGT624 V3H1: works (after 6-12 try, reboot, try again cycles)
WN3000RP v1: works; does not require username/password for login, but necessary for telnetenable (Geardog/Gearguy)
WNDR3300 : works. Does not require username/password for login. On connection the '#' prompt is displayed.
WNDR3400v2 v1.0.0.16_1.0.34 works; does not ask for username/password on login. On connection you should be dropped on a '#' prompt.
WNDR3700 V1.0.7.98: known to work - does not ask for username/password. After connection you will be root at BusyBox v1.4.2.
WNDR3800 v1.0.0.16 Tested with the python script of telnetenable.
WNDR4000 v1.0.0.88 works. Does NOT ask for username/password on login. On connection you should be dropped on a '#' prompt.
WNDR4300 V1.0.1.30/34/42 works with the python script. Does NOT ask for username/password on login. On connection you should be dropped on a '#' prompt.
WNDR4500 V1.0.1.40 works with the python script. Does NOT ask for username/password on login. On connection you should be dropped on a '#' prompt.
WNR1000 v1-2: works; does not require username/password for login. On connection the '#' prompt is displayed.
WNR1000 v3: works using the new UDP utility with GUI user/password, using latest OEM firmware 1.0.2.68_60.0.93NA
did not work initially, only having performed a GUI reset after upgrading firmware to latest
BusyBox 0.60.0 worked after a hard reset (power on holding reset button until lights flash)
firmware prior to latest was not tested, but expect the old TCP utility was required, per WGR614v10
WNR2000 v4: works; does not require username/password for login. On connection the '#' prompts is displayed.
WNR2200 v1: works; does not require username/password for login. Uses Gearguy/Geardog and the old TCP method. Displays OpenWrt header on connect (stock firmware)
WNR3500 v1.0.29: works; does not ask for username/password on login. On connection you should be dropped on a '#' prompt.
WNR3500L V1.2.2.44: Works. V1.2.2.48_35.0.55NA: fails. Does NOT ask for username/password on login. Dropped to '#' prompt on connection.
WPN824 v1, V2.0.15_1.0.11: known to work
WPN824 v2: known to work
WPN824 V3: not needed; enable the utelnetd option in Remote Management.

参考 Unlocking the Netgear Telnet Console