WSL2 Linux-VM: xrdp-Autostart einrichten
Die Verwendung von systemd ist die standardisierte und sauberste native Linux-Vorgehensweise.
Wird gerendert...
Da WSL 2 standardmäßig keinen traditionellen `systemd`-Initialisierungsprozess verwendet, werden Hintergrunddienste beim Start des Linux-Systems nicht automatisch ausgeführt, wie es bei einer echten physischen Maschine der Fall wäre.
Um `xrdp` bei jedem Start von WSL oder beim Öffnen eines Terminals **automatisch zu starten**, gibt es mehrere sehr elegante und praktische Lösungen:
### Lösung eins: `systemd` innerhalb von WSL aktivieren (von Microsoft offiziell empfohlen, am bequemsten)
In neueren Versionen von WSL 2 (aktuelle Versionen von Windows 10/11) hat Microsoft `systemd` nativ unterstützt. Nach der Aktivierung werden Linux-Hintergrunddienste (einschließlich `xrdp`, Docker usw.) **automatisch mit WSL gestartet**, genau wie bei einem normalen Linux-System, ohne dass zusätzliche Skripte erforderlich sind.
#### Schritte:
1. **WSL-Konfigurationsdatei ändern**: Führen Sie im Ubuntu-Terminal von WSL den folgenden Befehl aus, um `systemd` zu aktivieren:
Bash
```
sudo bash -c 'cat <<EOF > /etc/wsl.conf
[boot]
systemd=true
EOF'
```
2. **`xrdp`-Dienst für den automatischen Start konfigurieren**: Führen Sie im WSL-Terminal aus:
Bash
```
sudo systemctl enable xrdp
```
3. **Passwortlosen Start einrichten (verhindert, dass `xrdp` beim Start nach einem Passwort fragt)**: Da `xrdp` Root-Rechte benötigt, um zu starten, erlauben Sie dem aktuellen Benutzer, `xrdp` ohne Passwort zu starten, um einen reibungslosen automatischen Start im Hintergrund zu gewährleisten (nach dem `enable` wird systemd dies während der Systeminitialisierung als Root ausführen).
4. **WSL neu starten, damit die Änderungen wirksam werden**: Führen Sie in der Windows PowerShell den Befehl zum Herunterfahren von WSL aus:
PowerShell
```
wsl --shutdown
```
Öffnen Sie dann erneut das Ubuntu-Terminal und geben Sie den folgenden Befehl ein, um den `xrdp`-Status zu überprüfen:
Bash
```
sudo systemctl status xrdp
```
Wenn **`active (running)`** angezeigt wird, war die Konfiguration erfolgreich! Sobald WSL gestartet ist, läuft `xrdp` automatisch im Hintergrund, und Sie können jederzeit eine Remotedesktopverbindung herstellen.
### Lösung zwei: `sudoers` für passwortlosen Start + `.bashrc` für automatischen Start konfigurieren (für ältere WSL-Versionen geeignet)
Wenn Sie `systemd` nicht aktivieren möchten oder eine ältere WSL-Version verwenden, können Sie das System so einrichten, dass es bei jedem Öffnen eines WSL-Terminals `xrdp` im Hintergrund überprüft und automatisch startet.
#### Schritte:
1. **`xrdp`-Dienst passwortlos ausführen**: Geben Sie im WSL-Terminal den folgenden Befehl ein, um die sudoers-Berechtigungen zu bearbeiten:
Bash
```
sudo visudo
```
Fügen Sie am Ende der Datei eine Zeile hinzu (ersetzen Sie `your_username` durch Ihren eigenen WSL-Benutzernamen):
Plaintext
```
your_username ALL=(ALL) NOPASSWD: /usr/sbin/service xrdp *
```
*Drücken Sie `Strg + O` zum Speichern, `Enter` zur Bestätigung, `Strg + X` zum Beenden.*
2. **Startbefehl zur Benutzerkonfigurationsdatei hinzufügen**: Bearbeiten Sie die Datei `~/.bashrc`:
Bash
```
nano ~/.bashrc
```
Fügen Sie am **Ende** der Datei die folgende Logik hinzu (Zweck: Wenn erkannt wird, dass `xrdp` nicht läuft, wird es still gestartet):
Bash
```
# xrdp-Dienst automatisch starten
if ! service xrdp status > /dev/null 2>&1; then
sudo service xrdp start > /dev/null 2>&1
fi
```
*Speichern und beenden.*
Auf diese Weise wird der `xrdp`-Dienst jedes Mal, wenn Sie ein WSL-Terminal starten, automatisch im Hintergrund gestartet, ohne dass Sie `sudo service xrdp start` manuell eingeben müssen.
### Lösung drei: WSL-Desktopdienst beim Windows-Start automatisch und still starten
Wenn Sie möchten, dass der **Linux-Remotedesktop direkt nach dem Start von Windows verbunden werden kann** (ohne dass Sie ein WSL-Terminal öffnen müssen), können Sie auf der Windows-Seite ein Skript für den stillen Start erstellen.
1. Drücken Sie `Win + R`, geben Sie `shell:startup` ein und drücken Sie die Eingabetaste (dies öffnet den Windows-Ordner „Autostart“).
2. Erstellen Sie in diesem Verzeichnis eine neue Textdatei und benennen Sie sie in `start-wsl-xrdp.vbs` um (beachten Sie, dass die Dateiendung in `.vbs` geändert werden muss).
3. Klicken Sie mit der rechten Maustaste auf diese Datei, um sie zu bearbeiten, und fügen Sie den folgenden Code ein:
VBScript
```
Set ws = CreateObject("Wscript.Shell")
ws.run "wsl -u root service xrdp start", 0
```
4. Speichern Sie die Datei.
**Effekt**: Jedes Mal, wenn Ihr Windows-Computer hochfährt und Sie sich anmelden, startet das System den `xrdp`-Dienst von WSL im Hintergrund implizit mit `root`-Berechtigungen, völlig ohne Pop-ups. Sie können jederzeit die „Remotedesktopverbindung (`localhost:3390`)“ von Windows öffnen, um direkt auf den Linux-Desktop zuzugreifen!
### Zusammenfassung und Empfehlungen
- **Bevorzugen Sie [Lösung eins]**: Die Aktivierung von `systemd` ist die standardmäßigste und sauberste native Linux-Methode.
- **Kombinieren Sie mit [Lösung drei]**: Wenn Sie sofort nach dem Start einsatzbereit sein möchten, wird die Erfahrung in Kombination mit einem Windows-Startskript maximiert!Kommentar
Melde dich an, um Kommentare anzuzeigen und zu veröffentlichen
Zur Anmeldung