GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nastavit proxy server Shadowsocks-libev na Ubuntu

Tento tutoriál vám ukáže, jak nastavit proxy server Shadowsocks na Ubuntu. Shadowsocks je lehký, rychlý a bezpečný proxy server Socks5, který obchází internetovou cenzuru. Naučíme se, jak nastavit serverovou stranu a jak nakonfigurovat desktopového klienta na Ubuntu. Existuje mnoho implementací Shadowsocks, tento tutoriál vám ukáže, jak používat Shadowsocks-libev, protože

  • Je napsán v jazyce C, velmi rychlý i na počítačích nižší třídy.
  • Je dobře udržovaný.
  • Je to implementace s nejbohatšími funkcemi. Podporovány jsou rychlé otevření TCP, víceuživatelské rozhraní API pro správu, režim přesměrování, režim tunelu, přenos UDP, šifry AEAD a zásuvné moduly.

Předpoklady

K dokončení tohoto kurzu budete potřebovat:

  • VPS (virtuální soukromý server). Doporučuji Vultr. Nabízejí 512M paměti vysoce výkonné VPS za pouhých 2,5 $ měsíčně, což je ideální pro váš soukromý proxy server.
  • Pak nainstalujte Ubuntu do svého VPS.

Krok 1:Instalace serveru Shadowsocks-libev na Ubuntu

SSH na váš vzdálený server Ubuntu. Shadowsocks-libev je součástí úložiště Ubuntu od 17.04, takže jej můžete nainstalovat pomocí:

sudo apt update

sudo apt install shadowsocks-libev

Uživatelé Ubuntu 16.04 jej mohou nainstalovat z PPA spuštěním následujících příkazů. software-properties-common je potřeba, pokud chcete nainstalovat software z PPA. Na vašem serveru Ubuntu může chybět.

sudo apt install software-properties-common -y

sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev -y

sudo apt update

sudo apt install shadowsocks-libev

Sodíková krypto knihovna (libsodium) bude nainstalována spolu s shadowsocks-libev. Je to požadavek, pokud chcete používat bezpečnou a rychlou metodu šifrování ChaCha20-Poly1305. Po instalaci upravte konfigurační soubor.

sudo nano /etc/shadowsocks-libev/config.json

Výchozí obsah souboru je následující.

{
    "server":["::1", "127.0.0.1"],
    "mode":"tcp_and_udp",
    "server_port":8388,
    "local_port":1080,
    "password":"ACRrobo9ymXb",
    "timeout":60,
    "method":"chacha20-ietf-poly1305"
}

Musíme změnit 127.0.0.1 na 0.0.0.0 , takže server Shadowsocks-libev bude naslouchat na veřejné IP adrese. Poté změňte server_port na jiná čísla portů, jako je 8888. Heslo bylo vygenerováno náhodně, takže ho můžete nechat tak, jak je.

Uložte a zavřete soubor. Poté restartujte službu shadowsocks-libev, aby se změny projevily.

sudo systemctl restart shadowsocks-libev.service

Povolit automatické spouštění při spouštění.

sudo systemctl enable shadowsocks-libev.service

Zkontrolujte jeho stav. Ujistěte se, že běží.

systemctl status shadowsocks-libev.service

Pokud se zobrazí následující chyba.

This system doesn't provide enough entropy to quickly generate high-quality random numbers. The service will not start until enough entropy has been collected.

Tuto chybu můžete opravit instalací rng-tools .

sudo apt-get install rng-tools

Potom spusťte

sudo rngd -r /dev/urandom

Nyní můžete spustit službu Shadowsocks-libev.

Krok 2:Konfigurace brány firewall

Pokud na svém serveru používáte bránu firewall iptables, musíte povolit provoz na portech TCP a UDP, na kterých Shadowsocks naslouchá. Pokud například Shadowsocks používá port 8888, spusťte následující příkaz:

sudo iptables -I INPUT -p tcp --dport 8888 -j ACCEPT

