Vytvořeno: 2026/06/30 13:24:48 America/Chicago
Od: admin

Co tato příručka instaluje

Tato příručka nainstaluje Verlihub od oficiálního Verlihub/verlihub zdrojový strom na serveru Ubuntu. Kompiluje NMDC hub server s CMake, ukládá data hubu pod /var/lib/verlihub, používá MariaDB pro tabulky hubů a spouští hub prostřednictvím služby systemd.

Pokud chcete izolaci kontejnerů, použijte článek Docker. Tento článek Ubuntu použijte, pokud by měl rozbočovač běžet přímo na VPS, dedikovaném serveru nebo holém počítači.

Plán serveru před instalací

  • Vyberte veřejný název DNS pro hub, jako např hub.example.org.
  • Vyberte port NMDC. Přístav 411/tcp je tradiční. Verlihub jej může bezpečně svázat přes systemd bez spuštění jako root. Přístav 4111/tcp je jednodušší alternativou, když nepotřebujete historický přístav.
  • Rozhodněte, zda tato první instalace bude pouze obyčejná NMDC. Přidejte NMDCS poté, co bude prostý náboj stabilní.
  • Ponechte si jeden účet Linux pro službu: verlihub.
  • Udržujte jednu databázi MariaDB a uživatele: verlihub.
  • Před spuštěním průvodce si zapište přezdívku a heslo hlavního centra.

Nainstalujte balíčky Ubuntu

Oficiální seznam poznámek k instalaci GCC, CMake, MySQL klientských knihoven, OpenSSL, ICU, Make, ZLib, PCRE, GetText, MaxMindDB, LibIntl, vlákna, dynamické načítání, Lua a Dialog. Na Ubuntu nejprve nainstalujte odpovídající balíčky.

 sudo apt update
sudo apt install -y \
    build-essential \
    ca-certificates \
    cmake \
    default-libmysqlclient-dev \
    default-mysql-client \
    dialog \
    gettext \
    git \
    libasprintf-dev \
    libicu-dev \
    liblua5.2-dev \
    libmaxminddb-dev \
    libpcre3-dev \
    libssl-dev \
    make \
    mariadb-server \
    pkg-config \
    zlib1g-dev 

Spusťte MariaDB a ujistěte se, že se po restartu vrátí.

 sudo systemctl enable --now mariadb
sudo systemctl status mariadb 

Vytvořte uživatele Verlihub Linux

Spusťte Verlihub jako jeho vlastní neprivilegovaný uživatel. Nespouštějte rozbočovač jako root.

 sudo adduser --system --group --home /var/lib/verlihub --shell /bin/bash verlihub
sudo install -d -o verlihub -g verlihub /var/lib/verlihub
sudo install -d -o verlihub -g verlihub /var/log/verlihub 

The verlihub uživatel by měl vlastnit pouze soubory runtime. Udržujte zdrojové soubory pod /usr/local/src/verlihub, ponechat binární soubory pod /usr/local a správu databáze ponechat pod MariaDB. Účet služby potřebuje přístup pro zápis /var/lib/verlihub a /var/log/verlihub; nepotřebuje přístup sudo.

Použití sudo jako správce serveru nainstalujte balíčky, zkompilujte binární soubor a vytvořte jednotku systemd. Spusťte samotný proces hubu jako verlihub. Toto rozdělení je důležité, protože rozbočovač přijímá nedůvěryhodný veřejný provoz od klientů DC++.

Vytvořte databázi MariaDB

Před spuštěním vytvořte databázi a uživatele vh --install. Místo vzorové hodnoty použijte skutečné heslo.

 sudo mariadb 
 CREATE DATABASE verlihub CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'verlihub'@'localhost' IDENTIFIED BY 'change-this-password';
GRANT ALL PRIVILEGES ON verlihub.* TO 'verlihub'@'localhost';
FLUSH PRIVILEGES;
EXIT; 

Zkontrolujte, zda se uživatel aplikace může přihlásit.

 mariadb -u verlihub -p verlihub 

Stáhněte si zdroj Verlihub

Sestavte z oficiálního úložiště GitHub. Udržujte zdrojové soubory pod /usr/local/src takže strom sestavení je oddělený od dat za běhu centra.

 sudo install -d -o "$USER" -g "$USER" /usr/local/src/verlihub
git clone https://github.com/Verlihub/verlihub.git /usr/local/src/verlihub
cd /usr/local/src/verlihub 

Pokud potřebujete konkrétní vydání nebo potvrzení, zkontrolujte je před sestavením. Pro první instalaci vytvořte aktuální upstream větev po přečtení poznámek k úložišti.

Kompilace a instalace Verlihub

Upstream instalační cesta používá mkdir build, cmake .., make, make install a ldconfig. Níže uvedený příkaz nainstaluje Verlihub pod /usr/local.

 mkdir -p build
