VPS配置安装shadowsocks-libev 作者: 毕世平 时间: 2022-04-10 分类: 默认分类 前言:虽然`shadowsocks-libev`已经很久没更新了,Github里标识为`Bug-fix-only`,但就目前使用情况来讲,貌似还属它最稳。由于需要手动编译安装,稍有难度,这里记录下编译过程。 本文以`Debian10`发行版为例,介绍两种方法配置`shadowsocks-libev`,一种是使用源代码编译安装,一种是使用`teddysun/shadowsocks-libev:3.3.5`这版还带`simple-obfs`插件的docker镜像配置。 # 一、编译安装 ## 1.1 安装必要软件 以`root`用户执行下面命令: # 更新源 apt update # 安装必要软件(编译使用,运行依赖) apt -y install git vim gettext build-essential autoconf libtool libpcre3-dev libev-dev libc-ares-dev automake libmbedtls-dev libsodium-dev ## 1.2 下载ss-libev源码 一般将源码放置在`/usr/local/src`目录下,执行下面命令: # 切换路径 cd /usr/local/src # 下载shadowsocks-libev源码压缩包 wget https://github.com/shadowsocks/shadowsocks-libev/releases/download/v3.3.5/shadowsocks-libev-3.3.5.tar.gz # 解压 tar -zxf shadowsocks-libev-3.3.5.tar.gz # 删除压缩包(可选) rm shadowsocks-libev-3.3.5.tar.gz # 修改所有者(可选) chown -R root.root shadowsocks-libev-3.3.5 > shadowsocks-libev 发布地址是:[点击打开](https://github.com/shadowsocks/shadowsocks-libev/releases "点击打开") ## 1.3 编译安装 由于是C语言编写的程序,还需`configure`一下: # 切换路径 cd shadowsocks-libev-3.3.5 # 执行configure,生成Makefile文件 ./configure --disable-documentation # 编译 make # 安装(二进制默认放在/usr/local/bin下,因为上面configure时没有具体指定安装路径) make install ## 1.4 配置simple-obfs插件 `simple-obfs`的发布里没有源码压缩包,这里需要`git clone`源代码下来: # 安装必要软件 apt install -y libssl-dev # 克隆项目仓库到vps上 cd /usr/local/src && git clone https://github.com/shadowsocks/simple-obfs.git # 切换路径,初始化 cd simple-obfs && git submodule update --init --recursive # 执行自动生成脚本 ./autogen.sh # 执行configure,生成Makefile文件 ./configure --disable-documentation # 编译 make # 安装 make install **说明**:上面1.3和1.4命令执行完以后,`ss-*`和`obfs-*`二进制都会默认安装到`/usr/local/bin`目录下。 ## 1.5 创建配置文件 配置文件一般放在`/etc/shadowsocks-libev`目录下,但这个目录vps默认并不存在,需要手动创建: # 创建目录,并切换至此 mkdir /etc/shadowsocks-libev && cd /etc/shadowsocks-libev # 创建配置文件 vim config.json # 下面是配置文件内容示例 { "server":"0.0.0.0", "server_port":9000, "password":"password0", "timeout":300, "method":"chacha20-ietf-poly1305", "nameserver":"8.8.8.8", "fast_open":false, "mode":"tcp_and_udp", "plugin":"obfs-server", "plugin_opts":"obfs=http" } **说明**:如果你的机器是`ipv4`和`ipv6`双栈接入,那么你可以同时监听所有的`ipv4和ipv6`地址,具体写法是:`"server":["[::0]","0.0.0.0"]` ## 1.6 配置systemd服务 上面分别配置好了二进制和配置文件,下面配置systemd来管理其服务的启动,停止,自启动: # 切换路径 cd /etc/systemd/system # 创建服务文件 vim shadowsocks-libev.service # 下面是内容示例 [Unit] Description=Shadowsocks-libev After=network.target [Service] Type=simple User=nobody ExecStart=/usr/local/bin/ss-server -c /etc/shadowsocks-libev/config.json [Install] WantedBy=multi-user.target 配置好systemd服务以后,执行下面命令: # 重载(修改service文件后,一般要执行下面命令) systemctl daemon-reload # 启动 systemctl start shadowsocks-libev # 加入开机启动 systemctl enable shadowsocks-libev # 查看运行状态 systemctl status shadowsocks-libev # 停止 systemctl stop shadowsocks-libev # 二、用docker配置 ## 2.1 安装docker 以`root`用户执行下面命令安装`docker`: # 使用一键脚本安装docker wget -qO- get.docker.com | bash # 启动 systemctl start docker # 开机自启 systemctl enable docker # 查看状态 systemctl status docker ## 2.2 拉取镜像 由于`simple-obfs`插件项目已经好久好久没更新,在github里也标识为`Deprecated`被弃用,因此本来是不推荐使用的,秋水逸冰在新版docker镜像中也移除了对此插件的支持,因此要用旧版的`teddysun/shadowsocks-libev:3.3.5`,且用且珍惜: # 拉取镜像(3.3.5是tag,必须加上,否则默认是latest,不含simple-obfs插件) docker pull teddysun/shadowsocks-libev:3.3.5 # 查看obfs插件版本号 docker run --rm teddysun/shadowsocks-libev:3.3.5 obfs-server -h ## 2.3 创建配置文件 跟上面`1.5`一模一样: # 创建目录,并切换至此 mkdir /etc/shadowsocks-libev && cd /etc/shadowsocks-libev # 创建配置文件 vim config.json # 下面是配置文件内容示例 { "server":"0.0.0.0", "server_port":9000, "password":"password0", "timeout":300, "method":"chacha20-ietf-poly1305", "nameserver":"8.8.8.8", "fast_open":false, "mode":"tcp_and_udp", "plugin":"obfs-server", "plugin_opts":"obfs=http" } ## 2.4 基于配置文件启动容器 执行下面命令创建并启动容器即可: # 启动容器 docker run -d --name ss-libev --restart always --net host -v /etc/shadowsocks-libev:/etc/shadowsocks-libev teddysun/shadowsocks-libev:3.3.5 # 查看logs docker logs ss-libev # 重启容器(一般在修改config.json后执行重启) docker restart ss-libev # 停止容器运行 docker stop ss-libev # 移除容器 docker rm ss-libev 参考链接: - [Shadowsocks-libev项目地址](https://github.com/shadowsocks/shadowsocks-libev "Shadowsocks-libev项目地址") - [simple-obfs项目地址](https://github.com/shadowsocks/simple-obfs "simple-obfs项目地址") - [秋水逸冰-介绍几款Docker镜像](https://teddysun.com/536.html "秋水逸冰-介绍几款Docker镜像") 标签: none
shadowsocks有快速对接机场的脚本吗?
这个还真不太清楚,不搞那个