-
Notifications
You must be signed in to change notification settings - Fork 0
/
how-to-install-shadowsocks-on-openwrt.html
171 lines (140 loc) · 6.93 KB
/
how-to-install-shadowsocks-on-openwrt.html
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="Keywords" content="blog"/>
<meta name="Description" content="blog"/>
<title>Simple</title>
<link rel="shortcut icon" href="/static/favicon.png"/>
<link rel="stylesheet" type="text/css" href="/main.css" />
</head>
<body>
<div class="main">
<div class="header">
<ul id="pages">
<li><a href="/">home</a></li>
<li><a href="/#/tags">tags</a></li>
<li><a href="/#/archive">archive</a></li>
</ul>
</div>
<div class="wrap-header">
<h1>
<a href="/" id="title"></a>
</h1>
</div>
<div id="md" style="display: none;">
<!-- markdown -->
##一.小米路由mini
刷Pandorabox,Web设置界面开启shadowsocks透明代理,启用忽略列表。并确保启动了ss-tunnel,转发dns解析到8.8.4.4
ssh登录后,配置dnsmasq,在conf-dir下,生成gfwlist.conf,将被污染的域名转到ss-tunnel代理的端口
这样就可以使用了,路径是:
被污染的域名到8.8.4.4解析,其他用国内的解析,然后走iptables,国内的ip走国内,其他的走ss
##二.小米路由
升级到2.0的开发版,自带了shadowsocks,但是缺少ss-rules(改iptables用的),且/etc/init.d下的shadowsocks启动脚本有问题,从小米路由mini下备份了一份(已经保存在gmail)。
使用替换后的脚本启动ss,透明代理端口9080
配置dnsmasq,在conf-dir下,生成gfwlist.conf,将被污染的域名转到ss-tunnel代理的端口,并且将gfwlist的域名全部转到一个ipset分组:gfwlist
注意小米路由的dnsmasq的conf-dir目录每次开机启动会被清空,并从/etc/dnsmasq.d目录复制一份过去,因此要将文件复制到这个目录里
在/etc/rc.local里增加两句
~~~~
ipset -N gfwlist iphash
iptables -t nat -A PREROUTING -p tcp -m set --match-set gfwlist dst -j REDIRECT --to-port 9080
~~~~
这样就可以使用了,路径是:
被gfwlist的域名到8.8.4.4解析,其他用国内的解析,然后走iptables,gfwlist的ip走ss,其他走国内
##三.两种模式的区别
小米路由mini的是白名单模式,白名单的网址放行走国内,其他都走ss。好处是,万一有新开的国外网站,也能走ss加速,坏处是费ss流量
小米路由是黑名单模式,黑名单的走ss,其他都走国内。好处是精确配置,不浪费ss流量,坏处是一有新增的就要改gfwlist文件
<!-- markdown end -->
</div>
<div class="entry" id="main">
<!-- content -->
<h2 id="mini">一.小米路由mini</h2>
<p>刷Pandorabox,Web设置界面开启shadowsocks透明代理,启用忽略列表。并确保启动了ss-tunnel,转发dns解析到8.8.4.4</p>
<p>ssh登录后,配置dnsmasq,在conf-dir下,生成gfwlist.conf,将被污染的域名转到ss-tunnel代理的端口</p>
<p>这样就可以使用了,路径是:</p>
<p>被污染的域名到8.8.4.4解析,其他用国内的解析,然后走iptables,国内的ip走国内,其他的走ss</p>
<h2 id="">二.小米路由</h2>
<p>升级到2.0的开发版,自带了shadowsocks,但是缺少ss-rules(改iptables用的),且/etc/init.d下的shadowsocks启动脚本有问题,从小米路由mini下备份了一份(已经保存在gmail)。</p>
<p>使用替换后的脚本启动ss,透明代理端口9080</p>
<p>配置dnsmasq,在conf-dir下,生成gfwlist.conf,将被污染的域名转到ss-tunnel代理的端口,并且将gfwlist的域名全部转到一个ipset分组:gfwlist</p>
<p>注意小米路由的dnsmasq的conf-dir目录每次开机启动会被清空,并从/etc/dnsmasq.d目录复制一份过去,因此要将文件复制到这个目录里</p>
<p>在/etc/rc.local里增加两句
</p><pre><code>ipset -N gfwlist iphash<p></p>
</code><p><code>iptables -t nat -A PREROUTING -p tcp -m set --match-set gfwlist dst -j REDIRECT --to-port 9080
</code></p></pre>这样就可以使用了,路径是:<p></p>
<p>被gfwlist的域名到8.8.4.4解析,其他用国内的解析,然后走iptables,gfwlist的ip走ss,其他走国内</p>
<h2 id="">三.两种模式的区别</h2>
<p>小米路由mini的是白名单模式,白名单的网址放行走国内,其他都走ss。好处是,万一有新开的国外网站,也能走ss加速,坏处是费ss流量</p>
<p>小米路由是黑名单模式,黑名单的走ss,其他都走国内。好处是精确配置,不浪费ss流量,坏处是一有新增的就要改gfwlist文件</p>
<!-- content end -->
</div>
<br>
<br>
<div id="disqus_thread"></div>
<div class="footer">
<p>© Copyright 2014 by isnowfy, Designed by isnowfy</p>
</div>
</div>
<script src="main.js"></script>
<script id="content" type="text/mustache">
<h1>{{title}}</h1>
<div class="tag">
{{date}}
{{#tags}}
<a href="/#/tag/{{name}}">#{{name}}</a>
{{/tags}}
</div>
</script>
<script id="pagesTemplate" type="text/mustache">
{{#pages}}
<li>
<a href="{{path}}">{{title}}</a>
</li>
{{/pages}}
</script>
<script>
$(document).ready(function() {
$.ajax({
url: "main.json",
type: "GET",
dataType: "json",
success: function(data) {
$("#title").html(data.name);
var pagesTemplate = Hogan.compile($("#pagesTemplate").html());
var pagesHtml = pagesTemplate.render({"pages": data.pages});
$("#pages").append(pagesHtml);
//path
var path = "how-to-install-shadowsocks-on-openwrt.html";
//path end
var now = 0;
for (var i = 0; i < data.posts.length; ++i)
if (path == data.posts[i].path)
now = i;
var post = data.posts[now];
var tmp = post.tags.split(" ");
var tags = [];
for (var i = 0; i < tmp.length; ++i)
if (tmp[i].length > 0)
tags.push({"name": tmp[i]});
var contentTemplate = Hogan.compile($("#content").html());
var contentHtml = contentTemplate.render({"title": post.title, "tags": tags, "date": post.date});
$("#main").prepend(contentHtml);
if (data.disqus_shortname.length > 0) {
var disqus_shortname = data.disqus_shortname;
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
}
}
});
});
</script>
<script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ["\\(", "\\)"]], processEscapes: true}});
</script>
</body>
</html>