1、iOS上使用shadowsocks的方式
1.1 shadowsocks-iOS
- AppStore下载 [](https://camo.githubusercontent.com/32145ebda8f8af17efbc9e2f411d0995416d97ea/68747470733a2f2f7261772e6769746875622e636f6d2f736861646f77736f636b732f736861646f77736f636b732d694f532f6d61737465722f61707073746f72652e706e67)
- 表面看来是个内置浏览器,此内置浏览器可以畅通无阻的上网。如果想让其它应用使用,
需要打开iOS设置 -> 无线局域网 -> 已连接的WiFi右侧的i
图标 -> HTTP代理 -> 选择自动
。填写http://127.0.0.1:8090/proxy.pac
- 每隔几分钟,
shadowsocks-iOS
就会被系统终止,所以pac文件也就失效了,所以每隔几分钟就要重新打开一次shadowsocks-iOS
,
略蛋疼,没办法,iOS为了安全和良好体验嘛。
1.2 自定义PAC文件
- PAC 文件用 JavaScript 编写,必须包含
FindProxyForURL(url, host)
函数。在访问某个网址时,
浏览器会调用FindProxyForURL
根据其返回值来决定该如何访问。 - 函数的说明参见PAC 文件及其调试
- 把PAC文件写好后放在公网可访问的地方,并将地址填写到
HTTP代理
中,就可以做到用不断开连接。
2、自定义PAC文件连接shadowsocks
2.1 连接电脑上配置好的shadowsocks-client
- 如果你手机和电脑在同一局域网,可以直接把配置好shadowsocks的电脑的ip地址和端口填写到PAC文件中。
缺点是换了网络环境后,ip地址会变,变了就要改PAC文件,略麻烦。
2.2 连接你的shadowsocks服务器
如果你有自己的shadowsocks服务器,那么你可以直接把服务器ip和端口写在PAC文件中,前提是服务器中要同时安装ssserver
和sslocal
,
并且把sslocal
的配置文件中的local_address
设为0.0.0.0
,否则外网无法连接sslocal
,
具体服务器配置文件如下,仅供参考:
{ |
PAC文件这样写:{
function FindProxyForURL(url, host) {
//将ip和端口替换为{你的服务器ip}:{上面的local_port}
return "SOCKS5 123.431.111.77:1080; SOCKS 123.431.111.77:1080";
}
}
这样就实现了全局代理,如果想进行过滤,你需要做的就是研究
PAC Functions并自行过滤国内地址。
2.3 配好了PAC文件却连不上服务器?
- 确保PAC文件可以访问
- 确保服务器已经打开了’local_port’这个端口
- 使用tennet验证’local_port’是否可访问
telnet 123.431.111.77 1080