Kommandozeilen-Referenz
Alle sxaccess-Befehle und die Optionen, die ihre Hilfe zeigt, gruppiert wie in sxaccess help.
Die Binärdatei sxaccess ist zugleich Kommandozeilenwerkzeug und Agent, also der Hintergrunddienst, der das Gerät verbunden hält. Die meisten Befehle übergeben ihre Arbeit über einen lokalen Socket an den laufenden Agenten; er muss also installiert sein und laufen. Das Installationsskript richtet beides ein. Die CLI läuft unter Linux und macOS; unter Windows, iOS und Android gibt es keine CLI - dort nutzen Sie die App.
sxaccess help teilt die Befehle in drei Gruppen ein: Getting connected, Everyday use und Troubleshooting and support. Die drei Tabellen unten folgen dieser Einteilung. sxaccess <Befehl> --help zeigt die Optionen eines einzelnen Befehls.
Verbindung herstellen
| Befehl | Wirkung |
|---|---|
sxaccess start | Verbindet dieses Gerät und hält es verbunden. Beim ersten Mal meldet es das Gerät an. Siehe start weiter unten |
sxaccess enroll | Meldet dieses Gerät an, ohne es schon zu verbinden. Akzeptiert dieselben Anmeldeoptionen wie start und gibt Enrolled successfully aus |
sxaccess info | Zeigt, ob dieses Gerät verbunden ist und womit. Siehe info weiter unten |
Im Alltag
| Befehl | Wirkung |
|---|---|
sxaccess stop | Trennt dieses Gerät und gibt This device is now disconnected aus. Das Gerät bleibt registriert, und der Agent läuft weiter. Es verbindet sich wieder mit sxaccess start oder von selbst beim nächsten Start des Agenten, etwa nach einem Neustart, sofern --disable-auto-connect nicht gesetzt ist |
sxaccess reach list, add, remove | Legt fest, welche gerouteten Netze dieses Gerät nutzt. Siehe reach weiter unten |
sxaccess ports list | Zeigt die Portweiterleitungsregeln, die für dieses Gerät gelten: jeden lokalen Port und das Gerät samt Port, an das er weiterleitet |
sxaccess shell [user@]host | Öffnet eine SSH-Sitzung zu einem anderen Gerät in Ihrem Netzwerk. Mit sudo ausführen. Das andere Gerät braucht einen eingeschalteten SSH-Server, und eine Zugriffsregel muss TCP 24822 zu ihm erlauben - siehe SSH-Zugriff. -p, --port wählt einen anderen Port (Standard 24822) |
sxaccess identity list, add, remove, use | Wechselt zwischen gespeicherten Anmeldungen auf diesem Gerät. Siehe identity weiter unten |
sxaccess tenant list, current, switch | Verschiebt dieses Gerät zwischen den Organisationen, denen Ihr Konto angehört - siehe Ein Gerät zwischen Organisationen verschieben |
Fehlersuche und Support
| Befehl | Wirkung |
|---|---|
sxaccess diagnose collect, capture, verbosity, keep-map | Logs und Archive für den Support. Siehe diagnose weiter unten |
sxaccess diagnose trace <in|out> <from> <to> | Zeigt, wie der Paketfilter dieses Geräts ein ankommendes (in) oder abgehendes (out) Testpaket behandeln würde; nur in wird gegen die Zugriffsregeln geprüft. self als <from> oder <to> steht für dieses Gerät. -p, --protocol wählt tcp (Standard), udp oder icmp; --sport und --dport legen die Ports fest, ohne Angabe jeweils ein zufälliger Port von 49152 bis 65534; --syn, --ack, --fin, --rst, --psh und --urg setzen TCP-Flags. Siehe Nachvollziehen, warum eine Verbindung blockiert wird |
sxaccess agent install, remove, start, stop, restart, info, reconfigure, serve | Verwaltet den Hintergrund-Agenten und seinen Systemdienst. Siehe agent weiter unten |
sxaccess store list, reset, drop | Zeigt die vom Agenten aufgezeichneten Systemänderungen oder macht sie rückgängig - siehe Was der Agent gespeichert hat |
sxaccess uninstall | Nur macOS, mit sudo ausführen. Entfernt den Agenten, seinen Dienst, seine Einstellungen und seine Logs von diesem Mac, behält aber die Schlüssel, die ihn zum selben Gerät machen: Nach erneuter Anmeldung erscheint wieder das Gerät, das bereits im Dashboard steht. --purge entfernt auch diese Schlüssel, eine erneute Anmeldung legt also ein neues Gerät an - etwa um den Mac in eine andere Organisation zu verschieben. --keep-data behält zusätzlich Einstellungen und Logs, wie bei einer Aktualisierung. Die beiden Optionen lassen sich nicht kombinieren |
sxaccess version | Gibt die installierte Version aus |
start - verbinden
start verbindet dieses Gerät und hält es verbunden. Beim ersten Mal meldet es das Gerät an, im Browser oder, auf einer Maschine ohne Browser, mit einem Registrierungsschlüssel, und das Gerät erscheint im Dashboard. Danach verbindet sich der Agent von selbst wieder, auch nach einem Neustart; meist ist das also ein einmaliger Schritt. Bei Erfolg gibt es This device is now connected aus.
Ist das Gerät bereits verbunden, gibt start This device is already connected aus und ändert nichts: Ein Registrierungsschlüssel und alle übergebenen Einstellungen werden ignoriert. Eine Ausnahme ist die Angabe einer anderen Identität mit --profile: Dann verbindet start das Gerät mit dieser Identität neu. Um eine Einstellung zu ändern, trennen Sie das Gerät und verbinden es mit der Option neu: sxaccess stop && sxaccess start --<Option>. Für --allow-server-ssh sind Root-Rechte nötig; verwenden Sie dafür den Befehl unten. Führen Sie es als eine Zeile aus: Eine Verbindung über SXAccess, etwa eine SSH-Sitzung zu dieser Maschine, bricht ab, bis start fertig ist. In einer Sitzung über sxaccess shell klappt das nicht: Beim Stoppen schließt der Agent diese Sitzung und beendet den Befehl. Nutzen Sie dafür die Konsole oder eine OpenSSH-Sitzung.
Der Agent speichert diese Einstellungen zusammen mit der verwendeten Identität; sie gelten also, bis Sie sie wieder ändern. --block-inbound=false etwa schaltet eine davon wieder ab. Auf einer Maschine, auf der Änderungen an Identitäten abgeschaltet sind, speichert der Agent keine davon, und start verbindet mit den zuvor gespeicherten Einstellungen; siehe agent weiter unten. Solange eine Organisation aktiv ist, die Sie mit sxaccess tenant switch gewählt haben, arbeitet der Agent stattdessen mit deren eigener Konfiguration; diese Einstellungen werden dann zwar gespeichert, aber nicht angewendet. Siehe Ein Gerät zwischen Organisationen verschieben.
Ist der Agent nicht installiert oder läuft er nicht, antwortet start mit cannot reach the SXAccess agent und gibt die zwei Befehle aus, die das beheben. Welcher Fall vorliegt, zeigt sxaccess agent info. Meldet der Befehl Agent service: Stopped, ist der Dienst installiert und muss nur gestartet werden. Meldet er the service is not installed, installieren Sie ihn und starten ihn dann.
sxaccess startsxaccess start --no-browsersxaccess start --enrollment-key-file /run/secrets/sxaccess-keysudo sh -c 'sxaccess stop && sxaccess start --allow-server-ssh'sudo sxaccess agent startsudo sxaccess agent install && sudo sxaccess agent startOptionen für start
--no-browser, --profile und --tenant betreffen die Anmeldung, und enroll akzeptiert sie ebenfalls. Die übrigen sind Einstellungen, die der Agent zusammen mit der Identität speichert. Zwei weitere Optionen steuern die Quantenresistenz, eine experimentelle Funktion, die nur der CLI-Agent bietet; sxaccess start --help nennt sie, und Wie der Verkehr verschlüsselt wird erklärt, was sie bewirken.
| Option | Standard | Zweck |
|---|---|---|
--no-browser | false | Den Anmeldelink ausgeben, statt einen Browser zu öffnen - für eine Maschine, die Sie per SSH erreichen |
--profile <Identität> | die zuletzt verwendete | Die zu verwendende Identität, so wie sxaccess identity list sie nennt |
--tenant <Organisations-ID> | - | Die ID der Organisation, in der das Gerät registriert werden soll, wenn Ihr Konto mehreren angehört. Wird bei einem Registrierungsschlüssel ignoriert: Ein Schlüssel registriert das Gerät immer in seiner eigenen Organisation - siehe Ein Gerät zwischen Organisationen verschieben |
--allow-server-ssh | false | Den eingebauten SSH-Server dieses Geräts betreiben, damit andere Geräte mit sxaccess shell eine Sitzung öffnen können. Zum Einschalten sind Root-Rechte nötig. Zusätzlich muss im Dashboard SSH Access für das Gerät eingeschaltet sein, und eine Zugriffsregel muss TCP 24822 zu ihm erlauben |
--block-inbound | false | Jede eingehende Verbindung zu diesem Gerät und zu den Netzen, die es routet, ablehnen. Das setzt sich über die Zugriffsregeln hinweg, die Ihr Administrator festgelegt hat, und schaltet den SSH-Server ab |
--block-lan-access | false | Wenn dieses Gerät als Routing-Gerät oder Internet-Gateway dient, den gerouteten Verkehr von den IPv4-Subnetzen an seinen eigenen Netzwerkschnittstellen fernhalten, so wie sie beim Verbinden des Geräts bestehen. Weitere Subnetze dahinter, etwa der Rest einer VPC, und Link-Local-Adressen sind nicht abgedeckt. Was auf einem Gateway zu tun ist, zeigt Internet-Gateways |
--disable-auto-connect | false | Beim Start des Agenten, etwa nach einem Neustart, getrennt bleiben, bis jemand sxaccess start ausführt |
--disable-client-routes | false | Den Verkehr dieses Geräts nicht in die Netze routen, die für das Gerät veröffentlicht sind |
--disable-server-routes | false | Dieses Gerät keinen Verkehr für andere Geräte routen lassen |
--disable-dns | false | Die DNS-Einstellungen dieses Geräts unverändert lassen |
--disable-firewall | false | Die Firewall dieses Geräts unverändert lassen: Der Agent lädt keinen Paketfilter, die Port- und Protokollbeschränkungen der Zugriffsregeln gelten hier also nicht, und --block-lan-access bleibt wirkungslos |
info - ist dieses Gerät verbunden?
Diesen Befehl werden Sie am häufigsten verwenden. Ohne Optionen beginnt er mit einer Kopfzeile, die die Verbindungen des Geräts zum Management-Dienst und zu Discovery zusammenfasst: Connected, Partly connected (eine der beiden ist unterbrochen) oder Not connected. Discovery ist der Dienst, über den sich zwei Geräte auf einen Pfad einigen. Darunter folgen Name und Adresse dieses Geräts, wie viele Geräte verbunden sind, die genutzten gerouteten Netze und der Zustand von Service, Discovery, Relays und DNS-Servern. Ein nicht angemeldetes Gerät erhält stattdessen eine kurze Erklärung und den Befehl, der das behebt.
-d ergänzt die verwendete Identität und die Angabe, ob der Tunnel im Kernel oder im Userspace läuft. Dazu kommt je Gerät ein Block mit Path (P2P oder Relayed), Candidates, Round trip, Last handshake, Transferred und den Netzen, die es erreicht (Reaches). Wie Sie das lesen, erklärt Fehlerbehebung am Client. -d, --json, --yaml und --ipv4 schließen einander aus. --ipv4 gibt nur die Adresse dieses Geräts aus, etwa 100.72.0.33, und mit jq -c wird aus --json eine Zeile je Gerät. Die vier --filter-by-*-Optionen schränken die Geräteliste nach Namensanfang, Adresse, Zustand oder Pfad ein; jede von ihnen schaltet die Detailansicht von selbst ein, und sie schränken auch --json und --yaml ein.
sxaccess infosxaccess info -dsxaccess info --jsonsxaccess info --yamlsxaccess info --ipv4sxaccess info --json | jq -c '.devices.items[] | {dnsName, address, state, path}'sxaccess info --filter-by-names device-a,device-bsxaccess info --filter-by-ips 100.72.0.100,100.72.0.200sxaccess info --filter-by-status connectedsxaccess info --filter-by-connection-type Relayedsxaccess info -d -Areach - geroutete Netze
Veröffentlicht Ihr Administrator Netze für dieses Gerät, also die Ressourcen eines Netzwerks oder eine Route, kann das Gerät wählen, welche davon es routet. Das ist wichtig, wenn sich ein veröffentlichter Bereich mit etwas überschneidet, das bereits in Ihrem LAN liegt: Sie können ihn auf einer Maschine weglassen, ohne die Zugriffsregeln für alle zu ändern. Das Gerät muss verbunden sein.
reach list zeigt jedes Netz unter seinem Namen im Dashboard, also unter dem, was bei einer Ressource im Feld Name und bei einer Route im Feld Network Identifier steht, jeweils mit state: Selected oder Not Selected. reach add akzeptiert diese Namen und ersetzt die aktuelle Auswahl durch sie; mit -a fügt es sie stattdessen der Auswahl hinzu. reach add all wählt jedes veröffentlichte Netz, auch später veröffentlichte. reach remove akzeptiert Namen oder all.
sxaccess reach listsxaccess reach add allsxaccess reach add office-lan lab-vpcsxaccess reach add -a stagingsxaccess reach remove lab-vpcsxaccess reach remove allidentity - mehrere Anmeldungen auf einer Maschine
Eine Identität ist eine gespeicherte Anmeldung: eigener Schlüssel, eigene Einstellungen, eigene Registrierung. Mit mehreren Identitäten wechseln Sie auf demselben Gerät zwischen Konten, ohne sich jedes Mal neu anzumelden. Jede Maschine hat die eingebaute Identität default, die sich nicht entfernen lässt; jede andere gehört dem Benutzer, der sie angelegt hat. Es ist immer nur eine Identität in Gebrauch.
identity add legt eine neue, leere Identität an. identity use wechselt zu einer anderen und trennt das Gerät, falls es verbunden ist; sxaccess start meldet das Gerät dann beim ersten Mal mit ihr an und verbindet es. start --profile <Identität> erledigt beides in einem Schritt. Die verwendete Identität lässt sich nicht entfernen.
Um zwischen Organisationen zu wechseln, denen Ihr Konto angehört, verwenden Sie stattdessen die Befehle unter sxaccess tenant. Solange eine dort gewählte Organisation aktiv ist, verwendet der Agent deren Registrierung.
sxaccess identity listsxaccess identity add worksxaccess identity use work && sxaccess startsxaccess identity use default && sxaccess startsxaccess identity remove workdiagnose - Logs und Archive für den Support
diagnose collect packt die Logs des Agenten, den Verbindungsstatus und Systemangaben in ein Archiv und gibt Bundle saved to: mit dessen Pfad aus. Bei Fehlern, die nur sporadisch auftreten, greifen Sie zu diagnose capture <Dauer>. Der Befehl schaltet den Agenten auf Trace-Logging und verbindet das Gerät neu, damit die Aufzeichnung mit einer frischen Verbindung beginnt. Er läuft für die angegebene Dauer, erstellt dann das Archiv und setzt die Protokollstufe zurück. Weil der Befehl neu verbindet, brechen Sitzungen über SXAccess ab; ein getrenntes Gerät wird für die Aufzeichnung verbunden und danach wieder getrennt.
Beide akzeptieren -C, --log-file-count (wie viele rotierte Logdateien aufgenommen werden, Standard 1) und -S, --system-info (Systemangaben aufnehmen, standardmäßig eingeschaltet). Fügen Sie -A hinzu, bevor Sie ein Archiv weitergeben; was ein Archiv enthält, zeigt Was in einem Bündel steckt.
diagnose verbosity <Stufe> ändert, wie viel der Agent protokolliert, bis er neu startet: panic, fatal, error, warn, info, debug, trace. Standard ist info; mit sxaccess diagnose verbosity info kehren Sie dorthin zurück. diagnose keep-map on hält die letzte Netzwerkbeschreibung, die das Gerät erhalten hat, im Speicher, damit das nächste Archiv sie enthält; capture schaltet das von selbst ein. diagnose trace hat eine eigene Seite: Nachvollziehen, warum eine Verbindung blockiert wird.
sxaccess diagnose collectsxaccess diagnose capture 5msxaccess diagnose verbosity debugsxaccess diagnose keep-map onsxaccess diagnose collect -Aagent - der Hintergrunddienst
Der Agent ist der Hintergrundprozess, der das Gerät verbunden hält. Er läuft als Systemdienst, und das Installationsskript registriert und startet ihn; diese Befehle brauchen Sie also selten. install, remove, start, stop, restart und reconfigure ändern den Systemdienst und erfordern Root-Rechte; agent info meldet nur, ob er läuft (Agent service: Running). serve führt den Agenten im Vordergrund aus: Diesen Befehl rufen der Systemdienst und der Docker-Container auf; Sie starten ihn nicht von Hand.
reconfigure registriert den Dienst mit den Optionen, die Sie angeben, neu. Ein laufender Agent wird dafür gestoppt und wieder gestartet; Sie müssen danach also nichts weiter neu starten. --service-env übergibt dem Agenten Umgebungsvariablen, und jeder Aufruf ersetzt alle bisherigen: Ein zweiter Aufruf ergänzt den ersten nicht, sondern tritt an seine Stelle. Nennen Sie deshalb jede Variable, die der Agent haben soll, in einem einzigen Aufruf, durch Kommas getrennt, etwa --service-env SX_RELAY_ONLY=true,SX_DISABLE_PROFILES=true; siehe Umgebungsvariablen. -l legt die Protokollstufe des Agenten fest; ohne Angabe ist es info.
Um Änderungen an Identitäten auf einer Maschine abzuschalten, geben Sie dem Dienst wie unten gezeigt SX_DISABLE_PROFILES=true mit. Der Agent lehnt es dann ab, Identitäten anzulegen, zu entfernen oder zu wechseln. Er speichert auch die Einstellungen nicht mehr, die start übergibt; start verbindet dann mit den zuvor gespeicherten Einstellungen. Die Option --disable-profiles, die sxaccess agent --help aufführt, bewirkt das nicht, denn install und reconfigure geben sie nicht an den Dienst weiter.
sxaccess agent infosudo sxaccess agent restartsudo sxaccess agent reconfigure --service-env SX_DISABLE_PROFILES=trueGlobale Optionen
Jeder Befehl akzeptiert diese Optionen, auch wenn nur einige sie nutzen. Eine passende SX_-Umgebungsvariable überschreibt jede von ihnen - siehe Umgebungsvariablen.
| Option | Standard | Zweck |
|---|---|---|
-k, --enrollment-key | - | Registrierungsschlüssel für die unbeaufsichtigte Registrierung, angelegt unter Access → Enrollment keys. Für Server und CI-Maschinen ohne Browser. Von start und enroll genutzt |
--enrollment-key-file | - | Den Schlüssel stattdessen aus einer Datei lesen. Nicht mit -k kombinierbar |
-n, --hostname | Systemhostname | Der Name, unter dem dieses Gerät in Ihrem Netzwerk erscheint |
-l, --log-level | info | trace, debug, info, warn, error. Bei agent install und agent reconfigure legt sie die Protokollstufe des Agenten fest |
-A, --anonymize | false | Öffentliche IP-Adressen und Domains außerhalb von SXAccess in der Ausgabe von info und in Archiven ersetzen, damit sie sich gefahrlos teilen lassen. Private Bereiche und die Adressen Ihres SXAccess-Netzwerks bleiben unverändert |
Optionen auf Support-Ebene
start akzeptiert auch Optionen, die seine Hilfe nicht anzeigt. Verwenden Sie eine davon, wenn der Support oder eine andere Seite dieser Dokumentation dazu rät. Wie die Einstellungen unter Optionen für start werden sie zusammen mit der Identität gespeichert, und ein verbundenes Gerät ignoriert sie. Trennen und verbinden Sie es daher in einer Zeile, wie unter start gezeigt.
| Option | Zweck |
|---|---|
--external-ip-map | Öffentliche Adressen, die anderen Geräten als Verbindungskandidaten angeboten werden, für eine Maschine, deren öffentliche Adresse 1:1 auf eine private abgebildet ist - siehe NAT und Konnektivität. Einträge lauten public-ip, public-ip/local-ip oder public-ip/interface, durch Kommas getrennt, z. B. 203.0.113.10/eth0; "" entfernt sie |
--dns-resolver-address | Eine feste IP:Port-Adresse für den lokalen DNS-Resolver des Agenten, z. B. 127.0.0.1:5053; "" überlässt die Wahl dem Agenten. Siehe DNS |
--preshared-key | Ein zusätzliches gemeinsames Geheimnis für den Tunnel. Geräte kommunizieren nur miteinander, wenn sie dasselbe verwenden |

