这是关于如何在DigitalOcean上设置Shadowsocks服务器的教程。如果您有兴趣,我们还有另一个关于在Amazon AWS EC2上设置Shadowsocks服务器的教程。
虽然在DigitalOcean上设置Shadowsocks可能非常简单并且可能只需要20分钟,但这个过程确实需要您具备一些技术技能,例如使用Linux命令,SSH到远程Linux服务器,使用命令行文本编辑器(例如vi)编辑文件等
如果这些听起来太难了,您可以考虑使用Shadowsocks替代方案,例如VPN。
如果您正在寻找付费的Shadowsocks服务,您可以尝试12VPN,它提供Shadowsocks作为其VPN计划的一部分。
为什么选择DigitalOcean来托管您的Shadowsocks服务器
DigitalOcean是一家云托管服务提供商,近年来变得非常受欢迎。它提供价格低廉的SSD服务器,起价为每月5美元。与Amazon AWS EC2相比,在Digital Ocean上设置Shadowsocks服务器更容易,因为您可以跳过诸如设置安全组,配置弹性IP地址等内容。
根据我们的经验,您可以选择最便宜的DigitalOcean主机方案(每月5美元)来托管您的Shadowsocks服务器,它运行良好。对于此计划,您将获得512 MB RAM,20 GB SSD磁盘空间和1TB每月传输。
对于OS,我们将在本教程中使用Ubuntu。
对于服务器位置,如果您将使用来自中国的Shadowsocks,我们建议您选择DigitalOcean的旧金山数据中心,因为它似乎提供了最佳速度。
使用Digital Ocean注册帐户
如果您还没有DigitalOcean帐户,首先您应该注册以获得一个帐户。对于新用户,DigitalOcean提供免费的10美元信用额度。
在DigitalOcean创建Droplet
登录DigitalOcean帐户后,单击顶部导航栏上的“Droplet”链接,然后单击顶部的“Create Droplet”按钮。然后,系统会要求您为新液滴选择选项。我们建议您使用以下选项:
- 选择图像:选择Ubuntu。
- 选择尺寸:选择5美元/月(如果您决定这样做,则选择较大的尺寸)
- 选择数据中心区域:选择旧金山(最适合从中国连接)
- 选择其他选项:none(除非你想添加一些)
- 添加SSH密钥:添加新SSH密钥或选择现有密钥
然后单击“创建”按钮以创建您的液滴。
完成后,您将能够在DigitalOcean控制面板的Droplets部分下看到新创建的Droplet。除了Droplet的名称,您还将看到此Droplet的IP地址。您可以使用此IP地址通过SSH连接到DigitalOcean服务器。稍后您还将使用此IP地址配置Shadowsocks客户端。
连接到DigitalOcean服务器以设置Shadowsocks
现在我们已经运行了Digital Ocean服务器,我们需要连接它并设置Shadowsocks。您可以通过两种方式连接到服务器:使用DigitalOcean提供的基于Web的访问控制台,或使用本地计算机上的终端通过SSH连接到服务器。我们建议使用SSH,因为使用访问控制台很难复制和粘贴等。
现在,让我们使用以下命令SSH到您的DigitalOcean服务器:
ssh root @ {your_droplet's_IP_address}
连接到服务器后,运行以下命令:
首先,如果您的登录帐户不是root:
$ sudo su
然后让我们更新我们的机器:
$ apt-get update
然后让我们使用以下两个命令安装shadowsocks:
$ apt-get install python-pip
$ pip安装shadowsocks
Shadowsocks支持许多加密方法。为了优化性能,我们建议使用chacha20加密方法。但是,我们需要先安装它。以下是设置chacha20加密的命令:
$ apt-get install python-m2crypto $ apt-get install build-essential $ 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创建一个配置文件,它应该被创建为“/etc/shadowsocks.json”。让我们使用vi编辑器来执行此操作:
$ vi /etc/shadowsocks.json
将以下内容添加到shadowsocks配置文件中:
{ “服务器”:“your_droplet's_IP_address” “SERVER_PORT”:8000, “LOCAL_PORT”:1080, “密码”:“your_password” “超时”:600, “方法”: “chacha20” }
请注意,上面的配置只为Shadowsocks服务器打开一个端口(8000),它只支持一次登录。如果要设置多个使用不同密码的用户,可以通过设置多个端口(每个端口使用不同的密码)来实现。下面是一个配置文件示例:
{ “服务器”:“your_droplet's_IP_address” “port_password”:{ “443”:“password1”, “8000”:“password2”, “8383”:“password3”, “8384”:“password4” }, “LOCAL_PORT”:1080, “超时”:600, “方法”: “chacha20” }
现在我们已经准备好了。我们可以使用以下命令启动新的Shadowsocks服务器:
$ ssserver -c /etc/shadowsocks.json -d start
如果你想仔细检查一切是否正常,你可以查看Shadowsocks的日志文件:
$ less /var/log/shadowsocks.log
如果您在Shadowsocks日志文件中没有看到任何错误消息,那么您没问题。
将来,如果要停止Shadowsocks服务器,请使用以下命令:“ssserver -c /etc/shadowsocks.json -d stop”。如果要重新启动Shadowsocks服务器,请使用以下命令:“ssserver -c /etc/shadowsocks.json -d restart”。
我们还需要设置一件事。我们需要确保每次服务器重新启动时,我们的Shadowsocks服务器都会自动启动。为此,让我们使用vi编辑以下文件:
$ vi /etc/rc.local
在打开的文件中,在“退出0”之前将以下行添加到底部:
/ usr / bin / python / usr / local / bin / ssserver -c /etc/shadowsocks.json -d start
凉。现在我们在DigitalOcean上运行了一个Shadowsocks服务器!
如果你想在这里停下来,那就完全没了问题。您现在可以在DigitalOcean上享受新创建的Shadowsocks服务器并根据需要使用它。
但是,让我们继续介绍Shadowsocks服务器优化的一些技巧。
Shadowsocks服务器优化
默认情况下,我们的Shadowsocks服务器可能无法处理大量流量。如果您希望它能够处理大量并发连接,则需要增加打开文件描述符的最大数量。现在让我们这样做:
$ vi /etc/security/limits.conf
将以下两行添加到该文件:
* soft nofile 51200 * hard nofile 51200
注意:不要跳过“*”符号,因为它们是行的一部分。之后,让我们暂时停止Shadowsocks服务器:
$ ssserver -c /etc/shadowsocks.json -d stop
然后设置ulimit:
$ ulimit -n 51200
然后让我们通过编辑/etc/sysctl.conf文件来调整内核参数:
$ vi /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
现在是时候重新启动Shadowsocks服务器了:
$ ssserver -c /etc/shadowsocks.json -d start
连接到Shadowsocks服务器
现在您已经在DigitalOcean上成功设置了Shadowsocks服务器,您可以使用Shadowsocks客户端连接到它。请参考Shadowsocks.org关于客户端设置等的官方文档。我们在这里包含详细信息对我们来说太过分了。配置客户端时,只需确保使用正确的IP地址,端口号,密码以及在Shadowsocks配置文件中设置的加密方法。
一些附加说明
对于Shadowsocks服务器优化,曾经有另一个技巧,即使用名为ServerSpeeder的第三方软件来加速服务器。在我们的Shadowsocks服务器上启用ServerSpeeder后,我们看到了大幅提升。但是,遗憾的是,ServerSpeeder在2016年初停止接受新的注册和安装。如果您有一个旧的ServerSpeeder帐户仍允许您在新服务器上安装,那么您一定要将它安装在托管Shadowsocks服务器的DigitalOcean Droplet上。使用ServerSpeeder的另一个技巧是它只支持有限数量的Linux内核。服务器的内核可能太新,无法支持ServerSpeeder。要解决此问题(假设您确实可以在服务器上安装ServerSpeeder),可以将内核更改为旧内核。为此,