千水金年

openwrt

2017-11-14

本文记录

硬改

BootLoader

  • AR/QCA/MTK Breed,功能强大的多线程 Bootloader
  • 下载
  • [breed-ar9331.bin] TP-LINK TL-MR11U TP-LINK TL-MR13U TP-LINK TL-MR3020 v1 TP-LINK TL-MR3040 v1/v2 TP-LINK TL-MR3220 v2 TP-LINK TL-WR340G+ v7 TP-LINK TL-WR700N TP-LINK TL-WR702N TP-LINK TL-WR703N TP-LINK TL-WR740N v4 (国际版) TP-LINK TL-WR740N v5/v6/v7 TP-LINK TL-WR741N v4 TP-LINK TL-WR742N v5/v6 TP-LINK TL-WR743N v2 TP-LINK TL-WR745N v2 水星、迅捷马甲路由 [breed-ar9331-wr710n.bin] TP-LINK TL-WR710N TP-LINK TL-WR720N v3 [breed-qca953x.bin] TP-LINK TL-WR802N v1 TP-LINK TL-WR820N TP-LINK TL-WR841N v9/v10/v11 TP-LINK TL-WR842N v4 水星 MW300R v10 水星 MW305R v3 水星 MW305R v5 水星 MW316R v1 迅捷 FR300R v9

进入Breed

  • 编程器刷Flash(没有刷入系统) 供电,链接电脑后直接进入bread
  • 已经输了系统进入bread web 拔掉电源,一只手按住reset不送开,另一只手插电源,看到所有指示灯同时一起闪烁4次或3次,然后所有手拿走,去操作电脑浏览器进breed吧。
  • 已经输了系统进入bread控制台 BreedEnter–免复位键进Breed控制台

WR703N

WR720N v3/v4

这些天因为某些原因,一直在折腾我的TP-Link WR720N V3,也算是物尽其用吧,为榨干它的所有剩余价值,就刷成OpenWrt了。 目前的需求大约如下: 1.无线上网(╮(╯_╰)╭) 2.挂载USB设备(USB存储、摄像头等) 3.USB启动(用于扩展系统空间) 4.SSH安全隧道(安全代理) 5.wifi的web认证 以上需求可能会因为实际情况发生改变,以后再记录。 刷OpenWrt之前,特地学习了一下OpenWrt Image Builder,OIB是OpenWrt的预编译环境,作用是将已经编译完成的软件包进行打包。相对于从源码编译而言,OIB要省时省力。当然,在定制方面也受到了些许限制,不过都在可以接受的范围之内。我按照自己的需求已经将自己需要的软件编译到刷机包当中。为了此文的适用性,以下内容还是按照官方版的默认配置进行说明。 登录OpenWrt官方网站,查看支持列表发现默认支持我的设备,直接下载刷机包做准备。 使用网线连接电脑和路由的LAN口,输入路由的地址,默认为http://192.168.1.253/,登录路由,在系统升级页面选择刷机包openwrt-ar71xx-generic-tl-wr720n-v3-squashfs-factory.bin,选择不保存配置,确认升级。在升级过程中不可断电。当升级结束后,电脑与路由会重新建立连接。 打开命令提示符,登录到路由的控制平台。 telnet 192.168.1.1 OpenWrt的wifi并非默认开启,我们需要修改一下wifi的配置文件来开启它。 vi /etc/config/wireless 删除此行内容 option disabled 1 保存,退出。 重启路由,启动后,我们就可以抛开网线了。 我的网络环境是直接接入上级路由,无需拨号,所以,将路由的WAN口直接接入上级网络即可上网。

上次我们已经刷入了OpenWrt、开启了wifi,并接入了网络。接下来,我们要给路由安装USB存储的支持。 之前,我们使用Telnet登录路由器,为了路由的安全我们将设置root的密码,并使用SSH登录路由。

telnet 192.168.1.1

接下来修改密码

passwd root

输入两次新密码,关闭命令提示符。 至此,路由的Telnet服务就关闭了,并开启了SSH服务。SSH的客户端推荐使用PuTTY。使用SSH登录路由以后我们先更新一下软件包列表。

opkg update

一切正常的话我们将得到以下反馈。

Downloading http://downloads.openwrt.org/sna ... ckages/Packages.gz.
Updated list of available packages in /var/opkg-lists/barrier_breaker.

下面,我们就可以安装系统中所缺少的软件了。

opkg install kmod-usb-storage #USB存储支持
opkg install kmod-fs-ext4          #ext文件系统支持,向下兼容
opkg install kmod-nls-utf8        #UTF-8字符支持
opkg install block-mount           #USB挂载支持,USB启动支持

安装完成后,插入Ext3或者Ext4格式的U盘,系统将会自动识别出来。

ls /dev

能够看到类似sda、sda1、sda2这样的命名。

mount /dev/sda1 /mnt #将sda1分区挂载到/mnt
cd /mnt #打开/mnt

这样就成功挂载了U盘。 接下来,我们要让系统从U盘启动,来扩展下可怜的不到4M的空间。

