基于shadowsocks-libev+simple-obfs的单机多用户搭建
前言
你好啊,感谢你阅读本文。18
年的时候,我发布了这篇文章,介绍了如何部署一套我当时以为安全的流量混淆和多用户限流工具。
转眼到了22
年,现在我遇到了几个问题
- 我的
Linux
虚拟机迫切需要使用科学上网,但是当时这篇文章里没有介绍关于Linux Client
的使用。 - 我的
shadowsocks-libev
版本过于老旧,不知道是否会有安全漏洞,需要更新。 simple-obfs
混淆插件已经停止维护,拙劣的混淆可能会暴露自己。
随后我在搜索引擎上找到了一篇文章,如何部署一台抗封锁的Shadowsocks-libev
服务器 。
PS:在写这篇文章的时候,根据上文进行配置,第二天就被封IP
了,建议大家还是开上simple obfs
等混淆插件,不要裸奔。
本文基于Ubuntu 18.04
在虚拟机中进行操作, 并于VPS
上测试成功。
允许root远程登录(仅限虚拟机,请勿用于生产环境)
建议使用root
避免各种权限问题。
实际使用时应该登录普通用户后sudo -s
切换到root
用户。
1 | # 设置root用户的密码为root,并允许root用户远程登录 |
shadowsocks-libev 服务端安装配置
服务端使用shadowsocks-libev
配置文件官方文档
1 | # 1. 安装 shadowsocks-libev |
建议使用openssl rand -base64 16
来生成强密码
单用户配置
1 | # 1. 添加单用户配置文件 |
多用户配置
1 | # 1. 添加多用户配置文件 |
测试使用
客户端连接上, 然后开启全局模式, 执行如下操作
- 访问
www.baidu.com
, 访问成功 - 关闭服务端, 访问
www.baidu.com
, 访问失败
则说明shadowsocks-libev
已经成功配置。
配置 simple-obfs 混淆插件
simple-obfs
是一个简单的混淆插件, 可以伪装成 http
流量。
服务端配置
1 | # 1. 从 Github 下载源码进行编译 |
客户端配置
win
: https://github.com/shadowsocks/simple-obfs/releases
复制到客户端同一目录下, 并配置以下参数
插件程序: obfs-local
插件选项: obfs=http;obfs-host=apps.bdimg.com
android
: https://github.com/shadowsocks/simple-obfs-android/releases
没有苹果设备, 不做研究。
配置 v2ray 混淆插件(暂未落地)
地址:https://github.com/shadowsocks/v2ray-plugin
流量统计(暂未落地)
shadowsocks-manager要部署邮箱才行, 放弃.shadowsocks-hub依赖于shadowsocks-restful-api, 也是依赖于原生的manager API
接口.(虽然我跑docker
失败了)
shadowsocks-libev
提供了原生的manager API
接口, 可以统计流量使用情况.接口文档在这里protocol.
优化
开启BBR
BBR
需要内核4.9
以上.
1 | # 1. 查看内核 |
部署一个正常的网站到80端口
也可以用来部署一些自己的web
应用
1 | apt install nginx -y |
备用端口
1 | # 配置端口转发 |
开启防火墙
1 | apt update && sudo apt install -y ufw |
封禁恶意访问IP
使用 fail2ban
1 | # 1. 安装 fail2ban |
结语
吐槽下, libev
关于config.json
的配置没有一个完整的example
, 也没有wiki
页, 还是我翻了下issue
才发现了文档位置. 并且有些参数配置在config.json
还没有对应位置.
开发者觉得我弄出来能用就好了, 不懂就去看源码全在那.
小白则是素质三连, 怎么用不了了, 报错了, 打不开怎么办.
开源不易, 珍惜每个用心写文档的开发者和每个用心写复现步骤的小白.