小米mini 科学上网

介绍

入手个小米mini,正好也有一个 HongKong vps,采用 mini+PandoraBox+ss 设置路由器智能上外网,实现国内外网络连接分流,即保证速度,也保证 vps 流量消耗。

刷入系统

  1. http://www1.miwifi.com/miwifi_download.html 下载对应的最新的 mini 开发版本的ROM,通过 web 界面刷入开发版本的 ROM
  2. http://www1.miwifi.com/miwifi_open.html 开启ssh,打开22端口,获得 root 密码
  3. 通过 ssh 工具(windows putty)进入 mini 系统
  4. PandoraBox R2 14.09 / LuCI Trunk (0.12+svn-r1024) 下载到 mini 系统 /tmp 下,下载该版本是为了避免诸多软件源问题
  5. 进入 mini 系统,开始刷入 PandoraBox 命令
    1
    mtd -r write /tmp/PandoraBox-ralink-mt7620-xiaomi-mini-squashfs-sysupgrade-r1024-20150608.bin firmwarei
    6. 可以登入系统 PandoraBox 系统了,默认用户 root,密码 admin

配置系统和服务

路由器系统基本环境

  1. 修改系统密码,也是 web 登陆密码,passwd
  2. 默认ip是192.168.1.1,为避免ip与家庭上级路由器冲突,拔掉路由器的网线,并登陆修改 LAN ip
  3. 插网线保证路由器能够上网,修改软件源为:(可在web界面设置)
    1
    2
    3
    4
    5
    dest root /
    dest ram /tmp
    lists_dir ext /var/opkg-lists
    option overlay_root /overlay
    src/gz 14.09_base http://downloads.pandorabox.org.cn/pandorabox/ralink/mt7621/packages/base

vps 上配置 shadowsocks-libev 服务端

  1. 安装编译环境
    1
    yum install -y gcc automake autoconf libtool make build-essential autoconf libtool curl curl-devel unzip zlib-devel openssl-devel perl perl-devel cpio expat-devel gettext-devel
    2. 获取源码
    1
    wget https://github.com/shadowsocks/shadowsocks-libev/archive/master.zip
    3. 编译安装
    1
    2
    3
    4
    5
    unzip master.zip
    cd shadowsocks-libev-master/
    ./autogen.sh
    ./configure –prefix=/usr && make./configure –prefix=/usr && make./configure –prefix=/usr && make
    make install
    4. 配置
    1
    2
    3
    4
    5
    6
    7
    mkdir -p /etc/shadowsocks-libev
    cp ./rpm/SOURCES/etc/init.d/shadowsocks-libev /etc/init.d/shadowsocks-libev
    cp ./debian/config.json /etc/shadowsocks-libev/config.json
    chmod +x /etc/init.d/shadowsocks-libev
    vim /etc/shadowsocks-libev/config.json #ss 配置移步https://github.com/shadowsocks/shadowsocks/wiki/Configuration-via-Config-File
    service shadowsocks-libev start
    service shadowsocks-libev enable