sudo iptables -I INPUT -p udp --dport 8888 -j ACCEPT

Pokud používáte firewall UFW, spusťte následující příkazy:

sudo ufw allow 8888

Pokud používáte AWS nebo Google Cloud, musíte nakonfigurovat firewall na webovém ovládacím panelu.

Krok 3:Instalace a konfigurace klienta Shadowsocks-libev

Ubuntu Desktop

shadowsocks-libev Balíček obsahuje serverový i klientský software. Na ploše Ubuntu 20.04, 18.04 spusťte následující příkazy k instalaci Shadowsocks-libev.

sudo apt update

sudo apt install shadowsocks-libev

Na ploše Ubuntu 16.04 spusťte následující příkazy k instalaci Shadowsocks-libev.

sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev -y

sudo apt update

sudo apt install shadowsocks-libev

Shadowsocks-libev (server) se po instalaci automaticky spustí. Musíte zastavit server Shadowsocks na ploše Ubuntu.

sudo systemctl stop shadowsocks-libev

Také deaktivujte automatické spouštění při spouštění.

sudo systemctl disable shadowsocks-libev

Binární soubor klienta Shadowsocks se jmenuje ss-local . Existuje pro to šablona systemd service unit: /lib/systemd/system/[email protected] . Před spuštěním klienta musíme vytvořit konfigurační soubor na straně klienta. Můžeme zkopírovat konfiguraci serveru Shadowsocks-libev do konfiguračního souboru klienta.

sudo cp /etc/shadowsocks-libev/config.json /etc/shadowsocks-libev/location-of-your-server.json

location-of-your-server můžete nahradit s něčím jako SFO, LAX. Poté upravte konfigurační soubor klienta.

sudo nano /etc/shadowsocks-libev/location-of-your-server.json

Změňte adresu serveru na veřejnou IP adresu vašeho serveru a přidejte následující řádek, který klientovi řekne, aby naslouchal na 127.0.0.1.

"local_address":"127.0.0.1",

Konfigurační soubor klienta tedy bude vypadat takto:

{
 "server":"your-server-ip-address",
 "mode":"tcp_and_udp",
 "server_port":8888,
 "local_address":"127.0.0.1",
 "local_port":1080,
 "password":"ACRrobo9ymXb",
 "timeout":60,
 "method":"chacha20-ietf-poly1305"
}

Uložte a zavřete soubor. Poté můžeme klienta spustit pomocí:

sudo systemctl start [email protected]location-of-your-server.service

A povolit automatické spouštění při spouštění.

sudo systemctl enable [email protected]location-of-your-server.service

Zkontrolujte jeho stav. Ujistěte se, že běží.

systemctl status [email protected]location-of-your-server.service

Nyní proces ss-local naslouchá na 127.0.0.1:1080 na vaší ploše Ubuntu a je připojen k vašemu serveru Shadowsocks.

Plocha systému Windows

Uživatelé Windows si mohou stáhnout tohoto klienta Shadowsocks. Jakmile je nainstalován, můžete přidat nový server do klientského softwaru. Zadejte IP adresu serveru, port a heslo. Klikněte na Apply tlačítko

Pokud máte několik proxy serverů, můžete kliknout na Add tlačítko pro přidání dalších proxy serverů. Všimněte si, že používáte vždy pouze jeden proxy server.

Krok 4:Nakonfigurujte webový prohlížeč pro použití proxy serveru Socks

Aby váš program používal Socks proxy, musí program podporovat Socks proxy. Programy jako Firefox, Google Chrome a Dropbox umožňují uživatelům používat proxy. Ukážu vám, jak nakonfigurovat Firefox a Google Chrome.

Firefox

