Openwrt安装Shadowsocks gfwlist

openwrt shadowsocks

> 本文操作在[https://hurray0.com/menu/26/]()的基础之上(比如ChinaDNS等需要预装) ### 安装`shadowsocks` #### 方案一 `shadowsocks`+`ChinaDNS`(不推荐) > 网上最常用的版本,优点是容易配置,而且有图形界面。缺点是代理不完善(只对国内网站跳过代理,其他网站全部代理(非大众的域名估计全部都要代理了);而且udp代理还有点问题,youtube可以进但视频播放不了) CLI下: ```bash opkg install ip shadowsocks-libev luci-app-shadowsocks ChinaDNS luci-app-chinadns iptables-mod-tproxy ``` 之后就是在web页面里面,服务里: * 启用`ChinaDNS` * 配置`影梭-服务器管理`的服务器地址 * `影梭-访问控制-外网区域-被忽略IP列表`选ChinaDNS路由表 * `影梭-基本设置-透明代理`选择主服务器和UDP服务器,有需要的可以开启`socks5代理`和`端口转发` * 保存之后如果`影梭-基本设置-运行状态-透明代理`运行了,就没有问题了。可以试试上谷歌。 #### 方案二:`shadowsocks`+`gfwlist`+`dnsmasq `(推荐) > 缺点:没有可视化界面,配置略麻烦,不过我整理过后还好;优点:代理采用gfwlist可以更完美代理。 1. 首先将方案一的操作全部做一遍。(由于用到ChinaDNS的防DNS污染功能,所以也需要装) 2. 关闭`影梭`的透明代理 3. ssh进入路由器CLI(命令行) 编辑ss服务器地址:`vi /etc/shadowsocks.json` 问号处需要自己填写。 ```json { "server": "???", "server_port": ???, "local_port": 1080, "password": "??", "method": "rc4-md5" } ``` 执行命令: ```bash # 配置dnsmasq opkg remove dnsmasq && opkg install dnsmasq-full mkdir /etc/dnsmasq.d/ echo "conf-dir=/etc/dnsmasq.d" >> /etc/dnsmasq.conf cd /etc/dnsmasq.d/ ## adblock 防广告 wget https://gist.githubusercontent.com/Hurray0/59f9232e045717791c7859c2dcb4fd8f/raw/8bb57c25cf76c00ee27b1b06b27c2863621518bb/adblock.conf ## gfwlist wget https://gist.githubusercontent.com/Hurray0/36d61523582f998888b6311b891b1a8f/raw/1343b9482723f342ec9e71a910612cf94a2f3619/dnsmasq_list.conf # shadowsocks服务程序(命名为ss区分shadowsocks原程序) cat > /etc/init.d/ss << EOF #!/bin/sh START=95 SERVICE_USE_PID=1 SERVICE_WRITE_PID=1 SERVICE_DAEMONIZE=1 SERVICE_PID_FILE=/var/run/shadowsocks.pid CONFIG=/etc/shadowsocks.json DNS=8.8.8.8:53 TUNNEL_PORT=5353 start() { # Client Mode #service_start /usr/bin/ss-local -c $CONFIG -b 0.0.0.0 -f $SERVICE_PID_FILE # Proxy Mode service_start /usr/bin/ss-redir -c $CONFIG -b 0.0.0.0 -f $SERVICE_PID_FILE # Tunnel service_start /usr/bin/ss-tunnel -c $CONFIG -b 0.0.0.0 -u -l $TUNNEL_PORT -L $DNS } stop() { # Client Mode #service_stop /usr/bin/ss-local # Proxy Mode service_stop /usr/bin/ss-redir # Tunnel service_stop /usr/bin/ss-tunnel } EOF # ss开机自启动 chmod a+x /etc/init.d/ss /etc/init.d/ss enable /etc/init.d/ss start ## ipsec cat >> /etc/firewall.user << EOF #创建名为gfwlist,格式为iphash的集合 ipset -N gfwlist iphash #匹配gfwlist中ip的nat流量均被转发到shadowsocks端口 iptables -t nat -A PREROUTING -p tcp -m set --match-set gfwlist dst -j REDIRECT --to-port 1080 #匹配gfwlist中ip的本机流量均被转发到shadowsocks端口 iptables -t nat -A OUTPUT -p tcp -m set --match-set gfwlist dst -j REDIRECT --to-port 1080 EOF /etc/init.d/dnsmasq restart # 重启路由器 reboot ``` 路由器重启之后就可以用了。