当前位置:首页 > 编程开发

在 CentOS 7 下安装配置 shadowsocks

webgou9年前 (2018-01-15)编程开发346

CentOS 7 开始默认使用Systemd作为开启启动脚本的管理工具,Shadowsocks则是当前比较受欢迎的科学上网工具,本文将介绍如何在 CentOS 下安装和配置 Shadowsocks 服务。

 

 

安装 pip

 

 

pip是 python 的包管理工具。在本文中将使用 python 版本的 shadowsocks,此版本的 shadowsocks 已发布到 pip 上,因此我们需要通过 pip 命令来安装。

 

 

在控制台执行以下命令安装 pip:

 

 

$ curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
$ python get-pip.py

 

 

安装配置 shadowsocks

 

 

在控制台执行以下命令安装 shadowsocks:

 

 

$ pip install --upgrade pip
$ pip install shadowsocks

 

 

安装完成后,需要创建配置文件/etc/shadowsocks.json,内容如下:

 

 

{
"server": "0.0.0.0",
"server_port": 8388,
"password": "uzon57jd0v869t7w",
"method": "aes-256-cfb"
}

 

 

说明:

 


  • method为加密方法,可选aes-128-cfb, aes-192-cfb, aes-256-cfb, bf-cfb, cast5-cfb, des-cfb, rc4-md5, chacha20, salsa20, rc4, table

  • server_port为服务监听端口

  • password为密码,可使用密码生成工具生成一个随机密码

 

以上三项信息在配置 shadowsocks 客户端时需要配置一致,具体说明可查看 shadowsocks 的帮助文档。

 

配置自启动

 

新建启动脚本文件/etc/systemd/system/shadowsocks.service,内容如下:

 

