安装 ShadowsocksR 服务器端(Python多用户版)

Removed according to regulations.

ShadowsocksR 使用 Socks5 代理方式,分为服务器端和客户端。在使用之前,需要先将服务器端部署到服务器上面,然后通过客户端连接并建立本地代理。本文详细介绍如何在服务器端安装ShadowsocksR (Python多用户版)

前期准备

  • 国外(或香港地区)VPS 一台
  • 已顺利通过 SSH 连接到服务器

服务器端安装

获取源代码

Debian / Ubuntu:

apt-get install git
git clone https://github.com/shadowsocksr-rm/shadowsocksr.git

CentOS:


yum install git
git clone https://github.com/shadowsocksr-rm/shadowsocksr.git

服务端配置

进入上一步下载的 shadowsocksr 文件夹进行初始化配置 (这里假设 shadowsocksr 文件夹是在服务器的根目录下,如果不是,自己适当调整命令):


cd ~/shadowsocksr && bash initcfg.sh

接下来输入命令 ls 会看到 ~/shadowsocksr 文件夹下有一个名为 user-config.json 用户配置文件。用 nano 命令打开该文件,修改好之后按 Ctrl+O >> 回车 >> Ctrl+X 保存退出


nano user-config.json

user-config.json 多端口配置

  • 删去 "server_port": 8388, (含逗号)
  • 删去 "password": "m", 替换为如下多端口代码:

    "port_password": {
        "8001":"password1",
        "8002":"password2",
        "8003":"password2"
    },

如果要为每个端口配置不同的混淆协议,可以这样写:


"port_password": {
    "8001":{"protocol":"auth_aes128_md5", "password":"password1", "obfs":"tls1.2_ticket_auth", "obfs_param":"cloudflare.com"},
    "8002":{"protocol":"auth_sha1_v2", "password":"password2", "obfs":"tls1.2_ticket_auth"},
    "8003":{"protocol":"auth_simple", "password":"password3"}
},

使用配置好的文件运行


cd ~/shadowsocksr/shadowsocks && ./logrun.sh

可能出现的问题

如果你像这样在 VPS 上准确配置好 SSR 服务器端,接着又在自己电脑上准确配置好 SSR 客户端,但还是无法使用,一个可能的原因是相应的端口没有打开

这种情况最可能的一个原因是: 你配置 ShadowsocksR 的服务器不是纯净的。之前已经装了像 OneinStack、LNMP 这样的一键安装包,而这些脚本的防火墙规则默认关闭我们配置的 8001、8002、8003 这样的端口

下面以 8001 端口为例,来看下如何手动打开端口:


# 打开 8001 端口
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 8001 -j ACCEPT
iptables -I INPUT -m state --state NEW -m udp -p udp --dport 8001 -j ACCEPT

# 如果要删除防火墙规则,关闭 8001 端口
iptables -D INPUT -m state --state NEW -m tcp -p tcp --dport 8001 -j ACCEPT
iptables -D INPUT -m state --state NEW -m udp -p udp --dport 8001 -j ACCEPT

这样一来,我们就可以自由地在国际互联网上冲浪了。Enjoy !


安装 libsodium支持 chacha20

# CentOS
yum install wget nano git
yum -y groupinstall "Development Tools"
wget https://github.com/jedisct1/libsodium/releases/download/1.0.16/libsodium-1.0.16.tar.gz
tar xf libsodium-1.0.16.tar.gz && cd libsodium-1.0.16
./configure && make -j2 && make install
echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
ldconfig
# CentOS
yum install wget nano git && yum -y groupinstall "Development Tools" && wget https://github.com/jedisct1/libsodium/releases/download/1.0.16/libsodium-1.0.16.tar.gz && tar xf libsodium-1.0.16.tar.gz && cd libsodium-1.0.16 && ./configure && make -j2 && make install && echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf && ldconfig
# Ubuntu & Debian
apt-get update && apt-get upgrade && apt-get install git wget build-essential && wget https://github.com/jedisct1/libsodium/releases/download/1.0.16/libsodium-1.0.16.tar.gz && tar xf libsodium-1.0.16.tar.gz && cd libsodium-1.0.16 && ./configure && make -j2 && make install && ldconfig

Drop solitude!