cd build
cmake .. \
    -DCMAKE_INSTALL_PREFIX=/usr/local \
    -DUSE_TLS_PROXY=OFF \
    -DUSE_FEARTLS_PROXY=OFF
make -j"$(nproc)"
sudo make install
sudo ldconfig 

Při prvním spuštění ponechte možnosti proxy TLS vypnuté, pokud již nemáte závislost proxy, certifikáty, pravidla brány firewall a testovacího klienta připraveného pro NMDCS.

Spusťte vh --install

The vh helper zapíše konfiguraci Verlihub, vytvoří nebo aktualizuje tabulky hubu a uloží první nastavení hubu. Spusťte jej jako verlihub Linux uživatelem takto vygenerované soubory patří k servisnímu účtu.

 sudo -iu verlihub
vh --install 
Pole čarodějePoužijte tuto hodnotuDůvod
Konfigurační složka /var/lib/verlihub Ve vlastnictví společnosti verlihub uživatel služby.
Hostitel databáze localhost MariaDB běží na stejném serveru Ubuntu.
Název databáze verlihub Odpovídá databázi vytvořené výše.
Uživatel databáze verlihub Odpovídá výše vytvořenému uživateli MariaDB.
Heslo databázeVaše heslo MariaDBUmožňuje Verlihub číst a zapisovat tabulky rozbočovačů.
Adresa hubuVaše veřejné jméno DNSToto je adresa klientů a hublists by měla být zveřejněna.
Hub port 411, 4111 nebo vámi zvolený portMusí odpovídat systemd, pravidlům brány firewall a směrovače.
Hlavní uživatelPřezdívka vašeho operátoraVytvoří první účet s přístupem pro správu centra.

Pokud vás průvodce požádá o pověření správce MariaDB, použijte místní účet správce MariaDB. U mnoha instalací Ubuntu to znamená spuštění administrace databáze sudo mariadb namísto přihlášení root na základě hesla.

Otestujte Hub V Popředí

Před vytvořením systemd spusťte hub jednou z terminálu a sledujte výstup.

 vh --run /var/lib/verlihub 

Otevřete druhý terminál a otestujte port z jiného počítače, pokud je to možné. Zastavte proces v popředí pomocí Ctrl+C po čistém startu náboje.

Spusťte Port 411 bez sudo

Linux normálně rezervuje porty níže 1024 pro privilegované procesy. Neřešte to tím, že začnete Verlihub s sudo vh --run. Poskytněte službě pouze schopnost vazby, kterou potřebuje.

Jednotka systemd níže používá AmbientCapabilities=CAP_NET_BIND_SERVICE a CapabilityBoundingSet=CAP_NET_BIND_SERVICE. To umožňuje verlihub uživatelská vazba 411/tcp zatímco proces stále běží bez oprávnění root. Pokud použijete 4111/tcp, můžete tyto dva řádky schopností odstranit.

Vyhněte se globálnímu sysctl net.ipv4.ip_unprivileged_port_start=0 pro tuto práci. Mění zásady nízkého portu pro každý proces na serveru. Vyhněte se setcap na binární soubor Verlihub, pokud nemáte plnou kontrolu nad upgrady, protože instalace balíčku nebo zdroje mohou nahradit soubor a zrušit funkci.

Vytvořte službu systemd

Vytvořte soubor služby tak, aby se Ubuntu spustil Verlihub po spuštění, restartoval jej po zhroucení a aby byl uživatel běhového prostředí omezen na soubory rozbočovače.

 sudo tee /etc/systemd/system/verlihub.service >/dev/null <<'EOF'
[Unit]
Description=Verlihub NMDC hub server
After=network-online.target mariadb.service
Wants=network-online.target

[Service]
Type=simple
User=verlihub
Group=verlihub
WorkingDirectory=/var/lib/verlihub
ExecStart=/usr/local/bin/vh --run /var/lib/verlihub
AmbientCapabilities=CAP_NET_BIND_SERVICE
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=full
ProtectHome=true
ReadWritePaths=/var/lib/verlihub /var/log/verlihub
Restart=on-failure
RestartSec=5
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF 
 sudo systemctl daemon-reload
sudo systemctl enable --now verlihub
sudo systemctl status verlihub
journalctl -u verlihub -f 

Otevřete Hub Port

Pokud je povoleno UFW, otevřete port rozbočovače, který jste nakonfigurovali. Zkontrolujte také panel brány firewall u poskytovatele VPS.

 sudo ufw allow 411/tcp comment 'Verlihub NMDC'
# Or, if you configured 4111 instead:
sudo ufw allow 4111/tcp comment 'Verlihub NMDC alternate'
sudo ufw status numbered 

V případě domácího serveru přepošlete stejný port TCP na routeru do počítače Ubuntu. Pro NMDCS přidejte zabezpečený port až poté, co je TLS nakonfigurován a otestován.

