通过本地网络共享Mac的ShadowSocks

我刚买了一部新的iPhone 6,升级到iOS 8.4.1,不容错过。所以我在网上搜索了ShadowSocks的分享。实际上Windows版本内置了这样的功能。但对于Mac版本,我们需要一些其他的处理。

首先,我想谈谈ShadowSocks的机制。有几种方法可以绕过GFW的审查,比如VPN和http / socks代理。普通的http / socks代理不需要对您的设备进行特殊处理。那么为什么我们需要GoAgent和ShadowSocks?因为GFW很容易检测到普通代理的流量。如果我们有一个私人海外服务器并将其用作简单的http代理,GFW可能会在检测到流量后阻止该IP。

GoAgent和ShadowSocks都伪装成流量,假装是正常的http。它们实际上是“加密代理”。但是,我们的操作系统无法识别此类加密代理。它只有内置的标准代理协议。所以我们需要在我们的操作系统上运行另一个程序来解密代理。

浏览器(通过内置的socks协议) – > ShadowSocks客户端(通过Internet解释为ShadowSocks代理) – > ShadowSocks服务器 – >像Google这样的目标网站

在Mac上将GoAgent客户端分享到iOS设备更容易。但对于ShadowSocks,我们还需要一次治疗。对于未破解的设备,只有内置的http代理,没有socks代理。我们必须从Mac ShadowSocks客户端转发socks代理作为http代理。

iOS设备(通过本地网络http代理) – > Mac上的privoxy(将http代理转换为socks代理) – > ShadowSocks客户端(通过Internet解释为ShadowSocks代理) – > ShadowSocks服务器 – > Google等目标网站

我找到了本文中的步骤:http:
//1992s.com/blog/share-shadowsocks-over-lan-on-mac-os-x.html

  1. 安装privoxy:http:  //www.privoxy.org/#DOWNLOAD
  2. 修改/ usr / local / etc / privoxy / config
    1. 搜索包含“forward-socks5t /”的行,删除注释符号“#”,将端口更改为1080(或ShadowSocks客户端使用的其他端口)
      forward-socks5t / 127.0.0.1:1080。
    2. 搜索包含“listen-address 127.0.0.1:8118”的行,删除注释符号“#”,将监听地址IP从127.0.0.1更改为0.0.0.0(此更改启用外部连接)。保留默认端口或选择其他端口。
      listen-address 0.0.0.0:8118
  3. 在终端中运行命令(可能需要sudo):
    / usr / local / sbin / privoxy --no-daemon / usr / local / etc / privoxy / config
  4. 在iOS设备上使用全局代理模式:将Wi-Fi手动http代理设置为$ IP_OF_MAC:$ PORT。端口是8118的监听端口,而不是原始的ShadowSocks端口1080。

对于自动代理模式,需要pac文件。我在mac上设置pac并使用Apache作为Web服务器。

  1. 运行该命令以启动Apache Web服务器
    sudo apachectl start
  2. 启动浏览器浏览http://127.0.0.1进行验证。如果Web服务器正常工作,您将看到“It Works!”消息。
  3. 服务器的内容位于/ Library / WebServer / Documents /,在那里复制pac文件。通常,ShadowSocks的位置是$ HOME / .ShadowsocksX / gfwlist.js
  4. 最后更改包含“var proxy”的行。将“SOCKS5”更改为“PROXY”,将“127.0.0.1”更改为Mac的IP地址。
     var proxy =“PROXY 127.0.0.1:1080; DIRECT;”;
  5. 将Wi-Fi“自动”http代理设置为http:// $ MAC_IP / $ PAC_NAME并享受!

我认为你外出时也应该有用。只允许从Internet到privoxy和pac服务器的连接。