Hide.me CLI ist ein VPN -Client für die Verwendung mit Eventure Ltd. Hide.me VPN -Dienst basierend auf dem Drahtguard -Protokoll. Zu den Funktionen des Kunden gehören:
Todo:
Sie können dieses Repository klonen und ausführen:
go build -o hide.me
Laden Sie alternativ den neuesten Build aus dem Abschnitt "Releases" herunter.
Quellbaum und binäre Freisetzungen enthalten einfache Installations- und Deinstallationsskripte. Hide.me cli wird im Verzeichnis /opt/hide.me installiert. Abgesehen vom Kopieren von Hide.me -Dateien auf /opt/hide.me sind keine Änderungen am System vorgenommen.
Wenn die systemd -basierte Verteilung erkannt wird, verknüpft die Installationsprogramme eine Vorlageneinheitsdatei, mit der Verbindungen instanziiert werden können.
Sie können das Paket mit dem PKGBuild erstellen, das in Verpackung/Archlinux/(erfordert git clone --recurse-submodules ) oder von https://aur.archlinux.org/packages/hide-client/
Zu bauen:
makepkg && sudo pacman -U hide-client-0.9.1-1-any.pkg.tar.zst
Beachten Sie, dass das Archlinux -Paket die Standardpositionen der installierten Dateien auf /usr/bin/hide.me für die Binary, /etc/hide.me/accessToken.txt für die AccessToken, /usr/share/hide.me/CA.pem ändert, ändert /usr/share/hide.me/CA.pem für das Zertifikat und /usr/lib/systemd/system/hide.me@service für die systemd -Einheit.
WireGuard ist eine der sichersten und einfachsten VPN -Tunnellösungen der Branche. Es ist einfach, so lange einzurichten und zu verwenden, solange kein Drahtgänger über ein unsicheres Medium (z. B. Internet) erforderlich ist. Jede Art von Drahtguard Public Key Exchange ist nicht im Rahmen der Drahtguard -Spezifikation.
Die komplizierte Aufgabe des öffentlichen Key -Austauschs und der geheimen Schlüsselverhandlung über ein unsicheres Medium ist in der Regel abgewickelt von:
Hide.ME -Implementierung von WireGuard -Nutzung HTTPS (TLS) für den Austausch von:
Die Authentifizierung für alle Vorgänge erfordert die Verwendung eines Zugriffs. Ein Zugriff ist nur ein binärer Blob, der kryptografisch mit einem Hellbonb verbunden ist.
Die Verbindung zu einem Hide.me VPN Server wird in diesen Schritten festgelegt:
Im Gegensatz zu vielen anderen Lösungen verwendet Hide.me CLI keine Art von Linux -Firewall -Technologie (Iptables, Nftables oder EBPF). Anstatt sich auf Linux'es IP -Filter -Frameworks zu verlassen, stellt das CLI den Datenverkehr selektiv auf, indem eine spezielle Routing -Tabelle und eine Reihe von Datenbankregeln der Routing -Richtlinien eingerichtet werden. Blackhole -Routen in der oben genannten Routing -Tabelle fallen den gesamten Verkehr fallen, es sei denn, er erfüllt eine der folgenden Bedingungen:
Diese Betriebsart ermöglicht es den Benutzern, ihre eigenen Firewalling -Richtlinien festzulegen, mit denen sich die CLI nicht stört.
Verwendungsanweisungen können gedruckt werden, indem Hide.me cli ohne Parameter ausgeführt wird.
Usage:
./hide.me [options...] <command> [host]
...
Hide.me CLI -Benutzeroberfläche ist recht einfach. Es sind nur drei Befehle verfügbar:
command:
token - request an Access-Token (required for connect)
connect - connect to a vpn server
conf - generate a configuration file to be used with the -c option
categories - fetch and dump filtering category list
service - run in remotely controlled service mode
Um eine Verbindung zu einem VPN-Server herzustellen, muss ein Access-Token von einem VPN-Server angefordert werden. Eine Zugriffsanforderung wird vom Befehl token ausgestellt. Für Authentifizierungszwecke kann ein Access-Token von einem Server mit einem anderen Hide.me VPN-Server verwendet werden. Wenn ein Server ein Zugriff ausgibt, das Token in einer Datei gespeichert werden muss. Standard-Dateiname für einen Access-Token ist "AccessToken.txt".
Sobald ein Access-Token vorhanden ist, kann sie für Verbindungsanforderungen verwendet werden. Stale Access Tokens werden automatisch aktualisiert.
hide.me cli muss nicht unbedingt mit einer Reihe von Befehlszeilenparametern aufgerufen werden. Stattdessen kann eine YAML -formatierte Konfigurationsdatei verwendet werden, um alle Optionen anzugeben. Um eine solche Konfigurationsdatei zu generieren, kann der Befehl Conf verwendet werden.
Für die Zwecke der DNS -Filterung (SmartGuard) kann eine Liste der Filterkategorien mit dem Befehl Kategorien erhalten werden
hide.me cli kann im Service -Modus ausgeführt werden. Wenn Sie im Servicemodus gestartet werden, enthüllt die CLI nur eine REST -Schnittstelle für die Steuerung. Der Controller ist für die Konfiguration von Verbindungen, Aktivierung des Kill-Switch oder einer anderen Operation verantwortlich. Die REST -Schnittstelle -Listen -Adresse ist über -caddr -Option konfigurierbar.
Beachten Sie, dass es einige Optionen gibt, die nur über die Konfigurationsdatei konfigurierbar sind. Solche Optionen sind:
host:
fqdn, short name or an IP address of a hide.me server
Required when the configuration file does not contain it
Der Hostname eines Hide.me -REST -Endpunkts kann als vollständig qualifizierter Domänenname (nl.hide.me), kurzer Name (NL) oder IP -Adresse angegeben werden. Es gibt keine Garantie dafür, dass der Restendpunkt mit einem Drahtguard -Endpunkt übereinstimmt.
-4 Use IPv4 tunneling only
Begrenzen Sie alle IP -Protokolloperationen auf IPv4. Obwohl der Server IPv4- und IPv6 -Adressierung nur IPv4 -Adressen angibt, werden IPv4 -Regeln und IPv4 -Routen installiert. Leckschutz/Kill-Switch funktioniert nur für den IPv4-Verkehr. Der IPv6 -Verkehrsfluss bleibt ungesichert.
WARNUNG : Diese Option verschlechtert die Sicherheit und sollte nur verwendet werden, wenn dies sicher ist. Verwenden Sie es bitte nicht anders, da IPv6 -Lecks auftreten können.
-6 Use IPv6 tunneling only
Begrenzen Sie alle IP -Protokolloperationen auf IPv6. Obwohl der Server IPv4- und IPv6 -Adressierung nur IPv6 -Adressen angibt, werden IPv6 -Regeln und IPv6 -Routen installiert. Leckschutz/Kill-Switch funktioniert nur für den IPv6-Verkehr. Der IPv4 -Verkehrsfluss bleibt ungesichert.
WARNUNG : Diese Option verschlechtert die Sicherheit und sollte nur verwendet werden, es sei denn, der Kunde möchte nur den IPv6 -Verkehr Tunnel tun.
-b filename
resolv.conf backup filename (default "")
Hide.me cli führt eine Sicherung von /etc/resolv.conf im Speicher. Zusätzlich zu diesem Backup kann CLI CLI /etc/resolv.conf in eine von dieser Option angegebene Datei sichern.
-c filename
Configuration filename
Verwenden Sie eine Konfigurationsdatei mit dem Namen "Dateiname".
-ca string
CA certificate bundle (default "CA.pem")
Während der TLS -Verhandlung muss das Zertifikat des VPN -Servers überprüft werden. Diese Option ermöglicht es, eine alternative CA -Zertifikat -Bundle -Datei anzugeben.
-caddr address
Control interface listen address (default "@hide.me")
Legen Sie die Listenadresse der Service -Modus -Steuerschnittstelle ein. Hide.me cli standardmäßig hört auf einem abstrakten Unix Socket aus Hide.me
-ccert certificate
Control interface certificate file
Legen Sie das Zertifikat für Service -Modus -Steuerschnittstellen X509 im PEM -Format ein
-ckey key
Control interface key file
Legen Sie den privaten Schlüssel der Service -Modus -Steuerschnittstelle im PEM -Format fest
-d DNS servers
comma separated list of DNS servers used for client requests (default "209.250.251.37:53,217.182.206.81:53")
Standardmäßig verwendet Hide.me CLI Hide.me betriebene DNS -Server, um VPN -Servernamen bei Anforderung eines Tokens oder während der Verbindungsanforderungen zu beheben. Der Satz von DNS -Servern, die für diese Zwecke verwendet werden, kann mit dieser Option angepasst werden.
-dpd duration
DPD timeout (default 1m0s)
Um festzustellen, ob eine Verbindung zum Stillstand gebracht wurde, prüft es in der Regel aufgrund von Networking -Problemen. Ich überprüft regelmäßig den Verbindungszustand. Die Überprüfungsfrist kann mit dieser Option geändert werden, kann jedoch nicht höher als eine Minute sein.
-i interface
network interface name (default "vpn")
Verwenden Sie diese Option, um den Namen der Netzwerkschnittstelle zu erstellen oder zu verwenden.
-l port
listen port
Geben Sie einen Höranschluss für verschlüsseltes Drahtguard -Verkehr an.
-m mark
firewall mark for wireguard traffic (default 0 - no packet marks)
Stellen Sie die Firewall -Marke ein. Das Kernel -Modul von WireGuard markiert seine Pakete.
-p port
remote port (default 432)
Der Remote -REST -Endpoint -Port kann mit dieser Option geändert werden.
-pf
enable dynamic port-forwarding technologies (uPnP and NAT-PMP)
Die dynamische Portwartung ist standardmäßig deaktiviert. Verwenden Sie diese Option, um sie für einen bestimmten Verbindungsversuch einzuschalten. Alternativ kann das Portwarden durch Hinzufügen eines @PF -Suffix zum Benutzernamen aktiviert werden, wenn Sie ein Token anfordern. Solche Token aktivieren die Portwartung bei jedem Verbindungsversuch, und Sie sollten diese Option bei der Verwendung nicht verwenden.
-r table
routing table to use (default 55555)
Stellen Sie die Routing -Tabelle so ein, dass sie für den allgemeinen Verkehrs- und Leckschutzmechanismus verwendet werden.
-R priority
RPDB rule priority (default 10)
Legen Sie die Priorität der installierten RPDB -Regeln fest. Hide.me CLI nutzt die Richtlinienrouting, indem eine RPDB -Regel (eines pro IP -Protokoll) installiert wird, um den Verkehr zu einer ausgewählten Routing -Tabelle zu steigern und den IP -Leckschutz zu gewährleisten.
-s networks
comma separated list of networks (CIDRs) for which to bypass the VPN
Liste der geteilten Netzwerke, dh den Netzwerken, für die der Verkehr nicht über das VPN abgestimmt werden sollte.
-t string
access token filename (default "accessToken.txt")
Name der Datei, die einen Zugriff enthält.
-u username
hide.me username
Setzen Sie Hide.me Benutzername.
Hide.me CLI unterstützt DNS -basierte Filterung (SmartGuard). Die folgenden Optionen steuern DNS -Filterung:
-forceDns
force tunneled DNS handling on hide.me servers
Aktivieren Sie die DNS -Umleitung auf einem Hide.me VPN -Server so, dass jede UDP- oder TCP -DNS
-whitelist dns names
comma separated list of allowed dns names
DNS -Suffixe, die jeden Filtermotor umgehen (Platzhalter akzeptiert)
-blacklist dns names
comma separated list of filtered dns names
DNS -Namen, die gefiltert werden
-noAds
filter ads
Aktiviert Smartguard -basierte Anzeigenfilterung
-noCategories categories
comma separated list of filtered content categories
Aktiviert die feinkörnige Smartguard-Filterung. Kategorie Liste mit dem Befehl Kategorien abrufen
-noIllegal kind
filter illegal kind (content, warez, spyware, copyright)
Aktiviert die grobe Ebene der Filterung illegaler Inhalte, Warez, Spyware und urheberrechtlich geschütztes Material
-noMalicious
filter malicious destinations
Aktiviert die Filterung böswilliger Hosts, Websites oder Domänen
-noMalware
filter malware
Aktiviert einen Malware -Filter. Alle Site -Hosting oder -verteilungsmalware sollten herausgefiltert werden
-noRisk level
filter content according to risk level (possible, medium, high)
Aktiviert einen Risikofilter
-noTrackers
filter trackers
Aktiviert einen Tracking -Filter
-pg age
apply a parental guidance style age filter (12, 18)
Aktiviert einen filterstil -filter des elterlichen Führungsstils gemäß der angegebenen Altersgrenze. Unangemessener Inhalt wird herausgefiltert
-safeSearch
force safe search with search engines
Erzwingt den Safesearch -Modus mit unterstützten Suchmaschinen (Google, Bing)
Hide.me cli kann eigenständig oder als Systemd -Dienst verwendet werden. Mithilfe von Hide.me CLI als Systemd -Dienst können Sie die Abhängigkeit von Systemds Abhängigkeit, Überwachung und verschiedene Härtungsfunktionen nutzen.
Das Installer -Skript verknüpft eine Vorlagen -Einheit -Datei aus [email protected] für Sie oder Sie können die Vorlageneinheitsdatei manuell verknüpfen, indem Sie ausgeführt werden:
SystemCTL Link hide.me@service
Um Verbindungen zu verwalten, können die folgenden Befehle verwendet werden:
| Betrieb | Befehl |
|---|---|
| Eine Verbindung erstellen | SystemCTL aktivieren hide.me@server |
| Starten Sie eine Verbindung | SystemCTL START HEVEN.ME@SERVER |
| Stoppen Sie eine Verbindung | SystemCtl Stop hide.me@server |
| Eine Verbindung entfernen | SystemCTL Deaktivieren Sie hide.me@server |
Server ist ein Servername, ein Gruppenname oder eine IP -Adresse.
Zusätzliche Befehlszeilenoptionen für den Befehl hide.me connect vom SystemD -Dienst ausgeführt wird, kann in die OPTIONS= Konfigurationsvariable in /opt/hide.me/config eingereicht werden.
Service -Startup wird als erfolgreich angesehen, wenn eine Verbindung zum Hide.me Server vollständig festgelegt wird.
Hide.me cli ist die beste Wahl für Desktop -PCs, kann aber für Router oder eingebettete Geräte unangemessen sein. Für die kleinen Geräte haben wir eine Reihe von Ascheskripten (in den Skripten/ Verzeichnissen) entwickelt:
Im Header jedes Skripts finden Sie Nutzungsbeispiele.
Die Funktionalität dieser Skripte ist grundlegend, dh sie werden Sie miteinander verbunden/getrennt, überwachen aber Ihre Verbindung nicht. Ein solch begrenzter Feature-Set ist möglicherweise gerade ausreichend, um Hide.me mit Routern zu verwenden, die über ihre eigenen Überwachungs- und Ausfalltechniken verfügen.
Jedes Skript wurde auf OpenWRT -basierten Routern mit der neuesten stabilen Firmware (19.07.7) und der Drahtguard -Unterstützung überprüft. Voraussetzungen, die opkg-installiert werden sollten, sind:
Wenn Sie zu diesem Projekt beitragen möchten, lesen Sie bitte den Beitragshandbuch.