标签归档:OpenWrt

TP-Link WR720N刷入OpenWrt之五:Nginx+PHP

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

然后,没了。

TP-Link WR720N刷入OpenWrt之四:HTTP代理

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同在,各取所需吧。

TP-Link WR720N刷入OpenWrt之三:SSH安全隧道

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代理就启用了。

TP-Link WR720N刷入OpenWrt之二:USB支持

上次我们已经刷入了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/snapshots/trunk/ar71xx/packages/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盘启动到此完成。

TP-Link WR720N刷入OpenWrt之一:刷入

这些天因为某些原因,一直在折腾我的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口直接接入上级网络即可上网。