VPS erstellt Offline-Download-Server (nach der Ära der Netzwerkfestplatten)

VPS erstellt Offline-Download-Server (nach der Ära der Netzwerkfestplatten)

Motivation

Aus Lerngründen habe ich einen VPS-Dienst von einem ausländischen Serverhersteller gekauft (ich werde Ihnen nicht sagen, welcher Hersteller es war). Aber auch bei Verwendung als Leiter wird 1 TB Verkehr pro Monat nie aufgebraucht. Ich habe endlich das Gefühl, dass ich genug Nahrung habe und möchte einen Film zum Anschauen finden.
Leider ist die Geschwindigkeit von Baidu Netdisk wirklich rührend. Eine einjährige Baidu Netdisk-Supermitgliedschaft ist extrem teuer, und Baidus Offline-Download ist nicht wirklich offline. Es zieht nur die Dateien auf seinem Server zu Ihnen. Wenn Sie knappe Ressourcen finden möchten, ist Baidu Netdisk nutzlos.

Hey, kann ich VPS verwenden, um meinen eigenen Offline-Download-Server zu erstellen? Auf diese Weise können Sie überschüssige Bandbreitenressourcen nutzen und die Download-Geschwindigkeiten erhöhen, ist das nicht toll? Mit dieser Frage im Kopf begann ich in einer einsamen Nacht mit dem Bau.

Bauprozess

Verteilung der Maschinenkonfiguration: CentOS 6.9
Arbeitsspeicher: 512 MB
CPU: Single-Core Bandbreite: 1000 Mbit/s

Die Konfiguration dieser Maschine ist nicht umfangreich, reicht aber für den Einsatz als Download-Server mehr als aus.

Werkzeugauswahl

Nach einiger Suche habe ich Transmission + vsftpd + nginx + aria2c als Bereitstellungstools ausgewählt.

  • Transmission, Transmission-Daemon: Als Client für Torrents und Magnete und als zentrales Tool für Offline-Downloads.
  • vsftpd: wird zum Erstellen von FTP zum Verwalten von Dateidownloads verwendet (schlechter VPS hat nur 10 GB Festplattenspeicher T_T)
  • nginx: Als statischer Dateiserver wird das leistungsstarke nginx verwendet.
  • aria2c: Ein Multithread-Downloader, der unsere Offlinedateien mit hoher Geschwindigkeit aus der von nginx angezeigten Dateiliste herunterlädt.

Einsatzpraxis

1. Transmission installieren, Konfiguration ändern und Service starten

Installieren Sie Transmission und Transmission-Daemon

$ wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
$ rpm -ivh epel-release-6-8.noarch.rpm
$ yum -y Upgrade
$ yum -y installiere Transmission-Daemon

Ändern Sie die Konfiguration und starten Sie den Übertragungsdienst. Die Datei settings.json unter dem Pfad /var/lib/transmission/.config/transmission ist die Konfigurationsdatei von Transmission. Sie enthält viele Konfigurationen. Wir müssen die folgende Konfiguration ändern, damit wir unsere Übertragung mit einer Remote-Software steuern können.

"RPC-Authentifizierung erforderlich": wahr,
"rpc-enabled": wahr,
"rpc-password": "Passwort für Remote-Aufruf",
"rpc-whitelist-enabled": falsch,
"rpc-username": "Benutzername für Remote-Aufruf",

Starten Sie den Übertragungsdienst

$ sudo Dienst Übertragungs-Daemon starten

Wir können also über http://host_ip:9091 auf den Übertragungsdienst zugreifen. Nach einem Test ist die Geschwindigkeit immer noch gut, mit einer Spitzengeschwindigkeit von 30 MB/s

Darüber hinaus können wir auch Transmission-Remote-GUI installieren, um die Übertragung zu steuern, ohne die Seite besuchen zu müssen. Es kann im App Store unter Linux (Mint) heruntergeladen werden. Die Bedienung ähnelt der UI-Oberfläche von uTorrent:

2. vsftpd erstellt einen FTP-Server

Der Aufbau eines FTP-Servers dient nicht zum Herunterladen von Dateien. Die Geschwindigkeit des Herunterladens von Dateien über FTP ist sehr langsam. Daher besteht die Rolle des FTP-Servers darin, Dateien zu verwalten. Im Allgemeinen handelt es sich dabei um einen Löschvorgang.

Installieren Sie vsftpd

$ yum install -y vsftpd

Wir verwenden Linux-Benutzer zum Anmelden, keine virtuellen Benutzer (da die Installation der Datenbank mühsam ist).
Da vsftpd standardmäßig keinen Root-Login zulässt, müssen wir einen Benutzer hinzufügen

Benutzer hinzufügen

$ Benutzeradd ftpuser
$ passwd ftpuser

Ändern Sie das Home-Verzeichnis von ftpuser in das Download-Verzeichnis von transmission

$ usermod -d /var/lib/transmission/Downloads ftpuser
$ rm -rf /home/ftpuser

Ändern Sie die vsftpd-Konfigurationsdatei (/etc/vsftpd/vsftpd.conf).
Die Konfigurationsdateien lauten wie folgt:

# generieren mit cat vsftpd.conf | grep -v "#"
anonymous_enable=NEIN
local_enable=JA
write_enable=JA
local_umask=022
dirmessage_enable=JA
xferlog_enable=JA
connect_from_port_20=JA
xferlog_std_format=JA
ftpd_banner=Willkommen beim privaten FTP-Dienst.
chroot_list_enable=NEIN
listen_ipv6=JA