PandoraBox 上配置 shadowsocks-libev 客户端

  1. 安装
    shadowsocks-libev,该系统软件源中已有此软件,安装即可,另外安装 wget、curl
  2. 配置 dnsmasq 转发国内域名
    1
    2
    3
    4
    5
    6
    7
    mkdir /etc/dnsmasq.d
    echo “conf-dir=/etc/dnsmasq.d” >> /etc/dnsmasq.conf
    cd /etc/dnsmasq.d
    # 感谢该作者提供 dnsmasq-china-list,若使用 wget 不能下载,可以暂时自行下载在上传
    wget -4 –no-check-certificate -O /etc/dnsmasq.d/accelerated-domains.china.conf https://github.com/felixonmars/dnsmasq-china-list/raw/master/accelerated-domains.china.conf
    wget -4 –no-check-certificate -O /etc/dnsmasq.d/bogus-nxdomain.china.conf https://github.com/felixonmars/dnsmasq-china-list/raw/master/accelerated-domains.china.conf
    /etc/dnsmasq.d# echo “server=/#/127.0.0.1#3210” > gfwlist.conf #其他的域名通过ss
    3. 修改启动脚本
    1
    vi /etc/init.d/shadowsocks
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    #!/bin/sh /etc/rc.common
    # Copyright (C) 2006-2011 OpenWrt.org

    START=95

    SERVICE_USE_PID=1
    SERVICE_WRITE_PID=1
    SERVICE_DAEMONIZE=1

    start() {
    sed -i ‘s/^#conf-dir=\/etc\/dnsmasq.d/conf-dir=\/etc\/dnsmasq.d/‘ /etc/dnsmasq.conf
    /etc/init.d/dnsmasq restart

    service_start /usr/bin/ss-redir -b 0.0.0.0 -c /etc/shadowsocks.json -f /var/run/shadowsocks.pid
    service_start /usr/bin/ss-tunnel -b 0.0.0.0 -c /etc/shadowsocks.json -l 3210 -L 8.8.8.8:53 -u
    /usr/bin/shadowsocks-firewall
    }

    stop() {
    sed -i ‘s/^conf-dir=\/etc\/dnsmasq.d/#conf-dir=\/etc\/dnsmasq.d/‘ /etc/dnsmasq.conf
    /etc/init.d/dnsmasq restart

    service_stop /usr/bin/ss-redir
    service_stop /usr/bin/ss-tunnel
    /etc/init.d/firewall restart
    }
    4. 配置iptables防火墙转发IP和端口
    1
    2
    3
    4
    cd /usr/bin
    touch shadowsocks-firewall
    chmod +x shadowsocks-firewall
    vi shadowsocks-firewall

    注意下面的 1.0.9.8 修改为vps 的 ip
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    #!/bin/sh

    # Author: https://github.com/softwaredownload/openwrt-fanqiang
    # Date: 2015-12-23

    #create a new chain named SHADOWSOCKS
    iptables -t nat -N SHADOWSOCKS
    iptables -t nat -N SHADOWSOCKS_WHITELIST

    # Ignore your shadowsocks server’s addresses
    # It’s very IMPORTANT, just be careful.

    iptables -t nat -A SHADOWSOCKS -d 1.0.9.8 -j RETURN

    #for hulu.com
    iptables -t nat -A SHADOWSOCKS -p tcp –dport 1935 -j REDIRECT –to-ports 7654
    iptables -t nat -A SHADOWSOCKS -p udp –dport 1935 -j REDIRECT –to-ports 7654

    # Ignore LANs IP address
    iptables -t nat -A SHADOWSOCKS -d 0.0.0.0/8 -j RETURN
    iptables -t nat -A SHADOWSOCKS -d 10.0.0.0/8 -j RETURN
    iptables -t nat -A SHADOWSOCKS -d 127.0.0.0/8 -j RETURN
    iptables -t nat -A SHADOWSOCKS -d 169.254.0.0/16 -j RETURN
    iptables -t nat -A SHADOWSOCKS -d 172.16.0.0/12 -j RETURN
    iptables -t nat -A SHADOWSOCKS -d 192.168.0.0/16 -j RETURN
    iptables -t nat -A SHADOWSOCKS -d 224.0.0.0/4 -j RETURN
    iptables -t nat -A SHADOWSOCKS -d 240.0.0.0/4 -j RETURN

    # Check whitelist
    iptables -t nat -A SHADOWSOCKS -j SHADOWSOCKS_WHITELIST
    iptables -t nat -A SHADOWSOCKS -m mark –mark 1 -j RETURN

    # Anything else should be redirected to shadowsocks’s local port
    iptables -t nat -A SHADOWSOCKS -p tcp -j REDIRECT –to-ports 7654
    # Apply the rules
    iptables -t nat -A PREROUTING -p tcp -j SHADOWSOCKS

    # Ignore China IP address
    for white_ip in cat /etc/chinadns_chnroute.txt;
    do
    iptables -t nat -A SHADOWSOCKS_WHITELIST -d ${white_ip} -j MARK –set-mark 1
    done

    # Ignore Asia IP address
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 1.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 14.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 27.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 36.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 39.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 42.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 49.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 58.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 59.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 60.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 61.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 101.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 103.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 106.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 110.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 111.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 112.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 113.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 114.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 115.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 116.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 117.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 118.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 119.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 120.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 121.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 122.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 123.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 124.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 125.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 126.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 169.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 175.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 180.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 182.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 183.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 202.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 203.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 210.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 211.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 218.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 219.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 220.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 221.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 222.0.0.0/8 -j MARK –set-mark 1
    #iptables -t nat -A SHADOWSOCKS_WHITELIST -d 223.0.0.0/8 -j MARK –set-mark 1
  • 启动服务
    1
    2
    /etc/init.d/shadowsocks start
    /etc/init.d/shadowsocks enable

最后

连接路由器的所有终端设备都可以智能的科学上网,国内外分流。