8

Windows服务器上安装Shadowsocks服务端

 1 year ago
source link: https://sobaigu.com/ssserver-in-windows.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Windows服务器上安装Shadowsocks服务端

首先,不建议大家在服务器上使用Windows系统。不是说Windows server不好,作为服务器常年不关机来说,Windows确实是逊Linux一筹,服务器配置越烂开机时间越长体现得越明显。

本人手上有个Windows服务器,阿里云的,配置是最基础的,当初搞活动便宜3年的价格,偶尔要挂个淘宝客户端,所以用了Windows server 2008系统。远程桌面操作的时候体验挺差的,尤其是启动了千牛客户端程序后CPU狂飙,然后就被阿里云限制CPU恶性循环,所以在服务器上装个Shadowsocks服务端,另开个本地机器使用代理用千牛。

Windows系统下装Shadowsocks服务端没有Linux那么方便,可选的版本也就只有 原版Shadowsocks,python语言libQtShadowsocks版 ,他们都好久不更新了,这里介绍原版。
我们需要安装准备以下环境:

  1. python
    • 根据自己的系统下载对应位数版本,建议是python 2.7
    • 安装的时候注意勾选将其添加到环境变量,要不然一会儿还要手动将python加入系统环境变量中
  2. OpenSSL
    • 同样根据自己的系统下载对应版本,建议下载v1.0.2 light
    • 安装的时候选择将lib库文件安装到系统目录,这样就不用设置系统环境变量就能找到OpenSSL的动态库了
    • 最新版本释放的lib库文件加了后缀的,外部程序去用找不到,需要自己找到文件将文件名中的数字版本去掉
    • OpenSSL 需要 Visual C++ 2008 Redistributables 支持,如系统中未安装请到此下载并自行安装好相应的依赖。

以上两个依赖环境请自行安装好,没什么好说的,下载安装程序一步步安装就可以了。
需要注意的是,请下载版本的时候选择相同的位数版本,不能32位和64位程序混用。

配置系统环境变量

如果以上安装你没有勾选添加到系统环境变量,那么你需要按以下方法将其添加到系统环境变量,以便第三方程序能够自动找到相应的依赖程序。

  1. 我的电脑上右键》属性 ,左边导航格可见:高级系统设置,点进去
  2. 右下角可见个 环境变量 ,点进去,在 用户变量 或者 系统变量 中添加 path 都可以,建议在 系统变量 中添加
  3. 找到 path 这个变量,双击或者点 编辑 都可以,添加如:C:\Python27\;C:\Python27\Scripts;C:\OpenSSL-Win32\bin; ,和其他已有值用英文逗号区隔,请注意自己的实际路径

安装 Shadowsocks

以上环境安装准备完成后,就剩下安装Shadowsocks了,方法如下:

  1. 打开 cmd(Windows Server 2012 R2 系统可按 Windows 图标+X+A打开管理员权限的命令提示符)
  2. cd C:\Python27\Scripts 进入 Python 目录
  3. 输入 pip install shadowsocks 即可安装Shadowsocks服务端,看提示即可

修复bug

前面说了Windows下的服务端可选择的少,已有的版本也n年没人维护了,总会留下些bug无法使用。
刚才pip安装的Shadowsocks服务端启动入口程序在 cd C:\Python27\Scripts 目录下『怎么改其他目录我也不知道』,直接启动的话将提示类似这样的错误:

undefined symbol: EVP_CIPHER_CTX_cleanup

这是因为OpenSSL的函数变了,我们需要对Shadowsocks的源码进行更改,找到 python2.7/dist-packages/shadowsocks/crypto/openssl.py 这个文件,找到下面两个函数:

libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,)
libcrypto.EVP_CIPHER_CTX_cleanup

可以使用查找替换的方法将其改成 EVP_CIPHER_CTX_reset

libcrypto.EVP_CIPHER_CTX_reset.argtypes = (c_void_p,)
libcrypto.EVP_CIPHER_CTX_reset

如果你想使用新奇的加密方式,那你可能会遇到更多的错误,其实是需要安装对应的扩展支持插件。没什么屌事就老老实实用默认的加解密方法吧,你的数据并不需要多安全的保护。

需要用命令启动 Shadowsocks,格式如:

ssserver.exe -p 443 -k password -m aes-256-cfb

也可以建个配置文件,然后导入配置文件的形式启动,如配置文件为 C:\Python27\Scripts\config.json ,其内容如下:

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

然后通过以下命令启动:

ssserver.exe -c C:\Python27\Scripts\config.json

记得在防火墙将用到的端口开放入站访问。为了每次启动方便,我们可以建快捷方式或者弄个批处理放桌面上,或者放进系统启动项:

@ECHO OFF
CD C:\Python27\Scripts
rem ssserver.exe -c config.json
ssserver.exe -p 443 -k password -m aes-256-cfb
PAUSE

要停止Shadowsocks服务时关掉启动窗口即可。

https://github.com/shadowsocks/shadowsocks/issues/646


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK