OpenWrt 使用 ShadowSocks 智能科学上网
本教程前提是需要有一个ShadowSocks账号或安装ShadowSocks服务的VPS(墙外的)。
一、安装 OpenWrt 并配置上网
1. telnet 192.168.1.1 至 Openwrt 并修改 root 密码
1 | telnet 192.168.1.1 |
2. 配置上网参数
1 | uci set network.wan.proto=pppoe |
3. 安装 luci
界面,并配置开机启动
1 | opkg update |
4. 修改 luci
界面端口号
1 | vim /etc/config/uhttpd |
5. 修改 ssh
默认的 22 端口号
1 | vim /etc/config/dropbear |
6. 自定义 DNS
创建
/etc/config/sec_resolv.conf
1
2
3
4vim /etc/config/sec_resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 208.67.222.222编辑
/etc/config/dhcp
找到option resolvfile
选项,替换/tmp/resolv.conf.auto
为/etc/config/sec_resolv.conf
二、软件包安装
执行命令:
1 | opkg update |
shadowsocks-libev
下载:
必须包安装:
polarssl 版本的 shadowsocks(polarssl 体积更小):
1 | opkg install iptables-mod-nat-extra ipset libpolarssl |
普通版本(openssl)的 shadowsocks,那么(openssl兼容性更好):
1 | opkg install iptables-mod-nat-extra ipset libopenssl |
卸载 dnsmasq
并安装 dnsmasq-full
以及相应的扩展包(dnsmasq 没有 ipset 功能)
1 | opkg remove dnsmasq && opkg install dnsmasq-full |
三、配置
a. 配置 /etc/shadowsocks.json
1 | { |
b. 修改 /etc/init.d/shadowsocks
,其实就是把 Client Mode 注释掉再把Proxy Mode 的注释去掉
1 | #!/bin/sh /etc/rc.common |
c. 启动 Shadowsocks
,并设置开机运行:
1 | init.d/shadowsocks enable |
四、配置 dnsmasq
和 ipset
a. 将 iptables
规则加入防火墙中(添加至 /etc/rc.local 可开机启动)
1 | ipset -N gfwlist iphash |
b. 修改 /etc/dnsmasq.conf
,在最后加入 conf-dir=/etc/dnsmasq.d
,新建并进入目录 /etc/dnsmasq.d
,并将 my_dnsmasq.conf
放入该目录。
my_dnsmasq.conf
具体格式如下:
1 | #使用不受污染干扰的DNS解析该域名 可以将此IP改为自己使用的DNS服务器 |
五、ss-tunnel 转发 UDP 的 DNS 的请求
1 | #!/bin/sh /etc/rc.common |
注:至此路由器已经 my_dnsmasq.conf
里面的域名已经会自动使用ss科学上网
六、恢复出厂设置
1 | firstboot |