1、iOS上使用shadowsocks的方式

1.1 shadowsocks-iOS

  • AppStore下载 [
    ](https://camo.githubusercontent.com/32145ebda8f8af17efbc9e2f411d0995416d97ea/68747470733a2f2f7261772e6769746875622e636f6d2f736861646f77736f636b732f736861646f77736f636b732d694f532f6d61737465722f61707073746f72652e706e67)
    ](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文件中,前提是服务器中要同时安装ssserversslocal
并且把sslocal的配置文件中的local_address设为0.0.0.0,否则外网无法连接sslocal

具体服务器配置文件如下,仅供参考:

{
"server":"0.0.0.0",
"server_port":8388,
"local_address": "0.0.0.0",
"local_port":1080,
"password":"mypassword",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false
}

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文件却连不上服务器?

  1. 确保PAC文件可以访问
  2. 确保服务器已经打开了’local_port’这个端口
  3. 使用tennet验证’local_port’是否可访问
    telnet 123.431.111.77 1080

3、参考内容