ShadowsocksR服务端是Python编写的,所以需要Python环境。
我现在手上没有 海外的Windows服务器,所以只是在本地自己搭建测试了一下,测试系统是 Windows 7,至于 Windows Server 服务器系统是否安装了Python我也不清楚,大家自己检查吧。
另外,ShadowsocksR服务端因为加密方式,所以需要安装OpenSSL。
打开 Python官网-下载页面 ,找到 Python 2.7.xx - xxxx-xx-xx ,然后根据你的 Windows操作系统位数 下载对应的安装包:
Download Windows x86 MSI installer(32位下载这个)
Download Windows x86-64 MSI installer(64位下载这个)
下载后开始安装。
第一步,选择 Install for all users ,然后点击 Next > 按钮继续下一步。
第二步,选择Python安装目录,然后点击 Next > 按钮继续下一步。
注意:为了避免出错或不兼容,Python/OpenSSL/ShadowsocksR服务端都不要安装在 目录包含中文字符和特殊字符的文件夹中!
第三步,选择要安装的内容,注意最后一个是自动设置环境变量的,默认是不设置,请如图所示点击 Add python.exe to Path 选项前面的按钮,然后选择第一个 Will be installed on local hard drive 选项。
其他的选项均如图所示,然后点击 Next > 按钮继续下一步,下一步之后就是安装Python了,安装完毕后关闭就好了。
打开 OpenSSL官网-下载页面,翻到网页中间,然后根据你的 Windows操作系统位数 下载对应的安装包:
Win32 OpenSSL v1.x.xx Light(32位下载这个)
Win64 OpenSSL v1.x.xx Light(64位下载这个)
注意是那个 3MB 左右大小的文件,30MB 左右的是开发者用的。
下载后开始安装,点击 Next > 按钮继续下一步。
第二步,选择第一个选项 I accept the agreement (同意),然后点击 Next > 按钮继续下一步。
第三步,选择OpenSSL安装目录,然后点击 Next > 按钮继续下一步。
注意:为了避免出错或不兼容,Python/OpenSSL/ShadowsocksR服务端都不要安装在 目录包含中文字符和特殊字符的文件夹中!
第四步,选择第一个选项 The Windows system directory ,点击 Next > 按钮继续下一步,然后就会开始安装OpenSSL了。
第五步,安装完成后不要勾选下图中任何选项,直接点击 Finish 按钮 完成安装。
安装完成后还需要设置一下。
进入你安装的OpenSSL文件夹,比如我的是 D:\OpenSSL-Win32\bin
,然后找到 libcrypto-1_1.dll
和 libssl-1_1.dll
文件,我们需要修改一下文件名。
去掉文件名最后的 -1_1
,改为 libcrypto.dll 和 libssl.dll
。
然后继续下面设置环境变量。
Python和OpenSSL安装完后,我们就可以开始设置环境变量了。
首先点击左下角开始菜单 —— 运行 —— 输入 CMD 并回车。
然后在打开的CMD窗口中输入: Python -V
以为上面的安装步骤中,我们已经选择了自动添加环境变量,所以应该是直接如下显示:
C:\Users\Administrator>python -VPython 2.7.13
如果显示命令不存在,那么说明环境变量设置失败,需要手动设置。
点击左下角开始菜单 — 控制面板 — 系统 — 高级系统设置 — 高级 选项卡 — 环境变量 按钮 — 系统变量 Path
如下图所示,Path变量值前面应该会有: D:\Python27\;D:\Python27\Scripts;
如果没有就自己添加,当然,这个只是 Python的环境变量,OpenSSL也需要设置环境变量。
注意:安装目录请自行替换为你的安装目录!
完整的环境变量格式: D:\Python27\;D:\Python27\Scripts;D:\OpenSSL-Win32\bin\;XXXXXXXXX
XXXXXXXXX
指的是原来系统自带的环境变量值,只要把Python和OpenSSL的环境变量值加到 系统自带的环境变量值前面就好了。
注意:每个环境变量值都需要用 分号 ; 来分割开!
设置完后一路确定,然后重新打开 CMD窗口,输入 Python -V
测试Python的环境变量是否设置。
然后输入 openssl
命令并回车,然后会发现变成这样:
C:\Users\Administrator>opensslOpenSSL>
然后继续输入 help
命令并回车,就会出来一大堆的说明:
出现这个,就说明OpenSSL的环境变量设置完成。
如果设置环境变量正确,但是依然提示 openssl不是内部命令 ,那么尝试重启电脑/服务器,部分出现这种问题的人重启后得到了解决(前提是环境变量配置无误)。
C:\Users\Administrator>opensslOpenSSL> help Standard commandsasn1parse ca ciphers cmscrl crl2pkcs7 dgst dhparamdsa dsaparam ec ecparamenc engine errstr exitgendsa genpkey genrsa helplist nseq ocsp passwdpkcs12 pkcs7 pkcs8 pkeypkeyparam pkeyutl prime randrehash req rsa rsautls_client s_server s_time sess_idsmime speed spkac srpts verify version x509 # 后面省略...OpenSSL>
在OpenSSL安装完后,系统变量中会自动添加一个变量,如下图所示,如果你的没有,那么请自行添加。
变量名:OPENSSL_CONF
变量值:D:\OpenSSL-Win32\bin\openssl.cfg
设置环境变量,例如工具安装在C:\OpenSSL-Win64,则将C:\OpenSSL-Win64\bin;
复制到Path中
Windows系统安装运行ShadowsocksR服务端的难点主要就是 这两个环境变量问题,所以如果操作不好,可以联系我~
下载ShadowsocksR最新服务端文件:Github项目地址、Github下载地址
解压到任意目录,然后进入解压后得到的 shadowsocksr-manyuser
文件夹,复制一份 config.json
文件并改名为 user-config.json
。
注意:为了避免出错或不兼容,Python/OpenSSL/ShadowsocksR服务端都不要安装在 目录包含中文字符和特殊字符的文件夹中!
打开配置文件 user-config.json
,并修改为你要设置的 端口/密码/加密方式/协议/混淆 等参数。
配置文件各项参数说明:Github wiki
注意:ShadowsocksR服务端最新版本默认加密方式从 aes-256-cfb 改为 aes-128-ctr 了。
{ "server": "0.0.0.0", "server_ipv6": "::", "server_port": 8388, "local_address": "127.0.0.1", "local_port": 1080, "password": "m", "method": "aes-128-ctr", "protocol": "auth_aes128_md5", "protocol_param": "", "obfs": "tls1.2_ticket_auth_compatible", "obfs_param": "", "speed_limit_per_con": 0, "speed_limit_per_user": 0, "additional_ports" : {}, // only works under multi-user mode "timeout": 120, "udp_timeout": 60, "dns_ipv6": false, "connect_verbose_info": 0, "redirect": "", "fast_open": true}
启动ShadowsocksR服务端
打开CMD窗口,然后依次输入:
D:# 进入D盘cd shadowsocksr-manyuser\shadowsocks# 进入ShadowsocksR子目录python server.py -c D:\shadowsocksr-manyuser\user-config.json# 运行ShadowsocksR服务端
注意:请更换 ShadowsocksR服务端目录为自己安装的目录。
不出意外的话,就会如这样显示(可能会有所差别):
C:\Users\Administrator>python server.py -c D:\shadowsocksr-manyuser\user-config.json loaded collections.OrderedDict IPv6 supportINFO: loading config from D:\shadowsocksr-manyuser\shadowsocks\../shadowsocks\../user-config.json2017-02-09 18:34:29 INFO util.py:85 loading libcrypto from D:\OpenSSL-Win32\bin\libcrypto.dll2017-02-09 18:34:29 INFO shell.py:80 ShadowsocksR 3.0.2 2017-01-082017-02-09 18:34:29 INFO asyncdns.py:324 dns server: [('8.8.4.4', 53), ('8.8.8.8', 53)]2017-02-09 18:34:29 INFO server.py:106 server start with protocol[auth_aes128_md5] password [m] method [aes-128-ctr] obfs [tls1.2_ticket_auth_compatible] obfs_param []2017-02-09 18:34:29 INFO server.py:122 starting server at [::]:83882017-02-09 18:34:29 INFO server.py:142 starting server at 0.0.0.0:8388
停止ShadowsocksR服务端
如果你需要停止 ShadowsocksR服务端,只需要在CMD窗口按下 Ctrl+C
按键就可以终止ShadowsocksR服务端的运行了。
启动后,你就可以尝试连接一下ShadowsocksR服务端了。
我是在本机上面测试的,密码什么的都是配置文件默认的,所以直接是 127.0.0.1:8388
,然后ShadowsocksR设置全局模式,尝试访问国内网站,如果不报错,那么说明成功了。
如果你是在外部Windows服务器上面运行的,那么你需要关闭防火墙或者开放防火墙端口,我很久没用了,也忘记怎么搞了,估计谷歌很容易搜索到。
注意:如果是本机测试,建议把ShadowsocksR服务端的本地监听端口和ShadowsocksR客户端的本地监听端口分开(默认都是1080)。
参考资料:Github Wiki:https://github.com/breakwa11/shadowsocks-rss/wiki/Server-Setup-on-Windows
No such file or directory: 'usermysql.json'
修改mysql.json为usermysql.json
libcrypto(OpenSSL) not found
ssserver启动时提示libcrypto(OpenSSL) not found,这个问题一般发现在windows上;
问题分析:
windows 的位数,python安装的版本位数,及openssl for windows安装的版本及位数不对应造成的。
必须统一起来:
如:windows 64位,python也要安装64位的,openssl for windows的位数也要是64位;
但有一个问题,就是openssl for windows的版本可能会有造成一些问题,所以可以多试几个版本,目前来说 1.0.2这个版本可以使用。
通过测试如下:
windows64 + python64 2.7.13 + Win64OpenSSL-1_0_2k.exe 可以正常运行。
备注:
此openssl for windows版本是独立安装的exe文件的安装版本,和在python中import OpenSSL不太一样。
来自于23.227.193.227美国伊利诺斯芝加哥网友评分!
来自于42.119.148.32越南胡志明市网友评分!
来自于85.237.206.197英国英格兰伦敦网友评分!
来自于60.246.51.76澳门特别行政区网友评分!
来自于43.249.50.166印度网友评分!
来自于106.113.13.179河北省石家庄市 电信网友评分!
来自于101.94.224.43上海市上海市 电信网友评分!
来自于124.126.3.110北京市北京市 电信网友评分!
来自于106.87.116.73重庆市重庆市 电信网友评分!
来自于49.157.47.254菲律宾网友评分!
来自于183.200.16.191山西省太原市 移动网友评分!
来自于111.58.68.171广西壮族自治区贵港市 移动网友评分!
来自于94.66.59.128希腊网友评分!
来自于94.66.59.128希腊网友评分!
来自于103.151.173.102亚太地区网友评分!
来自于39.109.191.32新加坡网友评分!
来自于106.87.116.73重庆市重庆市 电信网友评分!
来自于106.87.116.73重庆市重庆市 电信网友评分!
来自于153.3.60.41江苏省南京市 联通网友评分!
来自于3.112.41.223日本东京网友评分!
来自于104.251.178.50美国德克萨斯达拉斯网友评分!
来自于104.251.178.50美国德克萨斯达拉斯网友评分!
来自于111.55.11.245中国 移动网友评分!
来自于103.205.179.169巴基斯坦网友评分!
来自于183.200.16.191山西省太原市 移动网友评分!
来自于183.200.16.191山西省太原市 移动网友评分!
来自于176.97.73.32英国网友评分!
来自于46.232.121.89俄罗斯莫斯科网友评分!
来自于114.45.39.108台湾省台北市网友评分!
来自于164.155.132.208南非网友评分!