Shadowsocks是一个开源SOCKS5代理,根据他们的官方网站,旨在保护您的互联网流量。作为一名在中国的外籍人士,我尝试过很少的VPN服务。众所周知的提供商的主要缺点是他们的VPN为所有流量创建了一个连接(中国的GFW更容易检测/阻止/减速)。
最近,我在新加坡的Ubuntu服务器上测试了Shadowsocks,我必须说我对SOCKS5而不是付费服务非常满意。我知道有很多关于如何配置Shadowsocks的教程。但是,我想更准确地提供最好的提示和解决方法。
在本教程中,您将学习如何在Ubuntu服务器上安装Shadowsocks及相关软件包,并绕过中国的防火墙。
先决条件
- DigitalOcean Droplet(最好是Ubuntu或CentOS x64服务器)/ Cost:从每月5美元起。
- Notepad ++ / Sublime Text Editor如果您不喜欢UNIX vi编辑器。
- 如果你喜欢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