Ve Firefoxu přejděte na Upravit> Předvolby> Obecné (nebo Nástroje -> Možnosti -> Obecné ). Poté přejděte dolů a klikněte na Nastavení v Network Proxy . V Nastavení připojení vyberte možnost ruční konfigurace serveru proxy . Poté vyberte SOCKS v5 protože Shadowsocks je proxy server Socks5. Zadejte 127.0.0.1 v poli SOCKS Host a 1080 v přístavním poli. Ujistěte se, že Proxy DNS při použití SOCKS v5 je povoleno. Klikněte na OK k použití těchto úprav.

Google Chrome

I když můžete nakonfigurovat proxy pro Google Chrome a prohlížeč Chromium z příkazového řádku, pro správu proxy doporučuji nainstalovat rozšíření Proxy SwitchyOmega.

Po instalaci rozšíření do prohlížeče Google Chrome nakonfigurujte server proxy následovně:

  • Vyberte SOCKS5 protokol.
  • Nastavte 127.0.0.1 jako adresa serveru.
  • Nastavte 1080 jako číslo portu.

Použít změny. Poté klikněte na ikonu rozšíření v pravém horním rohu a klikněte na Proxy SwithyOmega .

Ve výchozím nastavení používá SwithyOmega nastavení proxy operačního systému. Musíme to změnit ze system proxy na proxy .

Nyní by váš proxy měl fungovat.

Krok 5:Test netěsnosti DNS

Přejděte na dnsleaktest.com. Uvidíte IP adresu vašeho serveru Shadowsocks, což znamená, že váš proxy funguje.

Klepněte na Standardní test. Ujistěte se, že váš místní ISP není ve výsledcích testu.

Proxy v příkazovém řádku

Chcete-li, aby vaše programy příkazového řádku používaly proxy, můžete nainstalovat tsocks .

sudo apt install tsocks

Poté upravte konfigurační soubor.

sudo nano /etc/tsocks.conf

Najděte následující řádek:

server = 192.168.0.1

Změňte jej na

server = 127.0.0.1

Uložte a zavřete soubor. Nyní můžete dovolit programu příkazového řádku používat server proxy Shadowsocks takto:

sudo tsocks apt update

Existuje také podobný program s názvem proxychains.

Povolit rychlé otevírání TCP

Shadowsocks můžete urychlit povolením rychlého otevírání TCP. TCP je protokol orientovaný na spojení, což znamená, že data lze vyměňovat pouze po navázání spojení, což se provádí pomocí třícestného handshake. Jinými slovy, tradičně lze data vyměňovat až po dokončení třístranného handshake. TCP fast open (TFO) je mechanismus, který umožňuje výměnu dat před dokončením třístranného navázání spojení, což ušetří až 1 zpáteční čas (RTT).

Podpora rychlého otevření TCP je začleněna do jádra Linuxu od verze 3.7 a ve výchozím nastavení povolena od verze 3.13. Verzi jádra můžete zkontrolovat spuštěním:

uname -r

Chcete-li zkontrolovat konfiguraci rychlého otevření TCP na vašem serveru Ubuntu, spusťte

cat /proc/sys/net/ipv4/tcp_fastopen

Může vrátit 4 hodnoty.

  • 0 znamená zakázáno.
  • 1 znamená, že je povoleno odchozí připojení (jako klient).
  • 2 znamená, že je povoleno příchozí připojení (jako server).
  • 3 znamená, že je povoleno pro odchozí i příchozí připojení.

Všechny mé Ubuntu VPS (Virtual Private Server) vrátily 1 po spuštění výše uvedeného příkazu. Chceme, aby byl tcp_fastopen na našem serveru nastaven na 3. Abychom toho dosáhli, můžeme upravit konfigurační soubor sysctl.

sudo nano /etc/sysctl.conf

Poté vložte následující řádek na konec souboru.

net.ipv4.tcp_fastopen=3

Znovu načtěte nastavení sysctl, aby se změna projevila.

sudo sysctl -p

Pak budete také muset povolit rychlé otevírání TCP v konfiguračním souboru Shadowsocks.

sudo nano /etc/shadowsocks-libev/config.json

