在Openwrt/Lede路由上实现基于Name.com V4版本API的快速更新的DDNS

之前一直用花生壳的免费DDNS,但是最近一周不知道为啥,服务老是抽风,dns更新速度明显下降,甚至达到1-2天。于是研究了一下,发现name.com最近发布了v4版本的api,看了文档以后,果断写了个脚本,一旦ip变更,新dns可以马上更新,消耗时间无限接近0。。。于是ddns更新时间只基于计划任务的间隔时间了。。。
使用此脚本的前提:
1.域名必须是由name.com购买的,并且生成一个生产的Token。
2.登陆账户必须没有开启二次验证,否则api会提示错误:Accout has Namesafe enabled. (注意这里account拼写还是错的。。已发ticket给name.com)。
3.路由上需要安装curl和ca-certificates和ca-bundle,以便解析https。
4.首次需要手动添加一次域名,以便获取ID号码,例如为www.examle.com添加第一个dns记录:
继续阅读在Openwrt/Lede路由上实现基于Name.com V4版本API的快速更新的DDNS

Openwrt 利用squid进行上网行为控制,过滤在线视频和视频下载

某些情况下,需要过滤在线视频和视频下载,按照IP或者网址过滤当然是可以的,不过要找到那么多视频网址很麻烦,现在大多数视频网站都开启了CDN,即便拿到ip池也是不全的。找了半天,终于看到了一个办法。
首先当然是安装squid了:

内容为:

继续阅读Openwrt 利用squid进行上网行为控制,过滤在线视频和视频下载

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代理上网的怪异解决方案

使用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 X86 刷机实战(5个千兆网口+wifi,任意分配wan和lan,使用全部硬盘空间)

    最近使用中发现一般的路由器性能还是不行,例如顶级的wrt1900ac,50M跑满SS使用rc4-md5的负载约为40-50%,若使用aes256cfb负载约为70%。如果家里是100M的带宽跑满SS估计会用到100%,这时候性能就不够了,特别是如果家里有两条宽带的,那性能就更不够用了,此时就必须使用x86架构了。另外废旧的电脑可以利用起来。
    网上openwrt x86攻略不多,大多数只有寥寥几句,还是自己弄吧。。。

    0.准备工作
    硬件配置:
    处理器:Intel(R) Core(TM) i3 CPU 540 @ 3.07GHz
    主板:索泰 H55 itx,板子上只有一个千兆网口Intel 82758DM,还有个mini pcie的无线网卡ralink RT2790/2720,无线网卡驱动为kmod-rt2800-pci(This package contains the Ralink Driver for WiFi, a Linux device driver for 802.11a/b/g universal NIC cards – either PCI, PCIe or MiniPCI – that use Ralink chipsets (rt2760, rt2790, rt2860, rt2890).)
    内存:G skill F3-12800CL9D-4GBRL 2g*2
    固态硬盘:镁光M4 CT256M4SSD2 SATA3 SSD 256GB (openwrt use all space)
    四口千兆PCIE网卡:Intel I340-T4( Intel 82580 )四口PCIE网卡pci-e1000M有线千兆网卡E1G44HT(注意:之所以选择这块而不是更加新的I350-T4,是因为怕驱动找不到,而82580芯片直接有kmod-igb驱动支持(This package provides the igb kernel modules for Intel 82575/6 & 82580 Gigabit NICs))
    U盘一个
    显示器键盘鼠标网线
    和另外一台win7电脑。。。
    继续阅读废物利用 Openwrt X86 刷机实战(5个千兆网口+wifi,任意分配wan和lan,使用全部硬盘空间)

    利用openvpn远程连回家里openwrt路由器上内/外网。。。

    最近考虑搞个双线或者精品网,但有时出门在外,无法享受,岂不浪费。于是考虑通过openvpn连回家里路由器来上网,还能访问家里的设备。。。家里的刚升了上行带宽,正好来试试。

    首先在刷了openwrt的wrt1900ac路由器上安装软件:

    然后编辑/etc/easy-rsa/vars,修改部分内容

    接着生成证书和diffie-hellman key:
    手工清空/etc/easy-rsa/下的key目录或者运行clean-all
    生成ca证书
    build-ca
    生成dh密钥
    build-dh
    服务器证书
    build-key-server server
    客户端证书
    build-key coffeecat
    最后两个后面的名字都可以改

    拷贝到服务器目录下:

    拷贝到客户端:
    ca.crt dh1024.pem coffeecat.key coffeecat.crt

    然后就是最关键的配置openvpn服务器端和客户端了:
    路由器服务器端:
    编辑/etc/config/openvpn :

    注意:172.24.1.1为路由器的lan ip,172.24.1.100-172.24.1.105是为vpn客户端分配的ip端,一定要和路由器为lan dhcp的ip段错开。

    然后在luci或者命令行启动openvpn:

    ps一下有进程就对了

    windows7 openvpn客户端配置:
    C:\Program Files\OpenVPN\config\client.ovpn

    最后在路由器上增加自定义iptables规则:
    先把tap0放到lan区域中,然后在自定义规则里面加上:

    另外win7里面要设置一下metric,否则可能不是走的vpn这个路,设完以后,可以看到vpn的跃点最小:

    参考:

    1.http://blog.ltns.info/linux/connect_two_home_networks_using_openvpn_and_openwrt/
    2.http://huxos.me/blog/openwrt-openvpn/

    Linksys WRT1900AC 路由器双线(Dual Wan)/多线(Multi Wan)设置教程

    WRT1900AC 刷了openwrt以后,修改vlan配置就可以实现多wan了,下图是刚琢磨出来的网口结构(Layer)图,刷完openwrt以后默认就是这个样子了。。。
    vlan1是lan,vlan2是wan,port5为cpu也就是eth0,port6为eth1,与eth0相连的是lan,与eth1相连的是wan,port0..3分别对应路由器外壳印刷的4..1,port4对应路由器外壳印刷的Internet。

    20150627,研究一天以后发现无论怎么划分vlan,都无法实现dual wan,因为分来分去都是在eth0.x里面,而不是eth1.x,最多只能将某个lan port转换为wan port,但是无法和wan口同时使用。。。而我的tplink wdr4310一下就设置好了。。。

    图片1

    20150628,在op论坛发了个求助帖子,最后在leitec网友的帮助下终于搞定vlan设置,实现了双线双wan接入设置:
    修改 /etc/config/network 为:

    继续阅读Linksys WRT1900AC 路由器双线(Dual Wan)/多线(Multi Wan)设置教程