Ověřte instalaci

KontrolaPříkazCo hledat
Stav služby systemctl status verlihub active (running).
Protokoly rozbočovače journalctl -u verlihub -n 100 Žádné chyby přihlášení k databázi nebo chyby vazby portů.
Stav centra sudo -iu verlihub vh --status /var/lib/verlihub Pomocník může číst konfiguraci hubu.
Uživatel služby systemctl show verlihub -p User -p Group -p NoNewPrivileges Služba hlásí User=verlihub a NoNewPrivileges=yes.
Schopnost nízkého portu systemctl show verlihub -p AmbientCapabilities -p CapabilityBoundingSet CAP_NET_BIND_SERVICE je přítomen, když hub naslouchá 411/tcp.
Hub port ss -ltnp | grep -E ':411|:4111' Naslouchající soket TCP na nakonfigurovaném portu.
Zálohování databáze mariadb-dump -u verlihub -p verlihub > verlihub.sql Před změnou zásuvných modulů nebo upgradem existuje soubor výpisu.

Hostingová etiketa pro veřejné centrum

  • Zveřejněte jednu dostupnou adresu. Použijte název DNS a port, které by si klienti měli ponechat v oblíbených a hublists. Neodesílejte dočasné IP adresy, mrtvá přesměrování nebo několik názvů pro stejný hub, pokud neobsluhují různé protokoly.
  • Udržujte MOTD užitečné. Uveďte adresu hubu, zabezpečenou adresu, je-li k dispozici, pravidla, příkaz k registraci, kontakt na operátora a web podpory. Uživatelé by neměli hádat, jak se zaregistrovat nebo kdo vlastní hub.
  • Nefalšujte statistiky hubu. Veřejné hublists fungují nejlépe, když uživatelé, sdílení, protokol, software a téma odpovídají skutečnému stavu centra.
  • Udržujte protokoly soukromé a otočené. Protokoly slouží k řešení zneužití a řešení problémů. Na veřejných stránkách nezveřejňujte uživatelské IP adresy, soukromé zprávy ani registrační údaje. Nakonfigurujte rotaci protokolu před prvním rušným týdnem.
  • Opravte hostitele. Aplikujte aktualizace zabezpečení Ubuntu, udržujte podporu MariaDB a otestujte upgrady Verlihub na kopii databáze před nahrazením produkčních binárních souborů.
  • Omezte exponované porty. Zveřejněte port rozbočovače a jakýkoli testovaný zabezpečený port rozbočovače. Udržujte MariaDB v soukromí. Omezte SSH na administrátorské IP adresy, pokud to váš poskytovatel podporuje.
  • Nastavte jasná pravidla. Uveďte, co je zakázáno, jak operátoři nakládají se spamem nebo nelegálním obsahem a co se stane s roboty, kteří zahlcují vyhledávání nebo chat.
  • Před experimenty zálohujte. Uložit /var/lib/verlihub a databázi MariaDB před změnou zásuvných modulů, skriptů Lua, nastavení národního prostředí nebo oprávnění třídy.

Upgrade A Zálohování Rutina

Zálohujte databázi a /var/lib/verlihub před nahrazením binárních souborů.

 sudo -iu verlihub tar czf /tmp/verlihub-files-$(date +%F).tar.gz /var/lib/verlihub
mariadb-dump -u verlihub -p verlihub > verlihub-db-$(date +%F).sql
cd /usr/local/src/verlihub
git pull
cd build
cmake ..
make -j"$(nproc)"
sudo systemctl stop verlihub
sudo make install
sudo ldconfig
sudo systemctl start verlihub 

Před upgradem produkčního centra si přečtěte poznámky k upstreamové verzi. Pokud se rozložení tabulky změní, otestujte nejprve upgrade na kopii databáze.

Běžné problémy

  • vh --install nelze se připojit k MariaDB. Zkontrolujte název databáze, uživatele, heslo a zda MariaDB naslouchá místně.
  • Služba se spustí a ukončí. Číst journalctl -u verlihub -n 100. Většina selhání při prvním spuštění jsou pověření databáze, chybějící konfigurační soubory nebo již používaný port.
  • Klientům vypršel časový limit. Zkontrolujte UFW, VPS firewall, NAT přesměrování portů a Verlihub naslouchací port.
  • Port 411 selže pro verlihub uživatel. Zkontrolujte řádky schopností systemd a poté spusťte sudo systemctl daemon-reload a sudo systemctl restart verlihub. Nespouštějte hub pomocí sudo.
  • Text chatu je zkomolený. Porovnejte národní prostředí centra, znakovou sadu databáze a kódování klienta používané vaší komunitou.
  • NMDCS zatím není k dispozici. Sestavte a nakonfigurujte podporovanou cestu proxy TLS samostatně. Obyčejný NMDC by měl fungovat před přidáním zabezpečeného přístupu k hubu.