Přidejte následující řádek.

"fast_open": true

Takže váš konfigurační soubor serveru Shadowsocks bude vypadat takto:

{
 "server":"your-server-ip-address",
 "server_port":8388,
 "local_port":1080,
 "password":"focobguph",
 "timeout":60,
 "method":"chacha20-ietf-poly1305",
 "fast_open": true
}

Všimněte si, že poslední konfigurační řádek neobsahuje čárku. Uložte a zavřete soubor. Poté restartujte server Shadowsocks.

sudo systemctl restart shadowsocks-libev

Zkontrolujte, zda běží. (Chyba v konfiguračním souboru může zabránit restartování.)

systemctl status shadowsocks-libev

Musíte také upravit konfigurační soubor klienta Shadowsocks a restartovat jej, abyste povolili rychlé otevření TCP na ploše Ubuntu.

Povolit TCP BBR

TCP BBR je algoritmus řízení přetížení TCP, který může výrazně zvýšit rychlost připojení. Podívejte se na následující tutoriál.

  • Jak snadno zvýšit výkon sítě Ubuntu povolením TCP BBR

Další použití na Shadowsocks naleznete v příručce.

man shadowsocks-libev

Odstraňování problémů

Tu a tam můj proxy Shadowsocks-libev přestane fungovat a když zkontroluji stav pomocí systemctl, na straně serveru se zobrazí následující chyba .

ERROR: server recv: Connection reset by peer

Na straně klienta chybu vrátil systemctl je:

ERROR: remote_recv_cb_recv: Connection reset by peer

Nevím, proč se to děje, ale restartuji shadowsocks-libev služba na serveru může tento problém vyřešit.

sudo systemctl restart shadowsocks-libev

Nechci službu pokaždé ručně restartovat, takže přidávám úlohu cron, která to za mě pravidelně provádí.

sudo crontab -e

Vložte následující řádek na konec souboru.

0 */3 * * * /bin/systemctl restart shadowsocks-libev

Tím se služba restartuje každé 3 hodiny. To znamená, že restart nastane ve 12:00, 3:00, 6:00, 9:00 a tak dále. Všimněte si, že čas je určen cronem. Není určeno výpočtem, jak dlouho služba běží.

Pokud se v protokolu Shadowsocks-libev zobrazí následující chyba.

ERROR: unable to resolve www.youtube.com

To znamená, že server Shadowsocks-libev nemůže úspěšně vyřešit DNS. Je užitečné zadat server DNS v /etc/shadowsocks-libev/config.json soubor. Stačí do souboru přidat následující řádek a restartovat službu shadowsocks-libev.

"name_server":"1.1.1.1",

Pokud máte svůj vlastní DNS resolver spuštěný na serveru Shadowsocks, můžete jako jmenný server zadat 127.0.0.1.

"name_server":"127.0.0.1",

Pamatujte, že v souboru JSON poslední řádek nekončí čárkou.

A je to! Doufám, že vám tento tutoriál pomohl nainstalovat proxy Shadowsocks-libev na Ubuntu. Jako vždy, pokud pro vás byl tento příspěvek užitečný, přihlaste se k odběru našeho bezplatného zpravodaje a získejte další tipy a triky 🙂


Ubuntu
  1. Jak nastavit Ubuntu/Debian LAMP Server

  2. Jak nastavit Nginx jako reverzní proxy na Ubuntu 20.04

  3. Jak nainstalovat Ansible na Ubuntu Server 21.04

  1. Jak nastavit a používat NGINX jako reverzní proxy

  2. Jak nastavit WireGuard na Ubuntu 22.04

  3. Jak nastavit TeamSpeak Server na Ubuntu 16.04

  1. Jak nastavit a nainstalovat Squid Proxy Server na Ubuntu 18.04

  2. Jak nainstalovat webový server Nginx na Ubuntu 18.04

  3. Jak nastavit server OpenVPN na Ubuntu 18.04