Openwrt 路由器通过全局HTTP代理上网的怪异解决方案

由于某些网络要求必须通过http代理认证才能上网,而目前市面上还没找到支持全局wan口代理上网的路由器,只能另辟蹊径。

一开始想到用linux全局http代理,修改/etc/profile增加http-proxy,ftp-proxy,https-proxy,但发现这种情况不支持全协议(例如DNS/UDP之类),而且只能让路由本身用上代理,所以这个方案pass。

后来想到用squid,折腾发现由于squid支持的协议虽然很多,但是如果作为transparent透明代理的话,需要配置iptable,使之将80等端口重定向到squid端口上才行,这样也很麻烦,由于不支持socket代理,所以仍然不可以用,这个方案也pass。

最后还是采用了openvpn over http proxy的解决方案。

先说说这个方案的缺点:
1.配置复杂,需要对端openvpn服务器支持。
2.出口带宽受限,不超过对端openvpn服务器的上行带宽。

优点是:
1.所有流量通过HTTP代理出去,兼容所有协议
2.可以实现HTTP代理认证
3.可以使用多个openvpn服务器做冗余。
继续阅读Openwrt 路由器通过全局HTTP代理上网的怪异解决方案

Openwrt 实现按ip进行流量统计的办法

一般的路由都有按IP进行流量统计,但是openwrt似乎没有自带的按ip进行流量统计插件,只有按interface进行统计的插件,不是特别方便。在查阅一些资料后,发现一个软件叫做bandwithd,可以实现这个功能。

原版的cc 15.05是没有这个包的,官方说需要自己编译。。。但是我从cc 15.05.1下了个也能用。

然后通过:

就可以看到各内网ip的流量,页面自动刷新的。

注意,如果路由ip不是192.168.1.0/24网段,需要修改/etc/config/bandwidthd。

参考资料:
1. https://wiki.openwrt.org/doc/howto/bandwidthd

ESXI 5.5 添加计划任务的办法

由于esxi 5.x 木有了crontab,所以添加计划任务就很麻烦了。这里是要添加一个自动关机的计划任务,每10分钟扫描交换机,由于交换机没有ups,所以停电的时候是ping不通的,然后gen8 可以知道断电了,然后延迟10分钟关机(防止还未启动完成就关机)。
首先ssh登录esxi。
1.创建计划任务脚本:

注:之所以要在volume上创建脚本是因为如果直接在/etc等目录创建后重启就没了。

2.修改/etc/rc.local.d/local.sh实现重启也能自动添加计划任务:

3.重启esxi查看效果

使用let’s encrypt让自己的博客启用https(基于debian7+apache2)

之前用过starssl的免费ssl证书,现在到期了,因为申请和续期都很麻烦,所以懒得再弄。最近在网上看到去年底,成立了个新机构(from wiki):
Let’s Encrypt 是一个将于2015年末推出的数字证书认证机构,将通过旨在消除当前手动创建和安装证书的复杂过程的自动化流程,为安全网站提供免费的SSL/TLS证书。

一是简单,二是免费,为啥不用呢,于是看了看文档,就开始弄了:
继续阅读使用let’s encrypt让自己的博客启用https(基于debian7+apache2)

Openwrt路由上的Openvpn Server Tun模式配置和firewall配置

之前折腾tun模式好久,总是连上以后要么上不了网,要么根本不走vpn。。。这次抽空总算搞定了。。。
由于安卓机上的openvpn客户端不支持tap,所以必须要设置tun模式:
首先是服务器端(openwrt路由):
/etc/config/network配置加一个interface:

/etc/config/openvpn配置文件

注意下面10.8.0.0千万不要写成和内网(172.24.8.0)一样,否则会使得路由器变砖!!!

继续阅读Openwrt路由上的Openvpn Server Tun模式配置和firewall配置

PC端和Openwrt端的i-Shanghai自动登录研究

上海有免费的i-Shanghai,速度还不错,唯一麻烦的是每次登录都要通过手机号和用户名密码进行验证。作为组装级的程序猿,如不能做到自动登录是十分痛苦的事情。。。于是,加班之余展开了为期一周的研究。。。最终实现了PC端和Openwrt端的i-Shanghai自动登录。。。。

首先,分析阶段:
i-Shanghai的wifi连接上以后,任意打开某网页,例如:www.baidu.com,就会自动跳转到如下页面:

继续阅读PC端和Openwrt端的i-Shanghai自动登录研究

在HP GEN8上安装openwrt,实现“万兆”虚拟路由器。。。

最近搞了一台HP Gen8 microserver,升级cpu,内存,Intel I350-T4口千兆网卡以后就装了个esxi,自己用ESXi-Customizer-v2.7.2把最新版的网卡驱动集成了进去,网卡驱动为igb-5.3.1-1331820-3123166,之前网友说kmod-igb支持I350,所以这次才入的I350-T4,据说转发小包性能强于I340-T4,价格还比I340便宜。。。

目标:

  • 通过openwrt设置vmxnet3万兆虚拟网卡通过esxi的链路聚合设置I350, 实现4Gb上行链路
  • 过程:

  • netgear GS116E V2交换机,只支持static的链路聚合lag,不支持lacp。。。双机拷贝openwrt下文件速度之和最多1900Mbps
  • 后来更新了个HP 1810-8g的设备,成功实现了distribute switch下的lacp,但是双机拷贝openwrt下文件速度之和最多仍然是1900Mbps
  • 通过监控发现,静态下和动态lacp下,走的是两个物理网口,但是速度之和为1900Mpbs(最后有截图)
  • 另外,如果I350的4个网口,直通了2个e1000,另外两个做lacp的话,当openwrt选择虚拟vmnet3时,网络是不通的,只有选择e1000才通。。。
  • 最后在I350直通了2个网口分别给2台物理机,同时拷贝openwrt速度均可以达到1000Mpbs,说明不是磁盘性能问题。
  • 继续阅读在HP GEN8上安装openwrt,实现“万兆”虚拟路由器。。。

    无人值守编译openwrt时自动跳过错误,不中断的方法。。。

    编译openwrt时经常因为各种因素导致package编译失败,默认编译make V=99会打印所有输出,并且遇到package编译失败会中断整个编译过程,非常令人恼火。。。其实只要加上IGNORE_ERRORS=1 的选项进行编译就不会出现这样的问题了,另外网上找到了一个脚本,可以更直观的发现编译错误,最多编译完成后再手动调整编译package咯,节省很多时间。。。
    转载自:
    https://lists.openwrt.org/pipermail/openwrt-devel/2009-June/004411.html

    Openwrt 扫描在线设备并自动关机

    由于懒得在关闭PC或者手机后去关路由器,我写了2个关机脚本:

    1.该脚本在局域网没有在线设备时关闭路由器

    2.该脚本在局域网某两台固定IP的PC离线时关闭路由器(防止未关手机wifi时路由器无法关闭)

    定时任务

    参考资料:
    1. http://blog.csdn.net/qianguozheng/article/details/28393145