- 文章
- 基于后缀算术表达式的代码解析
- 基于AST的算数表达式解析
- Vscode Java 环境配置
- 纯前端实现图片的模板匹配
- 测试用例管理工具Luckyframe安装
- Vscode远程开发,本地翻墙神器
- 记前端手写方法
- Node 2020年新增功能
- yum-404-error
- react16特性:fiber reconciler解密
- cmd终端设置代理
- 前端面试题收集
- git子模块
- 算法-排序
- linux安装python-pyenv环境
- 开发人员良心工具
- 斐波拉契数列js实现
- 数组ArrayFlatten
- Docker安装部署taiga项目
- 极光推送RN集成
- docker-pm2发布node服务
- git-pull获取指定文件
- git获取第一次commit提交记录
- ReactNative项目选型设计
- Docker-Mysql8.0安装及初始化配置
- DDA算法
- ubuntu搭建shadowsocks服务
- React-Native 接入百度统计SDK
- docker-使用yum安装
- 前端入门篇
- CodePush尝试
- Markdown数学公式
- Mongoose踩坑路
- linux系统nvm指定版本安装
- linux安装nginx
- Vscode-Threejs代码智能提示
- linux常用命令
- 说明
ubuntu搭建shadowsocks服务
七月 23, 2018安装软件
$ apt-get install python-pip
$ pip install shadowsocks
编写配置文件
- 服务端文件
# config-server.json { "server": "43.225.***.***", // 你的服务器真实ip "server_port": 6550, // 服务器连接端口 "local_address": "127.0.0.1", "local_port": 1080, "password": "******", "timeout": 300, "method": "rc4-md5" }
其中
server
要配置成真实的ip 不能是127.0.0.1等
配置完成后即可运行命令启动服务
ssserver -c ./config-server.json -d start #后台执行
此时就可以在你本地使用客户端连接软件进行连接,如图:
如果是使用浏览器配置sock5代理
- 编写配置文件
# config-borswer.json { "server": "43.225.***.***", // config-server.json 里你的服务器真实ip "server_port": 6550, // config-server.json 里你配置的port "local_address": "43.225.***.***", // 和server保持一样即可 "local_port": 6551, // 浏览器访问代理的端口 "password": "******", // 密码需要是config-server.json文件里的一样 "timeout": 300, "method": "rc4-md5" }
配置完成后即可运行命令启动服务
sslocal -c ./config-borswer.json -d start # 后台执行
接着 浏览器配置代理服务器即可 如图
后续补充
使用Dockerfile 构建shadowsocks-docker镜像服务 (2019-2-25)
构建思路:
- 使用alpine作为基础,在此之上,安装python、pip后,安装所需要的shadowsocks。
- 导出所需要的环境变量(监听地址、密码、加密方式等)。
修改openssl.py源文件,因为openssl升级到1.1.0版本后,shadowsocks2.8.2版本不对应,这里使用
ADD
命令直接替换覆盖的源文件。# libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,) libcrypto.EVP_CIPHER_CTX_reset.argtypes = (c_void_p,) # libcrypto.EVP_CIPHER_CTX_cleanup(self._ctx) libcrypto.EVP_CIPHER_CTX_reset(self._ctx)
使用
ENTRYPOINT
启动构建配置文件的sh文件。- 导出容器端口,使宿主机能够监听端口,从而实现外部访问。(需要在
docker run
的时候手动接收端口如:-p 6551:6551 -p 6550:6550
) - 生成配置文件后,先在容器里执行服务端
ssserver
进程,然后再执行客户端sslocal
进程。(ssserver -c /data/shadowsocks/server.json -d start && sslocal -c /data/shadowsocks/broswer.json start)
Dockerfile详情
FROM alpine:latest RUN apk update && \ apk add py-pip && \ pip install shadowsocks # 这里应该使用容器的ip 172.17.0.2 ENV SERVER_HOST=172.17.0.2 \ SERVER_PORT=6550 \ BROSWER_PORT=6551 \ SERVER_PASSWORD=uljshdcULJSHDCty \ SERVER_METHOD='rc4-md5' # 修改源文件 # openssl升级到1.1.0版本后,shadowsocks2.8.2版本不对应 # https://blog.csdn.net/shelldawn/article/details/83578218 RUN rm /usr/lib/python2.7/site-packages/shadowsocks/crypto/openssl.py ADD openssl.py /usr/lib/python2.7/site-packages/shadowsocks/crypto/ VOLUME /data/shadowsocks ADD shadowsocks.config.sh /bin/ CMD ssserver -c /data/shadowsocks/server.json -d start && sslocal -c /data/shadowsocks/broswer.json start ENTRYPOINT ["/bin/shadowsocks.config.sh"] EXPOSE 6550 EXPOSE 6551
构建镜像
docker build -t shadowsocks:v1.0.0 ./
运行容器
# 设置参数并运行 # 环境变量根据情况而自行设定 docker run --rm --name sss1 -p 6551:6551 -p 6550:6550 -e "SERVER_HOST=172.17.0.2" -e "SERVER_PASSWORD=uljshdcULJSHDCty" shadowsocks:v1.0.0
ip地址获取
首先获取自己的网络ip段docker network ls # 如 NETWORK ID NAME DRIVER SCOPE 154ed73a253c bridge bridge local 997c88951572 host host local 86affb36c194 none null local
一般情况下都是bridge
docker network inspect bridge
然后再根据对用的ip段推断下一个容器的ip,一般是最后一个ip值加1
镜像发布
最后此镜像也被公开了,可以直接访问查看,以及使用,欢迎star试用:
zxyty/shadowsocks
← Mongoose踩坑路
DDA算法 →