MacOS下Shadowsocks客户端配置与Kcptun加速

记录一下Mac OS下搭建Sadowsocks客户端和Kcptun的过程以及注意事项,免得查了忘,忘了查。

本文参考润青的搭建Shadowsocks并使用 | RexKing6’s Note,其内含kcptun的具体原理和服务端配置。

安装配置Shadowsocks

我们一般使用:ShadowsocksX-NG

最新版的SSX-NG是有自带一个Kuptun的。

先丢一个GFW List URL:https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt

安装略,一个绿色的小飞机。

image-20181018155308190

接下来是配置shadowsocks了。

这里先讲一下terminal命令行 ss-local配置方法

方法一 ss-local配置方法

注:这里的ss-local设置完成后只提供了一个本地端口Proxy SwitchyOmega等插件连接,并不是系统代理

  1. 进入终端,打开SSR的缓存文件夹

    1
    2
    cd⁨ /USER/jiang/Application Support⁩/ShadowsocksX-NG
    open .
  2. 找到ss-local文件,并利用ln命令在/usr/local/bin下创建一个链接(替身),这样我们就可以直接在teminal里用ss-local启动它啦

    1
    sudo ln -s /USER/jiang/"Application Support⁩"/ShadowsocksX-NG/ss-local-3.2.0/ss-local /usr/local/bin/
  3. 在ShadowsocksX-NG⁩里创建一个ss-local-config.json,把一下信息根据实际情况修改并复制进去。这里的本地端口是用来配置Proxy SwitchyOmega等的。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    {
    "obfs" : "plain",
    "server" : "45.32.137.118",//服务器地址
    "server_port" : 8989,//端口
    "password" : "********",//密码
    "method" : "aes-256-ctr",//加密方式
    "timeout" : 60,
    "obfs_param" : "",
    "local_port" : 10801,//本地端口
    "protocol" : "origin",
    "local_address" : "127.0.0.1"//本地服务地址
    }
  4. 在terminal应用配置

    1
    ss-local -c /USER/jiang/Application Support⁩/ShadowsocksX-R⁩/ss-local-config.json
  5. 设置开机自启动(这里还是用GUI配置比较方便XD)【这里有误】

    将配置文件com.ShadowsocksX-NG.local.plist放在在 ~/Library/LaunchAgents里

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <key>EnvironmentVariables</key>
    <dict>
    <key>DYLD_LIBRARY_PATH</key>
    <string>/Users/jiang/Library/Application Support/ShadowsocksX-NG/</string>
    </dict>
    <key>KeepAlive</key>
    <true/>
    <key>Label</key>
    <string>com.ShadowsocksX-NG.local</string>
    <key>ProgramArguments</key>
    <array>
    <string>/Users/jiang/Library/Application Support/ShadowsocksX-NG/ss-local</string>
    <string>-c</string>
    <string>ss-local-config.json</string>
    </array>
    <key>StandardErrorPath</key>
    <string>/Users/jiang/Library/Logs/ss-local.log</string>
    <key>StandardOutPath</key>
    <string>/Users/jiang/Library/Logs/ss-local.log</string>
    <key>WorkingDirectory</key>
    <string>/Users/jiang/Library/Application Support/ShadowsocksX-R/</string>
    </dict>
    </plist>

完毕

方法二.直接用SSXR设置

注:方法二配置的是系统代理

点开顶上的飞机。

image-20181018160255661

点红色的进入服务器设置,将服务器的地址,端口,加密方式填写好

image-20181018160937026

再回到顶上 “打开Shadowsocks”。

注: 偏好设置中可以设置本地端口和用于PAC模式的GFW List URL。

偏好设置中设置好自己本地Socks5监听端口 这里设置为10801,最后配置Proxy SwitchOmega的时候要用到。

image-20181018163826028

使用Kcptun加速

kcptun的具体原理和服务端配置可以参考润青大佬的博客。

kcptun的下载地址xtaci/kcptun: A Stable & Secure Tunnel Based On KCP with N:M Multiplexing

最新版的SSX-NG是有自带一个Kuptun客户端的。位置在~/Library/“Application Support”/ShadowsocksX-NG/kcptun-v20170718

SSX-NG的github中有说明如何添加kcptun插件到SSX-NG中How to add custom plugins

1.把kcptun.json配置文件改好然后丢到~/Library/“Application Support”/ShadowsocksX-NG/kcptun-v20170718

这里的remoteaddr指的是服务端提供的端口

localaddr是本地端口,之后修改SSXNG配置的时候,SS连接的就是这个端口

注意这里的key密码是kcptun服务端设置的密码,不是服务器密码,不要混淆了

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"localaddr": "127.0.0.1:10800",
"remoteaddr": "45.32.137.118:29900",
"key": "*********",
"crypt": "aes",
"mode": "fast",
"mtu": 1350,
"sndwnd": 512,
"rcvwnd": 512,
"datashard": 10,
"parityshard": 3,
"dscp": 0
}

2.terminal里输入,打开kcptun,并应用配置kcptun.json

1
2
3
cd ~/Library/"Application Support"
cd ShadowsocksX-NG/kcptun_v20170718/
./kcptun_client -c kcptun.json

需使用Kcptun加速的时候,就需要执行一下这个步骤的命令

这样很麻烦 所以我们编写一个bash脚本,建立一个kcptun.sh文件,写入。

利用nohup和&命令,实现后台运行。

1
2
cd /Users/jiang/Library/"Application Support"/ShadowsocksX-NG/kcptun_v20170718
nohup ./kcptun_client -c kcptun.json &

在terminal中给kcptun.sh权限

1
chmod 777 kcptun.sh

这样我们每次使用kcptun就只需

1
sh /kcptun.sh

运行一下kcptun.sh就好了。

3.修改SS的服务器配置

新建一个服务器设置,这里把地址改成 127.0.0.1 端口改成刚才第一步设置的localaddr的端口10800

注意:密码是VPS服务器密码,而不是kcptun设置的密码

image-20181018163224853

配置Proxy SwitchOmega

使用chrome或者其他的浏览器,下载Proxy SwitchOmega插件,在情景模式里新建情景模式

image-20181018164143440

按照上述配置,代理端口就填写之前在Shadowsocks中偏好设置里设置的端口,这里是10801,之后更改auto switch如下所示。规则列表就填写文章开头给出的Gfwlist。

image-20181018164417151

之后在浏览器右上角切换找到SwitchOmega,切换成auto switch模式。

image-20181018164545406

配置完毕,享受科学上网吧。

小结

第一次写教程类的博客,花了好久时间。这次写SS搭建的收获还是不小的。弄清楚几个端口和密码的配置也就不难了。顺便也把自己的Mac的SS给重新配置了一下,用了Kcptun享受到了高速科学上网的快乐。

Kcptun的加速效果特别的明显,只不过每次要使用的时候还要开启kcptun显得有些麻烦不过可以把kcptun用ln命令放到/usr/local/bin里快捷启动,或者设置成开机启动服务,这样就方便多了。

最后感谢一下润青大佬提供的VPS服务器 XD