在DigitalOcean上设置Shadowsocks服务器

Shadowsocks是一个开源SOCKS5代理,根据他们的官方网站,旨在保护您的互联网流量。作为一名在中国的外籍人士,我尝试过很少的VPN服务。众所周知的提供商的主要缺点是他们的VPN为所有流量创建了一个连接(中国的GFW更容易检测/阻止/减速)。

最近,我在新加坡的Ubuntu服务器上测试了Shadowsocks,我必须说我对SOCKS5而不是付费服务非常满意。我知道有很多关于如何配置Shadowsocks的教程。但是,我想更准确地提供最好的提示和解决方法。

在本教程中,您将学习如何在Ubuntu服务器上安装Shadowsocks及相关软件包,并绕过中国的防火墙。

先决条件

  1. DigitalOcean Droplet(最好是Ubuntu或CentOS x64服​​务器)/ Cost:从每月5美元起。如果您有兴趣,请随时注册我的推荐链接
  2. Notepad ++ / Sublime Text Editor如果您不喜欢UNIX vi编辑器。
  3. 如果你喜欢GUI,可以使用像WinSCP这样的SFTP / FTP客户端。

如何在DigitalOcean中创建一个新的Droplet

注意:我强烈建议新用户在创建Droplet时生成/设置SSH密钥,因为它们提供了一种使用SSH登录虚拟专用服务器比单独使用密码更安全的方式。

如何在Ubuntu 16.04上安装Shadowsocks

让我们启动putty或任何其他SSH客户端,并以root用户身份登录到您的服务器。

登录服务器后,运行以下命令更新软件包:

$ apt-get update

现在,运行以下命令安装Python然后Shadowsocks:

$ apt-get install python-pip
$ pip安装shadowsocks

现在安装M2Crypto,它是OpenSSL最完整的Python包装器,具有RSA,DSA,DH,EC,HMAC,消息摘要,对称密码(包括AES)。运行以下命令安装M2Crypto:

$ apt-get install python-m2crypto
$ apt-get install build-essential

由于salsa20和chacha20是快速流密码。在x86_64上优化的salsa20 / chacha20实现甚至比rc4快2倍(但在ARM上略慢)。您必须安装libsodium才能使用它们:

$ wget https://github.com/jedisct1/libsodium/releases/download/1.0.10/libsodium-1.0.10.tar.gz
$ tar xf libsodium-1.0.10.tar.gz && cd libsodium-1.0.10
$ ./configure && make && make install
$ ldconfig

完成上述步骤后,我们必须为Shadowsocks创建一个.json文件(配置文件)。为此,请启动Vi编辑器或打开文本编辑器并创建新文件。将这些数据添加到文件中:

{
“服务器”:“your_droplet's_IP_address”
“SERVER_PORT”:8000,
“LOCAL_PORT”:1080,
“密码”:“your_password”
“超时”:600,
“方法”: “AES-256-CFB”
}

您可以从此处选择任何加密方法。

将文件另存为2.6.8 以.json并将其复制到的/ etc文件夹中。

现在启动Shadowsocks服务器。运行以下命令来执行此操作:

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

您可以检查Shadowsocks日志文件,该文件位于/var/log/shadowsocks.log中以确保一切正常。

现在您已经快完成了,我们需要确保在系统重新启动期间自动启动Shadowsocks服务器。编辑名为/etc/rc.local的文件以执行此操作。

打开/etc/rc.local并在退出0行之前添加以下内容。

/ usr / bin / python / usr / local / bin / ssserver -c /etc/shadowsocks.json -d start

现在你准备好了。

注意:将来,使用此命令:“ssserver -c /etc/shadowsocks.json -d stop”停止Shadowsocks服务器。和“ssserver -c /etc/shadowsocks.json -d restart”重启。

服务器优化

有许多方法可以优化您的服务器,这里有最好的方法。

要增加文件描述符的最大数量:

编辑位于/etc/security/limits.conf中的limits.conf文件,并添加以下两行:

* soft nofile 51200
* hard nofile 51200

现在,暂时停止Shadowsocks服务器以设置ulimit。

跑:

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

现在设置ulimit:

$ ulimit -n 51200

要优化内核:

我们可以通过编辑/etc/sysctl.conf文件来优化内核参数。打开文件并将以下行添加到文档的末尾:

fs.file-max = 51200
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.core.netdev_max_backlog = 250000
net.core.somaxconn = 4096
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_mem = 25600 51200 102400
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_congestion_control =立方体

保存并运行以下命令:

$ sysctl -p

现在您已完成优化,启动服务器!

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