pam_service_name=vsftpd
userlist_enable=JA
tcp_wrappers=JA
local_root=/var/lib/transmission/Downloads

Die Konfiguration chroot_list_enable=NO gibt an, dass der Benutzer nicht aus dem Home-Verzeichnis wechseln darf.

Starten Sie vsftpd

sudo-Dienst vsftpd starten

Auf diese Weise können wir FTP verwenden, um die per Übertragung heruntergeladenen Dateien zu verwalten.

3. Erstellen Sie einen statischen Dateiserver mit nginx

Verwenden Sie nginx als statischen Ressourcenserver, um eine Anzeige heruntergeladener Ressourcen bereitzustellen. Im Internet gibt es zahlreiche Tutorials zur Installation von nginx. Als Nachtrag:

Sprechen Sie hauptsächlich über die Konfiguration

Ändern Sie die Nginx-Konfigurationsdatei (/etc/nginx/conf.d/default.conf).

Autoindex aktiviert;
autoindex_exact_size ein;
autoindex_localtime ein;

Server {
  hören Sie 8090;
  hören [::]:8090;
  Servername localhost;

  Zeichensatz UTF-8;
  Standort / {
    Stammverzeichnis /var/lib/transmission/Downloads;
    Index Index.html Index.htm;
  }

Starten Sie den Nginx-Dienst und Sie können die Dateiliste über Port 8090 abrufen.

4. aria2c-Download-Dateien

aria2c wird verwendet, um Dateien vom Server herunterzuladen und auf Ihrem eigenen Computer zu installieren.

Sprechen Sie hauptsächlich darüber, wie Sie das Herunterladen durch Aria2c-Multithreading beschleunigen können

Es gibt mehrere Parameter in aria2c im Zusammenhang mit Multithread-Downloads

Parameter x: --max-connection-per-server=<NUM>, die maximale Anzahl von Verbindungen pro Server, der Standardwert ist 1
Parameter s: --split = <N>, bezieht sich auf die Anzahl der Download-Verbindungen für jede Datei, der Standardwert ist 5, -s ist durch -x begrenzt, wenn s standardmäßig x größer als 5 ist, wird x auch auf s begrenzt

Bei großen Dateien kann eine entsprechende Erhöhung der x- und s-Parameter die Download-Geschwindigkeit verbessern.

Referenzlinks:

So installieren Sie den Transmission BitTorrent-Client unter CentOS 6
FTP-Server unter Linux erstellen

Das könnte Sie auch interessieren:
  • Schritt-für-Schritt-Anleitung zum Erstellen einer gemeinsam genutzten Java-Netzwerkfestplatte
  • Java-Methode zum Abrufen des tatsächlichen Download-Links der Baidu-Netzwerkfestplatte
  • Python-Methode zum Abrufen des Baidu-Netzwerkdatenträger-Extraktionscodes mit einem Klick
  • Codebeispiel für die Verwendung von Nextcloud zum Erstellen einer persönlichen Netzwerkfestplatte unter Linux
  • SpringBoot-Entwicklungsfall: Erstellen einer privaten Cloud-Festplatte
  • So stellen Sie eine Nextcloud-Netzwerkfestplatte mit Docker bereit
  • Beispielcode für die Verwendung von Electron zur Implementierung der Floating-Window-Funktion der Baidu-Netzwerkfestplatte
  • JS implementiert die Funktion zum erzwungenen Herunterladen beliebiger Dateien auf der Baidu-Netzwerkfestplatte
  • So erstellen Sie eine persönliche Netzwerkfestplatte in Java

<<:  MySQL-Lösung zur Datenpaging-Abfrageoptimierung auf Millionenebene

>>:  JavaScript-Entwurfsmuster – Muster der Verantwortungskette

Artikel empfehlen

Vue simuliert die Warenkorb-Abrechnungsfunktion

In diesem Artikelbeispiel wird der spezifische Co...

Zusammenfassung des Wissens über MySql-Speicher-Engines und Indizes

Speicher-Engine Was ist eine Datenbank-Speicher-E...

So aktivieren Sie TLS- und CA-Authentifizierung in Docker

Inhaltsverzeichnis 1. Zertifikat generieren 2. Ak...

So stellen Sie das Crownblog-Projekt mit Docker in der Alibaba Cloud bereit

Front-End-Projektpaketierung Suchen Sie .env.prod...

Implementierungsmethode für die bidirektionale Bindung von Vue-Daten

Inhaltsverzeichnis 1. Einleitung 2. Code-Implemen...

So können Sie lange Vue-Listen schnell laden

Inhaltsverzeichnis Hintergrund Hauptinhalt 1. Kom...

Vue implementiert die Anmeldung per Mobiltelefon-Bestätigungscode

In diesem Artikel wird der spezifische Code von V...

Implementierungsbeispiel für die Nginx-Zugriffskontrolle

Über Nginx, eine leistungsstarke, leichte Webserv...

MySQL 5.7.10 Installations- und Konfigurations-Tutorial unter Windows

MySQL bietet zwei verschiedene Versionen für unte...

Interviewer stellen häufig Fragen zum Lebenszyklus von React

React-Lebenszyklus Zwei Bilder zum besseren Verst...