mount /dev/sda1 /mnt #挂载sda1到mnt
mkdir /tmp/root #创建根文件夹镜像
mount -o bind / /tmp/root #绑定根目录到镜像文件夹
cp /tmp/root/* /mnt -a #复制根文件夹所有文件到/mnt
echo Boot from U-Disk >> /mnt/etc/banner #写入一个提示用于表示这是U盘启动
umount /tmp/root #卸载
umount /mnt #卸载

U盘启动所需要的文件已经准备好了,接下来要让系统启动时自动挂载U盘并从U盘启动。

vi /etc/config/fstab #编辑fstab配置文件

添加以下内容(#为注释内容,可以不添加)

config ‘mount’
# option target ‘/overlay’ #挂载到/overlay
option device ‘dev/sda1′
# option fstype ‘ext3′ #推荐ext3格式
# option options ‘rw, sync’ #模式选项
# option enabled_fsck ’1′ #检查修复磁盘错误
option enabled ’1′
option is_rootfs ’1′

运行以下内容

/etc/init.d/fstab enable #开机启动fstab
reboot #重启

按此配置,一切正常的话,当重启完成登录SSH后就会看到最后一行提示为

Boot from U-Disk

好了,系统挂载在U盘启动到此完成。

SSH是个好东西,用途多多。 OpenWrt自带的SSH为Dropbear,略显薄弱,直接换OpenSSH。 登录OpenWrt,先移除Dropbear。

opkg remove dropbear

更新列表

opkg uodate

安装OpenSSH

opkg install openssh-client #安装OpenSSH客户端
opkg install openssh-server #安装OpenSSH服务端

安装完成后先登录远程主机测试一下。

ssh user@host

连接成功就可以继续了。

ssh -D 0.0.0.0.0:7070 user@host

成功开启socks代理。目前,你可以通过Chrome+SwitchySharp或者FireFox+AutoProxy之类的组合做一些你想做的事情。这些不在本文讨论内容之列。 手动启动SSH、意外断开连接都是目前的弊端。不过,好在有一个很舒心的小工具autossh。

opkg update
opkg install autossh

为了方便登录远端服务器,先生成一下秘钥

ssh-keygen -b 1024 -t rsa

一路回车通过。会生成两个文件。

ls ~/.ssh
id_rsa id_rsa.pub

上传id_rsa.pub的内容到服务器,追加到这个文件最后。

~/.ssh/authorized_keys

修改autossh配置文件

vi /etc/config/autossh
config autossh
option ssh ‘-i /root/.ssh/id_rsa -D 0.0.0.0:7070 user@host’ #不用解释吧
option gatetime ’0′
option monitorport ’20000′
option poll ’600′

然后执行

/etc/init.d/autossh enable
/etc/init.d/autossh start

好了,现在,只要路由启动socks代理就启用了。

socks代理有了,我们再来个http代理。

opkg update
opkg install polipo

编辑配置文件

vi /etc/polipo/config

在尾端增加以下几行

proxyAddress = “0.0.0.0″
proxyPort = 8123
proxyName = “localhost”
cacheIsShared = false
socksParentProxy = “localhost:7070″
socksProxyType = socks5
diskCacheRoot = “”
localDocumentRoot = “”
disableLocalInterface = true
disableConfiguration = true
dnsUseGethostbyname = yes
disableVia=false
censoredHeaders = from,accept-language,x-pad,link
censorReferer = maybe
maxConnectionAge = 5m
maxConnectionRequests = 120
serverMaxSlots = 8
serverSlots = 2
tunnelAllowedPorts = 1-65535
maxAge = 0
maxExpiresAge = 0

Polipo的开机启动有些问题,原始的开机启动加载的配置文件很奇葩。所以我们用以下方式修改。 编辑开机启动文件

vi /etc/init.d/mypolipo

输入

#!/bin/sh /etc/rc.common
# Copyright (C) 2007 OpenWrt.org
START=99
start() {
service_start /usr/sbin/polipo -c ‘/etc/polipo/config’
}
stop() {
service_stop /usr/sbin/polipo -c ‘/etc/polipo/config’
}

然后设置执行权限,允许开启自启动,并运行

chmod +x /etc/init.d/mypolipo
/etc/init.d/mypolipo enable
/etc/init.d/mypolipo start

至此,端口为8123的HTTP代理就架设成功。与socks同在,各取所需吧。

OpenWrt和Nginx其实是绝配的,他们很合拍。下面的操作,可以让你的OpenWrt基本支持Nginx+PHP。

opkg update
opkg install nginx
opkg install php5
opkg install php5-cgi
opkg install php5-fastcgi
opkg install spawn-fcgi

编辑Nginx配置文件

vi /etc/nginx/nginx.conf
    server {        listen       88; #设置端口        server_name  localhost;        location / {            root   /home;        #设置主目录            index  index.html index.htm;        }        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        }        location ~ \.php$ {            root           /home; #cgi目录            fastcgi_pass   127.0.0.1:9000;            fastcgi_index  index.php;            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; #别管什么了,这行就这样            include        fastcgi_params;        }    }

然后呢,把这句加到开机启动。

spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -f php-cgi

然后,没了。

接下来,透明代理,WEB认证,恩,以后再发…

使用OpenWrt Image Builder对OpenWrt进行打包时可以将配置文件写入刷机包,作为默认值,请参考OpenWrt Image Builder的使用方法。

WR742NV5.1

WR842nV4/mw305rV3/mw300rV9/fw3005V9/fw306rV3

Mi mini

au cube

root
plumeria0077

插件

opkg update

opkg install luci-i18n-base-zh-cn

opkg install luci-app-minidlna opkg install luci-i18n-minidlna-zh-cn opkg install kmod-usb-storage opkg install kmod-usb-printer opkg install kmod-usb-core opkg install kmod-usb2 #安装usb2.0 opkg install kmod-usb-ohci #安装usb ohci控制器驱动 opkg install kmod-usb-storage #安装usb存储设备驱动 opkg install kmod-fs-vfat #挂载FAT opkg install ntfs-3g #挂载NTFS opkg install mount-utils #挂载卸载工具 opkg install block-mount

opkg install luci-app-samba #SAMBA网络共享服务 /etc/init.d/samba enable #启用并开始SAMBA共享 /etc/init.d/samba restart


Comments