在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