如何在Ubuntu上安装Shadowsocks以绕过中国GFW

  1. 可靠的Proxy5服务提供商: 如果您更愿意依赖服务提供商,SocketPro便宜(每年2.41美元/月,仅适用于拥有支付宝/微信支付选项的人)。与DigitalOcean服务器相比,此选项更便宜。他们的服务是一流的,我和我的DIY服务器一起使用了近两年。他们的一些服务器也针对Netflix和其他流媒体网站进行了优化。如果您没有支付宝帐户,请给我发电子邮件
  2. 在Amazon EC2(免费套餐)上设置ShadowsocksR服务器:附带自动安装脚本。外部链接是安全的,这是我的个人网站。ShadowsocksR是原始Shadowsocks项目的一个分支,声称在安全性和稳定性方面更胜一筹。所以我强烈建议你安装SSR而不是Shadowsocks。您可以调整EC2指南并将其应用于任何Ubuntu / CentOS或Debian风格。

最初发布在deadauthor.me(网站不再维护)。mighil.com上也有同样的文章。

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

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

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

先决条件

  • DigitalOcean Droplet(最好是> Ubuntu 14.04.5 x64或CentOS 7.2 x64服​​务器)/成本:每月5美元起。如果您有兴趣,请随时注册我的推荐链接
  • 如果您不喜欢UNIX vi编辑器,请使用Notepad ++或Sublime Text。
  • SFTP / FTP客户端,如Windows上的WinSCP,如果您喜欢GUI或传输/ Cyber​​duck,如果您使用的是MacOS。
  • 切换到root或使用sudo。

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

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

如何在Ubuntu 16.04上安装Shadowsocks

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

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

$ apt-get update

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

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

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

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

由于salsa20chacha20是快速流密码。在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编辑器或打开Notepad ++并创建一个新文件。将这些数据添加到文件中:

{ 
“server”:“your_droplet's_IP_address”,
“server_port”:8000,
“local_port”:1080,
“password”:“your_password”,
“timeout”:600,
“method”:“aes-256-cfb” 
}

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

将文件另存为shadowsocks.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文件,并添加以下两行:

*软nofile 51200 
*硬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

Shadowsocks客户:

在Shadowsock 官方网站上查看不同平台的客户。