ubuntu下一键搭建 shadowsocks 服务

ubuntu下一键搭建 shadowsocks 服务

最近常常更换vps,更换后一些必备的工具就不得不重新安装下,shadowsocks服务就是其中一个,重复做这样事情挺烦的。所以整理了一个脚本,用于方便在新机器下一键搭建shadowsocks。只需要把脚本拷贝到新的机器下,chmod +x 一下给上必要的属性,运行即可一键搭建shadowsocks 服务程序了。

上完整脚本前,先简单说明下shadowsocks的安装步骤(如果已经了解这部分内容,可以直接跳到“分割线”下面去拷贝代码使用)。

1 安装PIP(一般先apt-get update 一下)

sudo apt-get update
sudo apt-get install python-pip
sudo apt-get install python-setuptools m2crypto

2 安装 shadowsocks

pip install shadowsocks

上面两步运行如果没有错误,shadowsocks 服务程序就已经安装成功了的,剩下就是设置配置文件的事情了。

3 编辑配置文件,新建 /etc/shadowsocks.json文件,加入如下内容:

{
    "server":"server_ip",
    "server_port":8388,
    "local_address": "127.0.0.1",
    "local_port":1080,
    "password":"mypassword",
    "timeout":300,
    "method":"aes-256-cfb"
}

上面的server 需要设置为正确的服务器ip;server_port 可以保留默认的8388,不过由于不可告人原因,改变下它好点;password 修改为你喜欢的就好;method为 加密方法,可选择 “bf-cfb”, “aes-256-cfb”, “des-cfb”, “rc4″等。

如果需要配置多个端口,则配置格式做少量的调整即可,如下:

{
    "server":"server_ip",
    "local_address": "127.0.0.1",
    "local_port":1080,
    "timeout":300,
    "port_password":{
        "10003":"123abc",
        "10004":"123dxn",
        "10005":"dfasfsaf"
    },
    "method":"rc4-md5",
    "timeout":300
}

下面的配置没有server_port 和password段,多了一个port_password的数组,字面意思就可以理解左边数字是端口,右边是密码。本文的脚本使用的配置就是这个格式,方便配置多端口。

设置好了,就可以启动服务了,启动命令:

ssserver -c /etc/shadowsocks.json -d start

停止服务命令:

ssserver -c /etc/shadowsocks.json -d stop

顺便来个重启的命令(就是上面两个命令的组合):

ssserver -c /etc/shadowsocks.json -d start
ssserver -c /etc/shadowsocks.json -d stop

为了方便操控shadowsocks,我习惯都把这几个命令增加快捷运行的sh文件 扔到 当前用户目录下。

本文的脚本会自动获取机器ip 填充到server内,server_port 是随机生产的,范围在10010-10050,密码(的其中3位)也是随机生成的,尽量做到全自动化。运行脚本后,如下这样的信息回显。脚本比较简单,就是几行sh 脚本,如果需要则可以修改为自己喜欢的配置。

运行脚本后,会这样回显这样的信息:

里面显示了 shadowsocks 终端所需的信息了(ip、端口、密码和加密模式)。

上面提到脚本运行后会在当前账户目录生成sh 文件,也就是这几个文件:~/start_ss.sh、~/stop_ss.sh、~/restart_ss.sh。后续可以通过它们来快捷启动、关闭、重启shadowsocks服务,懒得输入。

著:该脚本在 ubuntu 16.04.3 * 64 机器下测试通过。

#=================== 全宇宙最华丽的分割线=====================#

完整脚本如下:

#!/bin/bash

#定义个随机生成数字函数
function rand()
{
    min=$1
    max=$(($2-$min+1))
    num=$(($RANDOM+1000000000))
    echo $(($num%$max+$min))
}
echo " .......setup begin....... "
echo " .......install necessary soft....... "
# 安装PIP
sudo apt-get update
sudo apt-get install python-pip
sudo apt-get install python-setuptools m2crypto

# 安装shadowsocks
pip install shadowsocks

echo " .......install soft finish ......."
echo " .......creating config ......."

# 随机端口和密码:
port="100"$(rand 10 50)
password="qaz"$(rand 100 999)"plm"

#获取本地ip
ip_string=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
shadowsocks_path="/etc/shadowsocks.json"

echo "{
    \"server\":\""$ip_string"\",
    \"local_address\": \"127.0.0.1\",
    \"local_port\":1080,
    \"timeout\":300,
    \"port_password\":{
        \""$port"\":\""$password"\"
    },
    \"method\":\"rc4-md5\",
    \"timeout\":300
}" > $shadowsocks_path



#创建 start_ss.sh,写入:
echo "ssserver -c "$shadowsocks_path" -d start" > ~/start_ss.sh

#创建 stop_ss.sh,写入:
echo "ssserver -c "$shadowsocks_path" -d stop" > ~/stop_ss.sh

#创建 restart_ss.sh,写入:
echo "ssserver -c "$shadowsocks_path" -d stop
      ssserver -c "$shadowsocks_path" -d start" > ~/restart_ss.sh

# 设置脚本权限
chmod +x ~/*_ss.sh

echo " .......setup begin ......."
~/restart_ss.sh
echo ""
echo ""
echo "shadowsocks server ip:"$ip_string", port:"$port", password:"$password", method:rc4-md5"

脚本压缩包:install_shadowsocks_in_ubuntu.sh

(全文完)

(欢迎转载本站文章,但请注明作者和出处 云域 – Yuccn

2 thoughts on “ubuntu下一键搭建 shadowsocks 服务

  1. 您好,新年好呀,请问修改默认的端口8388之前,是否需要先开放自己指定的端口呀?

    1. 如果是linode、digitalocean 的vps不用,云主机(阿里、腾讯云主机等)的话需要在策略设置下

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注