说说Shadowsocks

楔子

Shadowsocks 一个伟大的项目 不多说了 我也用了一段时间了 已经成为主要使用工具了 最近又折腾了一下 记录一下自己的心得 希望能给需要的人提供帮助

服务端配置

服务端 部署在搬瓦工VPS上面 和这个网站在同一个VPS上啦 以前用的是Python版的 最近瞎折腾 换成了libev版的 感觉好像还慢了 当然内存占用是明显减少了 明年续费的时候可以换成64M的版本啦 我目前的使用量64M的版本就够啦 不论是Python版还是libev版根据文档来就好啦 没有什么值得说的

本地配置

本地配置 也就算客户端了 选择很多的 有图形界面的shadowsocks-gui 以前我用的是NodeJS版的客户端 直接用npm安装就可以了 感觉还是不错的 最近服务端换成了libev版的 本地的客户端也换了 是自己编译的Windows版 用MSYS2/MinGW-w64的组合 加上里面带的opnessl 过程还是比较平滑的 没有什么问题 编译参数如下

1
2
3
CFLAGS='-Ofast -fomit-frame-pointer -funroll-loops -g0 -pipe' ./configure --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --with-openssl-include="/mingw64/include" --with-openssl-lib="/mingw64/lib/"
make -j 8
make install prefix=/mingw64

Emacs整合

我喜欢使用命令行版的客户端 但这玩意会弹出一个黑框框 虽然可以写个程序解决 唉 懒了

Emacs被称为操作系统 干这种事是小菜一碟 下面的代码加到Emacs的配置文件里面

1
2
3
4
5
6
7
8
(defun ss ()
(interactive)
(unless (process-status "ShadowSocks")
(set-process-coding-system (start-process "ShadowSocks" "*ShadowSocks Server*" "ss-local" "-u" "-c" "C:/msys64/etc/shadowsocks/config.json") 'undecided-dos)
;; (set-process-coding-system (start-process "ShadowSocks" "*ShadowSocks Server*" "ss-local" "-c" "C:/msys64/etc/shadowsocks/config.json") 'undecided-dos)
))
(ss)

没被注释的行启动的是libev版的shadowsocks 注释掉的启动的是NodeJS版的 其实两者差别不大

使用set-process-coding-system更改了编码 因为我这里默认是UTF-8编码的 如果不改编码中文显示乱码 不过 就算是这样 结尾还是会有^M 目前我还没有解决方案