Ako nastaviť proxy server Shadowsocks-libev na CentOS
Tento tutoriál vám ukáže, ako nastaviť proxy server Shadowsocks na CentOS. Shadowsocks je ľahký, rýchly a bezpečný proxy server Socks5 na obídenie internetovej cenzúry. Naučíme sa, ako nastaviť serverovú stranu a ako nakonfigurovať desktopového klienta na CentOS. Existuje mnoho implementácií Shadowsocks, tento tutoriál vám ukáže, ako používať Shadowsocks-libev, pretože
- Je napísaný v C, veľmi rýchly aj na low-end boxe.
- Dobre sa udržiava.
- Je to implementácia s najbohatšími funkciami. Podporované sú rýchle otvorenie TCP, viacpoužívateľské rozhranie API, režim presmerovania, režim tunela, prenos UDP, šifry AEAD a doplnky.
Predpoklady
Na dokončenie tohto návodu budete potrebovať:
- VPS (virtuálny súkromný server). Odporúčam Vultr. Ponúkajú 512 miliónov pamäťových vysokovýkonných VPS len za 2,5 $mesačne, čo je ideálne pre váš súkromný proxy server.
- Potom nainštalujte CentOS do svojho VPS.
Aktualizácia: Nový plán Vultr 2,5 $/mesiac zahŕňa iba adresu IPv6. V dátovom centre v New Yorku (NJ) si môžete vybrať plán 3,5 USD/mesiac, aby ste mali adresy IPv4 aj IPv6.
Krok 1: Nainštalujte server Shadowsocks-libev na CentOS
SSH na váš vzdialený server CentOS. Shadowsocks-libev nie je súčasťou úložiska CentOS. Odporúča sa nainštalovať ho z obchodu Snap. Ak chcete nainštalovať softvér z obchodu Snap, musíme nainštalovať démona snapd.
sudo dnf install -y epel-release
sudo dnf update -y
sudo dnf install -y snapd
Spustite a povoľte službu snapd systemd:
sudo systemctl start snapd.service
sudo systemctl enable snapd.servicePotom nainštalujte Shadowsocks-libev.
sudo snap install shadowsocks-libevPo nainštalovaní môžete spustiť nasledujúci príkaz, ktorý zobrazí podrobné informácie o snape shadowsocks-libev.
snap info shadowsocks-libevAko vidíte, k dispozícii je 5 príkazov. Predtým, ako použijeme príkaz na spustenie servera Shadowsocks-libev, musíme vytvoriť konfiguračný súbor pomocou textového editora príkazového riadka, ako je Nano. Nainštalujte Nano pomocou:
sudo dnf install nanoVytvorte konfiguračný súbor.
sudo nano /var/snap/shadowsocks-libev/common/server-config.jsonDo tohto súboru pridajte nasledujúce riadky.
{
"server":["[::0]", "0.0.0.0"],
"mode":"tcp_and_udp",
"server_port":8888,
"local_port":1080,
"password":"o+4LmywwopNXSUhA7Wf8wg==",
"timeout":60,
"name_server":"8.8.8.8",
"method":"chacha20-ietf-poly1305"
}Kde :
server: zadajte adresu počúvania.[::0]umožňuje počúvať na všetkých dostupných adresách IPv6 a0.0.0.0umožňuje počúvať na všetkých dostupných adresách IPv4.režim: Použite režim TCP aj UDP.server_port: zadajte port, ktorý nepoužíva iný proces na serveri, napríklad 8888.local_port: port 1080 sa bežne používa ako lokálny port pre server SOCKS proxy.heslo: Pomocou tohto príkazu môžete vygenerovať bezpečné náhodné heslo:openssl rand -base64 16.časový limit: 60 sekúnd.name_server: Shadowsocks môžu prinútiť klientov, aby používali špecifikovaný server DNS ako8.8.8.8. Môžete ho tiež zmeniť na1.1.1.1, takže klienti budú používať server DNS Cloudflare.metóda: špecifikujte šifrovací algoritmus.chacha20-ietf-poly1305je veľmi rýchly bezpečný algoritmus.
Uložte a zatvorte súbor. (Ak chcete uložiť súbor v textovom editore Nano, stlačte Ctrl+O a potom potvrďte stlačením Enter. Ak chcete ukončiť, stlačte Ctrl+X. )
Krok 2: Spustite server Shadowsocks-libev ako službu Systemd
Server Shadowsocks-libev môžeme spustiť manuálne, ale je pohodlnejšie vytvoriť preň servisnú jednotku systemd, aby sa mohol automaticky spustiť pri zavádzaní. Na vytvorenie služby systemd použite textový editor Nano.
sudo nano /etc/systemd/system/shadowsocks-libev.service
Do tohto súboru pridajte nasledujúce riadky.
[Unit]
Description=Shadowsocks-Libev Server
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/snap run shadowsocks-libev.ss-server -c /var/snap/shadowsocks-libev/common/server-config.json
Restart=always
RestartSec=2
[Install]
WantedBy=multi-user.target
Uložte a zatvorte súbor. Potom spustite službu shadowsocks-libev.
sudo systemctl start shadowsocks-libev.servicePovoliť automatické spustenie pri štarte.
sudo systemctl enable shadowsocks-libev.serviceSkontrolujte jej stav. Uistite sa, že beží.
systemctl status shadowsocks-libev.serviceAk ste urobili chybu v súbore služby shadowsocks-libev systemd, opravte ju a znova načítajte systemd.
sudo systemctl daemon-reloadPotom môžete reštartovať službu shadowsocks-libev.
sudo systemctl restart shadowsocks-libev.serviceAk sa zobrazí nasledujúca 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.Túto chybu môžete opraviť inštaláciou rng-tools.
sudo dnf install rng-toolsPotom bežte
sudo rngd -r /dev/urandom
Teraz môžete spustiť službu Shadowsocks-libev.
Krok 3: Nakonfigurujte bránu firewall
Musíte povoliť prevádzku na portoch TCP a UDP, na ktorých Shadowsocks počúva. Ak napríklad Shadowsocks používa port 8888, spustite nasledujúci príkaz:
sudo firewall-cmd --permanent --add-port=8888/tcp
sudo firewall-cmd --permanent --add-port=8888/udpPotom znova načítajte firewall, aby sa zmena prejavila.
sudo systemctl reload firewalldKrok 3: Nainštalujte a nakonfigurujte klienta Shadowsocks-libev
Pracovná plocha CentOS
Balík shadowsocks-libev obsahuje serverový aj klientsky softvér. Binárny súbor klienta Shadowsocks má názov ss-local. Rovnakým spôsobom ho nainštalujte na pracovnú plochu CentOS.
Najprv nainštalujte démona snapd.
sudo dnf install -y epel-release
sudo dnf update -y
sudo dnf install -y snapdSpustite a povoľte službu snapd systemd:
sudo systemctl start snapd.service
sudo systemctl enable snapd.servicePotom nainštalujte Shadowsocks-libev z obchodu Snap.
sudo snap install shadowsocks-libevPred spustením klienta musíme vytvoriť konfiguračný súbor na strane klienta pomocou textového editora príkazového riadka, ako je Nano. Nainštalujte Nano pomocou:
sudo dnf install nanoVytvorte konfiguračný súbor klienta.
sudo nano /var/snap/shadowsocks-libev/common/client-config.jsonDo tohto súboru pridajte nasledujúce riadky.
{
"server":"your-server-ip-address",
"mode":"tcp_and_udp",
"server_port":8888,
"local_address":"127.0.0.1",
"local_port":1080,
"password":"o+4LmywwopNXSUhA7Wf8wg==",
"timeout":60,
"name_server":"8.8.8.8",
"method":"chacha20-ietf-poly1305"
}Kde :
server: zadajte IP adresu vášho servera.režim: Použite režim TCP aj UDP.server_port: zadajte port, na ktorom server Shadowsocks-libev počúva.local_address: Klient by mal počúvať na localhost.local_port: port 1080 sa bežne používa ako lokálny port pre server SOCKS proxy.heslo: Použite rovnaké heslo ako v konfiguračnom súbore servera.časový limit: 60 sekúnd.name_server: Klient nemusí zadať názvový server, ale ak použijete parametername_server, musíte použiť rovnaký názvový server ako v konfiguračnom súbore servera.metóda: špecifikujte šifrovací algoritmus.chacha20-ietf-poly1305je veľmi rýchly bezpečný algoritmus.
Uložte a zatvorte súbor. (Ak chcete uložiť súbor v textovom editore Nano, stlačte Ctrl+O a potom potvrďte stlačením Enter. Ak chcete ukončiť, stlačte Ctrl+X. )
Potom musíme pre klienta vytvoriť jednotku systemd service unit, aby sa mohla automaticky spustiť v čase zavádzania.
sudo nano /etc/systemd/system/shadowsocks-client.serviceDo tohto súboru pridajte nasledujúce riadky.
[Unit]
Description=Shadowsocks-Libev Client
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/snap run shadowsocks-libev.ss-local -c /var/snap/shadowsocks-libev/common/client-config.json
Restart=always
RestartSec=2
[Install]
WantedBy=multi-user.target
Uložte a zatvorte súbor. Potom spustite shadowsocks-client.service.
sudo systemctl start shadowsocks-client.servicePovoliť automatické spustenie pri štarte.
sudo systemctl enable shadowsocks-client.serviceSkontrolujte jej stav. Uistite sa, že beží.
systemctl status shadowsocks-client.serviceTeraz klientsky proces Shadowsocks počúva na 127.0.0.1:1080 na vašej pracovnej ploche CentOS a je pripojený k vášmu serveru Shadowsocks.
Tipy na riešenie problémov
Ak sa klientsky proces Shadowsocks nespustí, môžete skontrolovať protokoly a zistiť, čo je zlé.
sudo journalctl -eu shadowsocks-clientV protokole som mal napríklad nasledujúcu chybu.
ERROR: 2:0: Unexpected `m` in objectUkázalo sa, že som zabudol zabaliť IP adresu servera do dvojitých úvodzoviek v konfiguračnom súbore klienta.
Pracovná plocha systému Windows
Používatelia systému Windows si môžu stiahnuť tohto klienta Shadowsocks. Po nainštalovaní môžete do klientskeho softvéru pridať nový server. Zadajte IP adresu servera, port a heslo. Kliknite na tlačidlo Použiť
Ak máte niekoľko proxy serverov, môžete kliknúť na tlačidlo Pridať a pridať ďalšie proxy servery. Upozorňujeme, že naraz používate iba jeden proxy server.
Krok 4: Nakonfigurujte webový prehliadač na používanie Socks Proxy
Aby váš program používal Socks proxy, program musí podporovať Socks proxy. Programy ako Firefox, Google Chrome a Dropbox umožňujú používateľom používať proxy. Ukážem vám, ako nakonfigurovať Firefox a Google Chrome.
Firefox
Vo Firefoxe prejdite na Upraviť > Predvoľby > Všeobecné (alebo Nástroje -> Možnosti > -> Všeobecné). Potom prejdite nadol a kliknite na položku Nastavenia v časti Proxy siete. V okne Nastavenia pripojenia vyberte možnosť manuálna konfigurácia servera proxy. Potom vyberte SOCKS v5, pretože Shadowsocks je proxy server Socks5. Zadajte 127.0.0.1 do poľa SOCKS Host a 1080 do poľa portu. Uistite sa, že je povolený Proxy DNS pri používaní SOCKS v5. Kliknutím na tlačidlo OK použijete tieto úpravy.
Teraz sa Firefox pripojí k lokálnemu klientovi Shadowsocks, ktorý počúva na 127.0.0.1:1080, potom bude prevádzka smerovaná cez server Shadowsocks-libev.
Google Chrome
Aj keď môžete nakonfigurovať proxy pre prehliadač Google Chrome a Chromium z príkazového riadku, na správu serverov proxy vám odporúčam nainštalovať rozšírenie Proxy SwitchyOmega.
Po nainštalovaní rozšírenia do prehliadača Google Chrome nakonfigurujte server proxy takto:
- Vyberte protokol
SOCKS5. - Nastavte
127.0.0.1ako adresu servera. - Nastavte
1080ako číslo portu.
Použiť zmeny. Potom kliknite na ikonu rozšírenia v pravom hornom rohu a kliknite na Proxy SwithyOmega.
V predvolenom nastavení používa SwithyOmega nastavenia proxy operačného systému. Musíme ho zmeniť z systém proxy na proxy.
Teraz sa Google Chrome pripojí k miestnemu klientovi Shadowsocks, ktorý počúva na 127.0.0.1:1080, potom bude prenos smerovaný cez server Shadowsocks-libev.
Krok 5: Test úniku DNS
Prejdite na stránku dnsleaktest.com. Uvidíte IP adresu servera Shadowsocks, čo znamená, že váš proxy server funguje.
Kliknite na Štandardný test. Uistite sa, že váš miestny ISP nie je vo výsledkoch testu.
Povoliť rýchle otvorenie TCP
Shadowsocks môžete urýchliť povolením rýchleho otvorenia TCP. TCP je protokol orientovaný na spojenie, čo znamená, že údaje je možné vymieňať až po nadviazaní spojenia, ktoré sa vykonáva prostredníctvom trojstranného podávania rúk. Inými slovami, údaje sa tradične dajú vymieňať až po dokončení trojstranného podávania rúk. TCP fast open (TFO) je mechanizmus, ktorý umožňuje výmenu dát pred dokončením trojstranného nadviazania spojenia, čím sa ušetrí až 1 spiatočný čas (RTT).
Podpora rýchleho otvorenia TCP je zlúčená s jadrom Linuxu od verzie 3.7 a štandardne povolená od verzie 3.13. Verziu jadra môžete skontrolovať spustením:
uname -rAk chcete skontrolovať konfiguráciu rýchleho otvorenia TCP na serveri CentOS, spustite
cat /proc/sys/net/ipv4/tcp_fastopenMôže vrátiť 4 hodnoty.
- 0 znamená vypnuté.
- 1 znamená, že je povolené pre odchádzajúce pripojenie (ako klient).
- 2 znamená, že je povolené pre prichádzajúce pripojenie (ako server).
- 3 znamená, že je povolené pre odchádzajúce aj prichádzajúce pripojenie.
Všetky moje CentOS VPS (Virtual Private Server) vrátili 1 po spustení vyššie uvedeného príkazu. Na našom serveri chceme nastaviť tcp_fastopen na 3. Aby sme to dosiahli, môžeme upraviť konfiguračný súbor sysctl.
sudo nano /etc/sysctl.confPotom vložte nasledujúci riadok na koniec súboru.
net.ipv4.tcp_fastopen=3Znova načítajte nastavenia sysctl, aby sa zmena prejavila.
sudo sysctl -pPotom budete tiež musieť povoliť rýchle otváranie TCP v konfiguračnom súbore servera Shadowsocks.
sudo nano /var/snap/shadowsocks-libev/common/server-config.jsonPridajte nasledujúci riadok.
"fast_open": trueTakže váš konfiguračný súbor servera Shadowsocks bude vyzerať takto:
{
"server":["[::0]", "0.0.0.0"],
"mode":"tcp_and_udp",
"server_port":8888,
"local_port":1080,
"password":"o+4LmywwopNXSUhA7Wf8wg==",
"timeout":60,
"name_server":"8.8.8.8",
"method":"chacha20-ietf-poly1305",
"fast_open": true
}Všimnite si, že posledný konfiguračný riadok nekončí čiarkou. Všetky ostatné riadky v bloku {...} by mali končiť čiarkou. Uložte a zatvorte súbor. Potom reštartujte server Shadowsocks.
sudo systemctl restart shadowsocks-libev.serviceSkontrolujte, či beží. (Chyba v konfiguračnom súbore môže zabrániť jeho reštartovaniu.)
systemctl status shadowsocks-libevMusíte tiež upraviť konfiguračný súbor klienta Shadowsocks a reštartovať ho, aby ste umožnili rýchle otvorenie TCP na pracovnej ploche CentOS.
Povoliť TCP BBR
TCP BBR je algoritmus riadenia preťaženia TCP, ktorý môže výrazne zvýšiť rýchlosť pripojenia. Ak ho chcete povoliť na serveri CentOS, upravte súbor /etc/sysctl.conf.
sudo nano /etc/sysctl.confNa koniec súboru pridajte nasledujúce dva riadky.
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbrUložte a zatvorte súbor. Potom znova načítajte konfigurácie sysctl.
sudo sysctl -pTeraz skontrolujte používaný algoritmus kontroly preťaženia.
sysctl net.ipv4.tcp_congestion_controlVýkon :
net.ipv4.tcp_congestion_control = bbrGratulujem! Úspešne ste povolili TCP BBR na serveri CentOS.
Zabaliť sa
To je všetko! Dúfam, že vám tento návod pomohol nainštalovať proxy server Shadowsocks-libev na CentOS. Ako vždy, ak ste považovali tento príspevok za užitočný, prihláste sa na odber nášho bezplatného bulletinu a získajte ďalšie tipy a triky 🙂
Shadowsocks je priamy proxy. Chcete vedieť, čo je forward proxy? Prečítajte si prosím nasledujúci článok:
- Rozdiely medzi dopredným proxy a spätným proxy










