使用LEDE/OPENWRT 路由器自动发送邮件
今天研究实现了手动或者定时自动通过LEDE/openwrt路由对外发送邮件的功能。
1.安装软件包。
今天研究实现了手动或者定时自动通过LEDE/openwrt路由对外发送邮件的功能。
1.安装软件包。
最近搞了个华为的usb无线网卡E8372插在lede路由上,但是想实现程序控制其供电,查阅资料后发现可以这样实现:
首先:
由于mt7621方案中mt7603e的2.4G lede驱动非常不稳定,导致我买的newifi d1、zbt wg3526、极路由4(HC5962)刷机后的2.4G基本都成了摆设。没办法只能通过挂载USB无线网卡当AP。
测试的USB网卡有:
X东购买tplink tl-wn725n v2.0 rtl8188eu (0x0bda:0x8179)安装驱动后直接无法启动路由器。。。跟作者发了邮件,回复说不支持。
X宝购买RT3070 杂牌网卡,安装驱动后直接无法开启ap模式,只能使用client模式。。。网上查询据说是最新的几版的驱动有问题,op老版本据说没问题,未测试。
X东购买磊科(netcore)NW362,rtl8192cu,安装驱动后完美ap模式。
以前买的tplink tl-wn821n v2.0,ar9170,安装kmod-carl9170驱动后,完美ap模式。
之前买了个ZTE Q7便携路由,也可以刷op,但是不能直接插sim卡,携带不是很方便,最近在网上逛了逛,发现了一个神器,配置为 mt7620a ROM 16M/RAM 128M 5200mAh,花了一周时间,适配了LEDE 17.07.0 正式版本系统,目前实现了几个功能:
1.直插sim卡上网,目前测试了移动3g和联通3g,使用的是上海移远EC20-C 4g mini pcie模块(注意经研究该模块有很多个批次,需要芯片为高通MDM9215才行,pid 05c6 vid 9215),参数为:
EC20-C
最近实践了一下利用Openwrt路由部署Openvpn进行两地组网,目标是实现两个局域网互相访问。
配置:
1.Openvpn服务端(内部局域网段172.24.1.0/24):
首先/etc/config/network配置加一个interface:
最近买了MT7621路由,还带sata口,就想适配一个系统,由于:
1.Openwrt官方trunk里面kmod-mt76驱动居然还停留在2016年6月,实测2.4G比较弱,所以不予考虑了,再看LEDE的snapshot,更新到2017年2月了,当然要选择LEDE了。
2.LEDE目前全面切换到了MUSL库,导致迅雷xware mipsel的32位uclibc版本直接不能用了,为了适配,所以必须编译一个基于uClibc库的系统,但是LEDE/OPENWRT的toolchain默认菜单里面都只有musl和glibc了,uclibc被标记为了broken。。。。所以必须自行研究。
最近在网上逛的时候发现一款MT7621的路由,由于OPENWRT的TRUNK版官方支持该路由,所以就买了一个回来,型号是ZBT-WG3526,16MB ROM,512MB RAM,MT7603EN的2.4GHz芯片,据说此芯片驱动有不少问题,目前还在解决中,MT7612EN的5GHz芯片,驱动据说非常稳定,支持ac,另外还有一个sata口和mini pcie,可以接一个笔记本硬盘,测试了一下,可以塞进去,不过要想办法固定。
出厂系统直接不能用,而且只能识别128MB内存,简直坑爹。。。所以到手就用sysupgrade刷了trunk版本的OP官方系统。。。由于trunk版本是musl的c库,很多软件需要重新编译才能使用,例如chinadns,迅雷xware直接不能用。。。等15.05.2出个glibc的版本才可以。。。
某些情况下,需要过滤在线视频和视频下载,按照IP或者网址过滤当然是可以的,不过要找到那么多视频网址很麻烦,现在大多数视频网站都开启了CDN,即便拿到ip池也是不全的。找了半天,终于看到了一个办法。
首先当然是安装squid了:
由于某些网络要求必须通过http代理认证才能上网,而目前市面上还没找到支持全局wan口代理上网的路由器,只能另辟蹊径。
一般的路由都有按IP进行流量统计,但是openwrt似乎没有自带的按ip进行流量统计插件,只有按interface进行统计的插件,不是特别方便。在查阅一些资料后,发现一个软件叫做bandwithd,可以实现这个功能。
由于esxi 5.x 木有了crontab,所以添加计划任务就很麻烦了。这里是要添加一个自动关机的计划任务,每10分钟扫描交换机,由于交换机没有ups,所以停电的时候是ping不通的,然后gen8 可以知道断电了,然后延迟10分钟关机(防止还未启动完成就关机)。
首先ssh登录esxi。
1.创建计划任务脚本:
之前用过starssl的免费ssl证书,现在到期了,因为申请和续期都很麻烦,所以懒得再弄。最近在网上看到去年底,成立了个新机构(from wiki):
Let’s Encrypt 是一个将于2015年末推出的数字证书认证机构,将通过旨在消除当前手动创建和安装证书的复杂过程的自动化流程,为安全网站提供免费的SSL/TLS证书。
之前折腾tun模式好久,总是连上以后要么上不了网,要么根本不走vpn。。。这次抽空总算搞定了。。。
由于安卓机上的openvpn客户端不支持tap,所以必须要设置tun模式:
首先是服务器端(openwrt路由):
/etc/config/network配置加一个interface:
上海有免费的i-Shanghai,速度还不错,唯一麻烦的是每次登录都要通过手机号和用户名密码进行验证。作为组装级的程序猿,如不能做到自动登录是十分痛苦的事情。。。于是,加班之余展开了为期一周的研究。。。最终实现了PC端和Openwrt端的i-Shanghai自动登录。。。。
之前在Openwrt x86中安装了Shadowsocks客户端(废话么),并通过openwrt下的debootstap+debian虚拟机安装了adbyby广告过滤。
虽然在openwrt x86下原生有ss服务器端(编译时需修改makefile参数),但是据说由于架构原因,性能不行,速度最多几百K,所以同样考虑在openwrt下的debootstap+debian虚拟机实现SS服务端功能,并且与openwrt x86原生的ss客户端不冲突。。。
该功能的主要需求是:从任何地点,通过网络,利用ios(需root)或安卓(需root)或者pc设备访问家中局域网。。。之前pc端可以通过openvpn连回家,但是安卓设备上不支持tap模式,故还需要一个轻量级的办法。。。
如果子网中有Esxi主机的话,需要在虚拟交换机中打开混杂模式(Promiscuous Mode)。。。
由于Openwrt关闭不好的问题,重启进入openwrt,发现luci 配置无法写入,进入ssh发现remounting file system is read only…但是又不想重装。。。由于这是根文件系统已挂载,所以e2fs无法在该系统里面修复文件系统错误。
于是机智的我在esxi里面又开了个openwrt虚拟机,其实用linux发行版也行啦,挂载上述出问题的openwrt的盘,但不要mount,进入系统后,因为出问题的盘是sdb的sdb2,运行:
最近搞了一台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便宜。。。