Ich habe kürzlich ein BeagleBone Black erworben, auf dem ich Ubuntu mit dieser Methode installiert habe . Es hat alles soweit geklappt. Ich möchte mein BeagleBone als Torrent-Box verwenden, aber nicht direkt über meine Internetverbindung (ich glaube nicht, dass es meinem ISP gefällt). Deshalb habe ich ein VPN-Abonnement von einem europäischen Server gekauft . Ich habe meinen Laptop zuvor manuell mit diesem VPN verbunden und die Übertragung ausgeführt. Ich weiß, dass die VPN-Verbindung in Ubuntu funktioniert und der Host Setup-Informationen für OpenVPN bereitstellt. Es ist ärgerlich, dass sich die zugewiesene IP-Adresse aufgrund der Dynamik häufig ändert. Wenn ich meinen Laptop mit dem VPN verwende, stelle ich die Empfangsadresse in Transmission manuell auf den erforderlichen Wert ein.
Idealerweise hätte ich gerne das folgende Setup:
- Die Übertragung erfolgt nur über das VPN und es ist verboten, Torrents über die normale WAN-Verbindung auszuführen
- Es wird nur Datenverkehr akzeptiert oder über das VPN gesendet, alle anderen nicht angeforderten Daten werden verworfen
- Die Übertragung verwendet den entsprechenden Port zum Abhören, basierend auf der zugewiesenen IP-Adresse
- OpenVPN startet automatisch beim Booten und startet anschließend die Übertragung
- Auf die Web-GUI von Transmission kann über das LAN und möglicherweise über das Internet von meiner WAN-Verbindung aus zugegriffen werden (dh nicht über das VPN).
quelle
Antworten:
Hinweis: (22.02.2016) Ich habe festgestellt, dass diese Konfiguration DNS-Anfragen über das normale WAN an die Torrent-Tracker weiterleitet, anstatt sie über das VPN zu senden. Ich untersuche, wie ich das beheben kann. Ich werde meine Konfiguration jedoch weiterhin ausführen, da die Verbindung selbst das VPN ordnungsgemäß verwendet.
Update: Mir ist aufgefallen, dass die CPU-Auslastung nach einer Weile auf 100% sinkt, wenn ich Transmission so einstelle, dass sie über Nacht auf den Beaglebone heruntergeladen wird. Es scheint nicht nach der gleichen Zeitspanne zu passieren, manchmal ist es die ganze Nacht über in Ordnung, manchmal tut es sich nach 10 Minuten schwer. Es kann auch wiederhergestellt werden, indem alle Torrents angehalten werden und gewartet wird, bis die CPU-Last wieder normal ist, und dann erneut gestartet wird. Ich recherchiere noch. Eine Problemumgehung könnte darin bestehen, Torrents in regelmäßigen Abständen anzuhalten und fortzusetzen, obwohl dies keine sehr gute Problemumgehung ist. Beachten Sie, dass dieses Problem nur bei Beaglebone und wahrscheinlich auch bei anderen ARM-Geräten auftritt. Ich hatte dieses Problem noch nie bei einer x86-CPU.
Einführung
Ich habe diese Lösung für Ubuntu 14.04 auf einem BeagleBone Black entwickelt und getestet. Der von mir verwendete VPN-Anbieter heißt ibVPN . Es sollte jedoch mit jeder unterstützten Hardware (dh auf einem "normalen" x86-Computer) und mit jedem OpenVPN-kompatiblen VPN-Anbieter funktionieren - und sollte wahrscheinlich für 14.10 oder höher funktionieren. Ich glaube, dass Ubuntu irgendwann SystemD zum Booten verwenden wird, was bedeutet, dass die hier verwendeten Upstart-Skripte migriert werden müssen. Update: Jonas Kalderstam hat unten eine Antwort für die Verwendung von SystemD. Ich gehe auch davon aus, dass ufw als Firewall verwendet wird. Wenn Sie etwas anderes verwenden, müssen die ufw-Befehle hier geändert werden.
Ich gehe davon aus, dass die gesamte Arbeit über eine SSH-Verbindung mit dem System erledigt wird, obwohl es genauso gut funktionieren würde , wenn es in ein physisches Terminal eingegeben würde.
Dies ist ein ziemlich langes Tutorial. Bitte lesen Sie zuerst alles durch und vergewissern Sie sich, dass Sie mit dem, was Sie tun, vertraut sind.
Ich habe auch bemerkt, dass die Übertragung nicht richtig an eine IP-Adresse gebunden ist, um UPnP / NAT-PMP-Daten zu senden - dh Torrent-Daten werden korrekt über das VPN übertragen, aber wenn die UPnP-Portweiterleitung aktiviert ist, fordert die Übertragung die Portweiterleitung vom lokalen Router an , nicht über das VPN vom VPN-Server. Daher habe ich das Upstart-Skript dazu gebracht, die Portweiterleitung zu deaktivieren, da es so aussieht, als hätte es funktioniert, aber nicht. Es sollte möglich sein, iptables und iproute zu verwenden, um den gesamten Datenverkehr vom Debian-Übertragungsbenutzer über das VPN zu erzwingen, aber ich prüfe dies noch. Es sollte auch funktionieren, wenn die Standardroute geändert wurde, um alle Internetdaten über das VPN zu senden, aber ich wollte das nicht, weil ich diesen Server auch für andere Dinge verwende, und dies würde auch dazu führen, dass alle Systemaktualisierungen über das Internet gesendet werden VPN.Diese Frage enthält weitere Informationen, wenn Sie wirklich möchten, dass UPnP über das VPN funktioniert . Update: falk0069 hat unten einen fantastischen Tipp , um UPnP über das VPN zu fördern.
OpenVPN installieren und konfigurieren
Ich würde empfehlen, dass Sie versuchen, Ihre VPN-Verbindung mit Ubuntu zum Laufen zu bringen, bevor Sie versuchen, sie hier zum Laufen zu bringen - dh von einem Desktop aus. Dadurch wird bestätigt, dass Sie die richtige Konfiguration haben, und der Zeitaufwand für das Debuggen wird verringert.
Installieren Sie zunächst die erforderlichen Pakete
Erstellen Sie als Nächstes ein Verzeichnis zum Speichern der Konfigurationsdateien. Ich verwende / opt / ibVPN, da dies der Anbieter ist, den ich verwende. Ändern Sie es nach Belieben.
In diesem neuen Verzeichnis müssen Sie zunächst die Konfigurationsdatei für den VPN-Client erstellen. ibVPN bietet eine grundlegende Konfigurationsdatei für Linux-Benutzer, die ich meistens nur kopiert und eingefügt habe.
Kopieren Sie die bearbeitete Version und fügen Sie sie mit den Einstellungen Ihres VPN-Anbieters in vim ein. (FYI, Einfügen in das Ubuntu-Terminal ist
Ctrl+Shift+V
) Sie sollten dies von Ihrem VPN-Anbieter erhalten können.Wenn Sie mit vim nicht vertraut sind, drücken Sie,
Insert
um Text einzugeben oder einzufügen, und drücken Sie dannEscape
und:wq
, um zu speichern und zu beenden. Natürlich müssen Sie nicht vim verwenden - jeder Texteditor wird funktionieren.Ich werde diese Konfigurationsdatei schnell erklären: Die ersten 18 Zeilen geben die spezifischen Einstellungen an, die mit dem Server verwendet werden sollen. Diese stammen von ibVPN - Ihre Einstellungen unterscheiden sich wahrscheinlich geringfügig, wenn Sie einen anderen Anbieter haben. Die nächsten Zeilen sind geänderte Optionen, die ich angegeben habe.
Wenn Ihre Einstellungsdatei Zeilen mit hatte
auth-user*
, kommentieren Sie diese aus. Damit dieses Setup automatisch funktioniert, muss eine Datei mit dem Benutzernamen und dem Kennwort enthalten sein. Stellen Sie daher sicher, dass das Kennwort, das Sie für den VPN-Anbieter ausgewählt haben, sicher, zufällig und eindeutig ist.Das
auth-user-pass pass
weist OpenVPN an, nach einer Datei zu suchen, die aufgerufen wirdpass
, um den Benutzer und das Kennwort zu lesen.auth-nocache
Entfernt das Kennwort aus dem Speicher. Dies kann die Sicherheit geringfügig erhöhen, wenn Sie sich darüber Sorgen machen.persist-tun
wird versuchen, die gleiche IP-Adresse vom Server zu behalten, wenn Ihre Verbindung ausfällt, was hoffentlich weniger Starten und Stoppen des Transmission-Daemons bedeuten sollte.route-noexec
Weist den OpenVPN-Client an, die vom Server bereitgestellten Routen nicht automatisch zu verwenden. Dadurch wird der gesamte Netzwerkverkehr über das VPN abgerufen. Wir möchten nur Torrent-Verkehr senden, daher müssen wir unterschiedliche Routing-Einstellungen verwenden.lport 1195
Weist den OpenVPN-Client an, Port 1195 anstelle von 1194 zu verwenden. In meinem Fall möchte ich auch einen OpenVPN-Server auf demselben Gerät ausführen, und der Server muss Port 1194 verwenden. Auch wenn Sie keinen OpenVPN-Server ausführen tut nicht weh, diese Änderung vorzunehmen.Ich habe die Leitung
dev tap
in geändertdev tap1
, um zu erzwingen, dass das virtuelle Gerät tap1 ist, anstatt von OpenVPN zugewiesen zu werden, und zwar erneut, weil ein separater OpenVPN-Server ausgeführt wird. Auch wenn Sie keinen VPN-Server betreiben, sollte diese Änderung keine Rolle spielen. Die Firewall-Skripte wurden für die Verwendungtap1
entwickelt. Wenn Sie also lieber ein anderes Gerät verwenden möchten, müssen Sie diese Skripte gegebenenfalls ändern.lladdr 00:FF:11:AA:BB:CC
Weist OpenVPN an, der Tap-Schnittstelle diese MAC-Adresse zuzuweisen, was für iptables-Firewallregeln hilfreich sein kann.route-up
unddown
führen Sie Skripte aus, um Transmission-Daemon nach Bedarf zu starten und zu stoppen. Diese werden hier benötigt, weil sie mit Umgebungsvariablen ausgeführt werden, die Informationen über die Verbindung enthalten, die erforderlich sind, um Transmission an die richtige IP-Adresse und den richtigen Port zu binden.In meinem Fall hatte ich ein Serverzertifikat vom VPN-Anbieter - das sich ebenfalls im selben Verzeichnis wie die Konfigurationsdatei befinden muss.
Kopieren Sie diese und fügen Sie sie ein oder verschieben Sie sie über SCP oder SSHFS.
Wenn Sie kein ibVPN-Konto verwenden, ist Ihr Zertifikat natürlich anders.
Machen wir jetzt die Passwortdatei:
Die erste Zeile muss der vollständige Benutzername sein, die zweite Zeile muss das Passwort sein. Dies muss der einzige Inhalt dieser Datei sein.
Wir müssen auch die Berechtigungen für diese Datei sichern, sonst startet OpenVPN nicht.
Dadurch wird die Datei schreibgeschützt und nur für den Eigentümer (dh kein anderer Benutzer kann sie überhaupt lesen).
Diese Befehle erstellen die Dateien, die beim Start ausgeführt werden sollen, und legen fest, dass sie nur von root ausgeführt werden können.
An diesem Punkt ist es wahrscheinlich eine gute Idee, zu testen, ob die VPN-Verbindung tatsächlich funktioniert. Starten Sie die Verbindung mit:
Es werden Warnungen angezeigt, dass die externen Befehle up und down nicht ausgeführt werden konnten, aber machen Sie sich darüber keine Sorgen. Wenn es funktioniert, werden Sie
Initialization Sequence Completed
auf dem Terminal sehen. Drücken SieControl+C
, um die Verbindung zu beenden. Wenn es nicht funktioniert, müssen Sie nachforschen, warum dies nicht der Fall ist, und es beheben, bevor Sie fortfahren. Ich stellte fest, dass es manchmal ein paar Mal dauerte, bis ich anfing zu arbeiten. Stellen Sie sicher, dass Ihre Kennwortdatei korrekt ist. Im Internet gibt es viele großartige Ressourcen zu OpenVPN. Schauen Sie sich also um.Zu diesem Zeitpunkt ist es wahrscheinlich am einfachsten, Transmission zum Laufen zu bringen. Sobald Sie sicher sind, dass VPN und Übertragung getrennt ausgeführt werden können, können sie kombiniert werden.
Übertragung installieren und konfigurieren
Installieren Sie die erforderlichen Pakete:
Standardmäßig wird die Übertragung beim Booten automatisch ausgeführt. Da wir irgendwann OpenVPN verwenden werden, um die Übertragung zu starten, möchten wir dies deaktivieren. Bearbeiten Sie dazu die Konfigurationsdatei für Transmission-Daemon
Und ändern Sie die folgende Zeile zu lesen:
Jetzt wird die Übertragung beim Booten nicht gestartet.
Erstellen wir nun ein Verzeichnis für die Übertragungseinstellungen und für die heruntergeladenen Torrents. Dies setzt voraus, dass Sie bereits eine Festplatte eingerichtet haben und diese unter / media / arm-disk / eingehängt ist. Aus Sicherheitsgründen wird der Daemon von seinem eigenen Benutzer anstatt als root oder als "Ubuntu" ausgeführt. Ein neuer Benutzer wird vom Installationsprogramm für den Übertragungsdämon "debian-transmission" erstellt. Dieser Benutzer muss den von uns erstellten Ordner besitzen und Lese- und Schreibzugriff auf den Speicherort für die heruntergeladenen Torrents haben.
Jetzt müssen wir nur kurz mit der Übertragung beginnen, damit die von uns benötigte Einstellungsdatei erstellt wird:
Dieser Befehl startet den Transmission-Daemon als Debian-Transmission-Benutzer, weist ihn an, das Verzeichnis / opt / transmission für die Einstellungsdateien zu verwenden und weiterhin im Vordergrund zu laufen. Nach einigen Sekunden drücken, um den Vorgang
Control+C
zu beenden. Wir können jetzt die Einstellungsdatei bearbeiten.Wir müssen jetzt die folgenden Zeilen aus ihren Standardeinstellungen ändern, um zu lesen:
Speichern und beenden (Escape, tippe: wq und drücke Enter)
Die beiden mittleren Änderungen ermöglichen die Verwendung des Verzeichnisses "Incomplete", wodurch die fertigen Torrents von den unfertigen getrennt werden. Das ist nicht unbedingt notwendig, aber ich persönlich finde es äußerst nützlich. Mit der letzten Änderung kann von jedem Computer im LAN auf die Web-GUI zugegriffen werden (vorausgesetzt, Ihr LAN-Subnetz ist 192.168.1.0, ändern Sie dies, falls es anders ist).
Es ist jetzt eine gute Idee, Transmission erneut auszuführen, um zu prüfen, ob es funktioniert und tatsächlich einen Torrent herunterladen kann. Wir werden ein Webbrowser-Fenster verwenden, um auf die GUI zuzugreifen und einen Torrent hinzuzufügen. Lassen Sie uns zunächst den Zugriff auf die Web-GUI über die Firewall vom LAN aus zulassen und dann den Übertragungsdämon erneut ausführen.
Besuchen Sie diese URL in Firefox (oder in einem von Ihnen bevorzugten Browser): http://XXX.XXX.XXX.XXX:9091 , wobei XXX durch die Adresse Ihres Servers im LAN ersetzt wird (z. B. 192.168.1.10). Finden Sie einen Torrent zum Herunterladen, zum Beispiel Big Buck Bunny in 1080p60hz. Dies ist ein kostenloser Kurzfilm, der legal zum kostenlosen Download zur Verfügung steht. Klicken Sie in der Übertragungs-GUI auf die Schaltfläche "Open Torrent" (Torrent öffnen) und fügen Sie diesen Link (oder einen beliebigen anderen Torrent) in das erste Feld ein. Dann drücke "Upload". Wenn die Übertragung korrekt funktioniert, beginnt der Download des Torrents. Wenn dies nicht der Fall ist, müssen Sie herausfinden, warum dies so ist, bevor Sie fortfahren. Im Internet stehen viele Ressourcen zur Verfügung, um den Übertragungsdämon zu verwenden. Es könnte auch sein, dass der von Ihnen gewählte Strom nicht funktioniert. Probieren Sie zuerst einige andere aus.
Sobald der Download abgeschlossen ist, drücken Sie
Control+C
im Terminalfenster, um den Übertragungsdämon zu stoppen.Konfigurieren Sie die Bindungsübertragung an die VPN-Schnittstelle
Jetzt erstellen wir ein Upstart-Skript, mit dem die Übertragung gestartet wird, wenn das VPN bereit ist.
Machen Sie sich keine Sorgen, wenn dies beanstandet wird, sondern nur, um eine Sicherungskopie der Upstart-Datei zu erstellen, falls eine vorhanden ist - möglicherweise nicht. Lassen Sie uns vim öffnen, um das neue zu bearbeiten:
Fügen Sie dies in den Editor ein:
Speichern und schließen Sie vim. (
Escape
, dann tippe:wq
). Wieder offene vim:Und fügen Sie dies ein:
Speichern und schließen Sie vim erneut. (
Escape
, dann tippe:wq
). Endlich:Fügen Sie dies ein:
Diese Skripte weisen Upstart an, auf das Signal "transmission-vpn-up" zu warten. Das Skript "transmission-up.conf" richtet dann die erforderlichen Routing-Regeln ein, um Datenverkehr von der lokalen VPN-Adresse über die VPN-Schnittstelle zu senden, und legt fest, dass die Firewall Datenverkehr vom VPN zum Empfangsport für die Übertragung zulässt. Der Datenverkehr, der von der normalen LAN-Schnittstelle zum Abhörport von Transmission geleitet wird, ist blockiert. Das Skript "transmission-daemon.conf" startet dann transmission-daemon mit den erforderlichen Einstellungen, um es an die VPN-IP-Adresse zu binden. Beachten Sie, dass mit diesem Befehl auch sichergestellt wird, dass UPnP / NAT-PMP deaktiviert ist - siehe meinen Hinweis zur Portweiterleitung oben. Das "nice -15" setzt Transmission auf eine niedrigere Priorität, was ich nützlich fand, wenn ich das BeagleBone mit niedrigerer Spezifikation verwendete - manchmal kann Transmission Ressourcen verschlingen, was das System verlangsamt. Zumindest mit einer niedrigen Priorität können noch wichtigere Systemtasks ausgeführt werden. Das Skript "transmission-down.conf" entfernt die Firewall-Regeln, wenn das VPN gestoppt wird. Es werden drei verschiedene Skripte verwendet, damit der Übertragungsdämon als nichtprivilegierter Benutzer ausgeführt werden kann, die Firewall-Regeln können jedoch als Root ausgeführt werden.
Kehren wir nun zu den OpenVPN-Einstellungen zurück und bearbeiten Sie die Skripte "route-up" und "down", um das Starten und Stoppen unseres Übertragungsskripts auszulösen.
Fügen Sie dies in vim ein:
Dieses Skript sagt Upstart lediglich, dass der Übertragungsdämon gestartet werden soll, und gibt ihm die Informationen, die er zum Anhängen an die VPN-Verbindung benötigt.
Wieder mehr Einfügen:
Dieses Skript ist noch einfacher - es signalisiert, dass der Übertragungsdämon anhält.
Zu diesem Zeitpunkt ist es wahrscheinlich eine gute Idee, sicherzustellen, dass der Besitzer des gesamten VPN-Konfigurationsordners der Root-Benutzer ist. Da diese Skripts als Root ausgeführt werden, kann jeder, der sie ändern kann, alles ausführen, was er als Root-Benutzer möchte.
Dies bedeutet jetzt, dass nur der Root-Benutzer die VPN-Verbindungseinstellungen ändern oder anzeigen kann.
OK, wir sind fast fertig! Lassen Sie uns testen, ob unser Setup bisher funktioniert:
Stellen Sie erneut eine Verbindung zur Web-GUI von Transmission her und setzen Sie den vorhandenen Torrent fort oder fügen Sie einen neuen hinzu. Es sollte heruntergeladen werden können, möglicherweise nach ein paar Minuten Warten auf Gleichaltrige. Ein geschickter Weg, um zu testen, ob es funktioniert oder nicht, ist es, auf iftop zu schauen. Installieren Sie iftop und führen Sie Folgendes aus:
Dieser Bildschirm zeigt alle Verbindungen an, die über das VPN laufen. Wenn Ihr Torrent heruntergeladen wird und das VPN korrekt verwendet, werden hier viele IP-Adressen und Hostnamen angezeigt. Schauen Sie sich auch das iftop für die LAN-Verbindung an:
Hier sollten Sie eine große Menge an Datenverkehr zu einer einzelnen IP-Adresse sehen, da es sich um den VPN-Server handelt, und dann nur minimalen Datenverkehr zu anderen LAN-Geräten - vorausgesetzt, Sie führen keine anderen Dienste auf Ihrem BeagleBone aus.
Sie können bestätigen, dass das VPN funktioniert, indem Sie diese Anweisungen befolgen .
Auf dieser Site können Sie einen Torrent herunterladen, um die IP-Adresse anzuzeigen, die andere Peers für die Verbindung zu Ihnen verwenden. Wenn alles funktioniert, ist dies die VPN-IP-Adresse und nicht Ihre eigene WAN-IP-Adresse.
Wenn Probleme auftreten, können Sie das Upstart-Fehlerprotokoll folgendermaßen anzeigen:
Führen Sie in einem separaten Terminal- / SSH-Fenster den Befehl tail aus, während Sie die VPN-Verbindung wie oben beschrieben starten, und suchen Sie nach Fehlermeldungen. Hoffentlich können Sie das Problem beheben, indem Sie die Fehlermeldungen anzeigen, nicht im Internet stöbern oder einen Kommentar veröffentlichen.
Konfigurieren Sie alles so, dass es automatisch startet
Wenn Sie mit der manuellen Ausgabe des Befehls zum Starten des OpenVPN-Tunnels zufrieden sind oder mit Ihrem eigenen Skript arbeiten möchten, sind Sie fertig. Aber ich wollte, dass es beim Booten startet, also habe ich ein weiteres Upstart-Skript erstellt, um OpenVPN zu starten.
Dies ist das Letzte, was wir einfügen müssen!
Warten Sie nur, bis das System signalisiert, dass das Netzwerk bereit ist, und starten Sie dann den OpenVPN-Tunnel, der wiederum die Übertragung startet. Wenn das System ausgeschaltet ist oder das Netzwerk aus irgendeinem Grund heruntergefahren wird, entfernt Upstart die Firewall-Regeln und schließt den Übertragungsdämon. Einfach! Dies funktioniert auch nach einem Neustart weiter. Jetzt sind Sie bereit.
Verwenden Sie für die Interaktion mit Transmission die Web-GUI wie in der Setup-Phase. Sie können die GUI auch über das Internet zugänglich machen, indem Sie die Portweiterleitung einrichten. Es gibt viele Tutorials, wie man das macht, deshalb werde ich es hier nicht wiederholen.
Um die fertigen Downloads vom BeagleBone zu bekommen, verwende ich NFS. Ich kann Geschwindigkeiten von ca. 8 MB / s erreichen, wenn ich vom BeagleBone über das LAN auf meinen Desktop-Computer kopiere - was für ein so leistungsschwaches Gerät ziemlich gut ist. Ubuntu bietet einige nützliche Informationen zum Einrichten.
quelle
Ich habe gerade mit SystemD gearbeitet, also dachte ich, ich würde teilen. Ich habe alle meine Skripte, Konfigurationen und Zertifikate in demselben Verzeichnis abgelegt, auf das ich mich beziehen werde
/etc/openvpn/myprovider
OpenVPN-Konfiguration
Dies hängt von Ihrem spezifischen VPN ab, aber ein Unterschied zu @ seanlanos Konfiguration besteht darin, dass ich nur ein
route-up
Skript verwende. Die Dinge, die Sie zusätzlich zu Ihrer funktionierenden bereitgestellten Konfiguration benötigen , sind diese Zeilen:Wo Sie das
transmission-route-up.sh
Skript platzieren, wo immer Sie möchten. Beachten Sie das Fehlen einesdown
Skripts. (Mein VPN verwendete bereits ein benutzerdefiniertes Down-Skript, sodass ein Konflikt aufgetreten wäre.)/etc/openvpn/myprovider/transmission-route-up.sh:
Die erste Zeile
printenv
ist wichtig. Platzieren Sie es an einem beliebigen Ort. Es wird später im SystemD-Dienst verwendet. Ich lege es in das gleiche Verzeichnis wie meine VPN-Konfiguration.24328 ersetzen durch den Port, den Ihr Übertragungs-Daemon abhören soll. Ich benutze iptables (mit Debian), so dass Sie diese Zeilen wahrscheinlich durch die UFW-Zeilen aus @ seanlanos Konfiguration ersetzen können.
SystemD VPN-Dienst
Dies ist der Dienst, der das VPN für uns automatisch startet. Stellen Sie sicher, dass der Pfad zu openvpn auf Ihrem Computer korrekt ist und dass der Pfad zur Konfigurationsdatei ebenfalls korrekt ist. Sie müssen full angeben Pfade in SystemD-Diensten .
/etc/systemd/system/my-vpn.service:
Aktivieren Sie den VPN-Dienst mit:
Und teste es mit:
Wenn es gestartet ist / läuft, bist du gut.
SystemD transmission-daemon.service
Dieses Skript benötigt den VPN-Dienst. Wenn der VPN-Dienst ausfällt, fällt auch der Übertragungs-Daemon aus. Dies ist praktisch, wenn der VPN neu gestartet wird und Sie eine neue IP-Adresse erhalten, da die Übertragung dann neu gestartet und gebunden werden muss, was automatisch erfolgen sollte. Beachten Sie, dass wir die Umgebungsvariablen verwenden, die wir in der Tabelle gedruckt haben
route-up
zuvor Skript haben./etc/systemd/system/transmission-daemon.service:
Aktivieren Sie es
Und fang an
Nach dem Neustart sollte alles automatisch starten (in der richtigen Reihenfolge!). Beachten Sie, dass die Verwendung
Type=simple
im VPN-Dienst einige Probleme beim Timing der Skriptreihenfolge verursacht. Daher empfehle ich die Verwendungforking
.Sie können eine tatsächliche IP-Adresse für angeben,
rpc-bind-address
wenn Sie restriktiver sein möchten (dies ist die Web-GUI-Abhöradresse, die nicht Ihre VPN-IP sein sollte). Und wenn Sie die Übertragung mit nice ausführen möchten, ändern Sie einfach dieExecStart
Zeile und ergänzen Sie/usr/bin/nice -n15
den Anfang.Adressänderungen behandeln
Eine Sache, die ich im Laufe der Zeit bemerkt habe, ist, dass, wenn die VPN-Verbindung aus irgendeinem Grund eine neue IP-Adresse erhält, die Übertragung immer noch an die alte Adresse gebunden ist und nicht mehr funktioniert. Und schlicht macht
systemctl restart transmission-daemon.service
es nicht. Es muss ganz aufhören und dann von vorne beginnen.Keine Ahnung warum, aber aus diesem Grund habe ich meiner root crontab (
sudo crontab -e
) die folgenden Zeilen hinzugefügt :quelle
Ich habe bemerkt, dass Sie erwähnt haben, dass die Übertragung für UPnP / NAT-PMP nicht über das VPN erfolgt. Ich habe dies auch bemerkt und einen Patch für die Übertragung erstellt, der die Einstellung bind-address-ipv4 für UPnP berücksichtigt. NAT-PMP ist etwas schwieriger zu implementieren, da Sie das Standard-Gateway festlegen müssen. UPnP wird derzeit hauptsächlich verwendet, es ist also wahrscheinlich gut genug. Ich habe dies als Fehler auf der trac.transmissionbt-Site protokolliert und den Patch bereitgestellt. Hoffentlich wird es in einer zukünftigen Version enthalten sein. https://trac.transmissionbt.com/ticket/5990
Eine weitere Option für den Moment, in dem Sie nicht neu kompilieren möchten, ist das manuelle Ausführen von upnpc aus dem miniupnpc-Paket. Z.B
Dabei ist 10.10.10.51 Ihre VPN-IP und 51515 Ihr angeforderter TCP / UDP-Port.
Ich bin nicht sicher, wie lange die Weiterleitung gültig ist. Sie können auch die Option '-d' verwenden, um Ihren Port beim Trennen der Verbindung zu entfernen. Wenn ich das nicht tue, kann ich denselben Port nicht mehr bekommen, wenn ich mich erneut im VPN anmelde.
Prost
quelle
miniupnpc
! Und hoffentlich wird der Patch zusammengeführt und dieses Problem wird für immer behoben. In der Zwischenzeit werde ich auf jeden Fall versuchen, Ihren praktischen Tipp zu verwenden.