[Unit]
Description=Shadowsocks
[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/ssserver -c /etc/shadowsocks.json
[Install]
WantedBy=multi-user.target

 

执行以下命令启动 shadowsocks 服务:

 

$ systemctl enable shadowsocks
$ systemctl start shadowsocks

 

为了检查 shadowsocks 服务是否已成功启动,可以执行以下命令查看服务的状态:

 

$ systemctl status shadowsocks -l

 

如果服务启动成功,则控制台显示的信息可能类似这样:

 

● shadowsocks.service - Shadowsocks
Loaded: loaded (/etc/systemd/system/shadowsocks.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2015-12-21 23:51:48 CST; 11min ago
Main PID: 19334 (ssserver)
CGroup: /system.slice/shadowsocks.service
└─19334 /usr/bin/python /usr/bin/ssserver -c /etc/shadowsocks.json
Dec 21 23:51:48 morning.work systemd[1]: Started Shadowsocks.
Dec 21 23:51:48 morning.work systemd[1]: Starting Shadowsocks...
Dec 21 23:51:48 morning.work ssserver[19334]: INFO: loading config from /etc/shadowsocks.json
Dec 21 23:51:48 morning.work ssserver[19334]: 2015-12-21 23:51:48 INFO loading libcrypto from libcrypto.so.10
Dec 21 23:51:48 morning.work ssserver[19334]: 2015-12-21 23:51:48 INFO starting server at 0.0.0.0:8388

 

一键安装脚本

 

新建文件install-shadowsocks.sh,内容如下:

 

#!/bin/bash
# Install Shadowsocks on CentOS 7
echo "Installing Shadowsocks..."
random-string()
{
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w ${1:-32} | head -n 1
}
CONFIG_FILE=/etc/shadowsocks.json
SERVICE_FILE=/etc/systemd/system/shadowsocks.service
SS_PASSWORD=$(random-string 32)
SS_PORT=8388
SS_METHOD=aes-256-cfb
SS_IP=ip route get 1 | awk <span class="hljs-string">'{print $NF;exit}'</span>
GET_PIP_FILE=/tmp/get-pip.py
# install pip
curl "https://bootstrap.pypa.io/get-pip.py" -o "${GET_PIP_FILE}"
python ${GET_PIP_FILE}
# install shadowsocks
pip install --upgrade pip
pip install shadowsocks
# create shadowsocls config
cat <${CONFIG_FILE}
{
"server": "0.0.0.0",
"server_port": ${SS_PORT},
"password": "${SS_PASSWORD}",
"method": "${SS_METHOD}"
}
EOF
# create service
cat <${SERVICE_FILE}
[Unit]
Description=Shadowsocks
[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/ssserver -c ${CONFIG_FILE}
[Install]
WantedBy=multi-user.target
EOF
# start service
systemctl enable shadowsocks
systemctl start shadowsocks
# view service status
sleep 5
systemctl status shadowsocks -l
echo "================================"
echo ""
echo "Congratulations! Shadowsocks has been installed on your system."
echo "You shadowsocks connection info:"
echo "--------------------------------"
echo "server: ${SS_IP}"
echo "server_port: ${SS_PORT}"
echo "password: ${SS_PASSWORD}"
echo "method: ${SS_METHOD}"
echo "--------------------------------"

 

执行以下命令一键安装:

 

$ chmod +x install-shadowsocks.sh
$ ./install-shadowsocks.sh

 

也可以直接执行以下命令从 GitHub 下载安装脚本并执行:

 

$ bash <(curl -s http://morning.work/examples/2015-12/install-shadowsocks.sh)

 

安装完成后会自动打印出 Shadowsocks 的连接配置信息。比如:

 

Congratulations! Shadowsocks has been installed on your system.
You shadowsocks connection info:
--------------------------------
server: 10.0.2.15
server_port: 8388
password: RaskAAcW0IQrVcA7n0QLCEphhng7K4Yc
method: aes-256-cfb
--------------------------------

 

扩展阅读

 



作者:unhappydepig
链接:https://hacpai.com/article/1465786632630
来源:黑客派
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

 

 

扫描二维码推送至手机访问。

版权声明:本文由知了博客发布,如需转载请注明出处。

本文链接:https://www.webgou.info/?id=616

分享给朋友:

“在 CentOS 7 下安装配置 shadowsocks” 的相关文章

android ndk "5039: Operation timed out."解决办法

在调试C/C++代码时,需执行: 1.adb forward tcp:5039 tcp:5039 2.ndk-gdb-eclipse --force --start 参考: ndk-gdb关联eclipse设置方法 Using cgdb with ndk-debug (and cgdb tuto…

xmlbean使用

过了几个月突然想到使用xmlbean,一到下午什么都记不起来,翻了老半天,看了下批命令才有点印像。之前打算深入研究一下xmlbean都吾有时间,现在把在公司用到的批命令记下来:1.inst2xsd -design ss -simple-content-types smart  f:\xml…

windows进程间通信的11种方法

进程间通信有以下方法Using named objects Waiting for multiple objects Waiting in a message loop Using mutex objects Using semaphore objects Using event objects U…

Audio 组成

Audio 组成0.直接操作Mixer API 速度会比 waveform audio api速度要快1.Mixer api 控件范围要比waveform audio api 要快.2.Mixer api灵活,可以自行控件。…

Android电源管理相关应用技巧分享

对于刚刚接触Android操作系统的朋友来说,他们对这一开源的手机操作系统所带来的功能深深的吸引着。我们在这篇文章中就通过对Android电源管理的相关概念的解读,来对这一系统进行深入的了解。接下来我们从Java应用层面, Android framework层面, Linux内核层面分别进行详细的讨…

cmd下PUSHD和POPD命令使用说明

PUSHD命令保存当前目录以供 POPD 命令使用,然后改到指定的目录。 PUSHD [path | ..] path 指定要成为当前目录的目录。 如果命令扩展被启用,除了一般驱动器号和路径,PUSHD 命令还接受网络路径。如果指定了网络路径,PUSHD 将创建一个 指向指定网络资源的临时驱动器号,…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。