In diesem Artikel führen wir Sie durch die Installation von Code-Server unter Ubuntu 20.04.
Code-Server ist eine Open-Source-Serveranwendung, die VS-Code auf jedem Computer überall bereitstellt und im Browser darauf zugreift. Es ermöglicht die Nutzung leistungsstarker Cloud-Server, um Kompilierungen und Tests zu beschleunigen und unterwegs Batterie zu sparen.
Voraussetzungen
- Ein Ubuntu 20.04 installiertes VPS mit min. empfohlen: 4GB RAM, 2 vCPU.
- Ein gültiger Domänenname, der auf den VPS verweist.
- Ein Root-Benutzerzugriff oder ein normaler Benutzer mit Administratorrechten.
Code-Server auf Ubuntu 20.04 installieren
1. Aktualisieren Sie den Server
Halten Sie den Server auf dem neuesten Stand.
# apt update -y
# apt upgrade -y
2. Code-Server installieren
Laden Sie den Code-Server mit dem folgenden Befehl aus dem offiziellen Repository herunter:
# cd /home
# wget https://github.com/cdr/code-server/releases/download/v3.11.0/code-server-3.11.0-linux-amd64.tar.gz
Extrahieren Sie die tar- Datei und benennen Sie sie mit dem Code-Server mit dem folgenden Befehl um:
# tar xzf code-server-3.11.0-linux-amd64.tar.gz && rm code-server-3.11.0-linux-amd64.tar.gz
# mv code-server-3.11.0-linux-amd64 code-server
Machen Sie die Code-Server-Binärdatei ausführbar.
# cd code-server
Code-Server ausführen.
./code-server --port 8000
Öffnen Sie Ihren Computerbrowser und navigieren Sie zu http://YOUR_IP_ADDRESS:8000. Sie werden nach einem Passwort gefragt. Verwenden Sie das im SSH-Terminal angezeigte Passwort. Die Visual Studio Code-Schnittstelle wird geöffnet. Um den Server zu stoppen, drücken Sie STRG + C im SSH-Terminal.
3. Erstellen Sie einen Systemstartdienst
Wir können einen Dienst mit dem systemd- Dienstmanager von Linux erstellen . Folge diesen Schritten:
Erstellen Sie mit dem folgenden Befehl eine neue Datei mit dem Namen code-server.service :
# vi /lib/systemd/system/code-server.service
Kopieren Sie den folgenden Inhalt und fügen Sie ihn ein und ersetzen Sie ihn durch das Passwort, das Sie festlegen möchten. Dies ist das Passwort, mit dem Sie sich beim Code-Server anmelden.
[Unit]
Description=Code Server Service
After=network.target
[Service]
Type=simple
Restart=on-failure
RestartSec=10
WorkingDirectory=/home/code-server
Environment='PASSWORD='
ExecStart=/home/code-server/code-server --port 8000
StandardOutput=file:/var/log/code-server-output.log
StandardError=file:/var/log/code-server-error.log
[Install]
WantedBy=multi-user.target
Speichern und schließen Sie die Datei.
Starten und aktivieren Sie nun den code-server.service mit den folgenden Befehlen:
# systemctl daemon-reload
# systemctl start code-server
# systemctl enable code-server
Öffnen Sie Ihren Computerbrowser und navigieren Sie zu http://YOUR_IP_ADDRESS:8000. Sie werden nach einem Passwort gefragt. Verwenden Sie das Passwort, das Sie in der Datei code-server.service angegeben haben .
4. Installieren und konfigurieren Sie Nginx
Um über einen Domainnamen auf die Installation zuzugreifen und ein SSL-Zertifikat hinzuzufügen, empfiehlt es sich, einen Reverse-Proxy einzurichten. Zu diesem Demonstrationszweck verwenden wir den Nginx-Webserver als Reverse-Proxy.
Um Nginx zu installieren, verwenden Sie den folgenden Befehl:
# apt-get install nginx -y
Deaktivieren Sie die standardmäßige Nginx-Site-Konfigurationsdatei.
# rm /etc/nginx/sites-enabled/default
Erstellen Sie eine neue Nginx-Site-Konfigurationsdatei für den Code-Server.
# vi /etc/nginx/sites-available/code-server
Fügen Sie das folgende Snippet in die Datei ein und ersetzen Sie example.com durch Ihren eigenen Domainnamen.
server {
listen 80;
listen [::]:80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8000/;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Accept-Encoding gzip;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Aktivieren Sie die Konfiguration und starten Sie den Nginx-Webserver neu.
# ln -s /etc/nginx/sites-available/code-server /etc/nginx/sites-enabled/
Testen Sie die Nginx-Konfigurationsdatei.
# nginx -t
Wenn kein Fehler auftritt, starten Sie den nginx- Dienst neu.
# systemctl restart nginx
Wenn Sie UFW als Firewall verwenden, lassen Sie SSH- und Nginx-Verbindungen durch die Firewall zu und aktivieren Sie die Firewall. Dadurch wird sichergestellt, dass die Code-Server-Installation nur über den Nginx-Reverse-Proxy zugänglich ist.
# ufw allow ssh
# ufw allow 'Nginx Full'
# ufw enable
Navigieren Sie zu Ihrem Domänennamen, um die Installation zu testen.
5. Installieren Sie Let's Encrypt SSL
Halten Sie die Verbindung zwischen Server und Endbenutzer sicher. Es wird dringend empfohlen, ein SSL-Zertifikat zu installieren. Let's Encrypt ist ein kostenloses SSL-Zertifikat mit einer Gültigkeit von 90 Tagen und wird alle 90 Tage erneuert. Wir verwenden certbot , um das SSL-Zertifikat zu installieren.
Laden Sie Certbot herunter und installieren Sie es.
# apt-get install python3-certbot-nginx
Führen Sie den folgenden Befehl aus, um das Befehlszeilen-Installationsprogramm von Certbot zu starten, und ersetzen Sie example.com durch Ihren eigenen Domänennamen.
# certbot --nginx -d example.com
Fahren Sie mit dem interaktiven Installationsprogramm fort. Wenn Sie gefragt werden, ob HTTP-Datenverkehr auf HTTPS umgeleitet werden soll, wählen Sie die Umleitung.
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you’re confident your site works on HTTPS. You can undo this
change by editing your web server’s configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/code-server
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/code-server
6. fail2ban installieren (empfohlen)
Fail2ban ist eine Anwendung, die Protokolle analysiert, um automatisierte Angriffe auf einen Server zu erkennen und abzuwehren. Wenn eine vordefinierte Anzahl von erfolglosen Anmeldeversuchen erkannt wird, ändert fail2ban die iptables des Servers, um den Angreifer für einen vordefinierten Zeitraum zu blockieren.
Setuptools installieren. Dies ist erforderlich, um fail2ban zu installieren.
# apt-get install python3-setuptools -y
Downloaden und installieren Sie fail2ban.
git clone https://github.com/fail2ban/fail2ban.git
cd fail2ban
sudo python3 setup.py install
cp build/fail2ban.service /lib/systemd/system/fail2ban.service
cd .. && rm -rf fail2ban
Kopieren Sie die Standardkonfigurationsdatei jails.conf nach jails.local und öffnen Sie die kopierte Datei in einem Texteditor.
# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# vi /etc/fail2ban/jail.local
Fügen Sie das folgende Snippet am Ende der Datei ein. Sie können die Parameter maxretry, findtime und bantime ändern.
[code-server]
enabled = true
logpath = /var/log/code-server-output.log
# maxretry: The amount of unsuccessful login attempts after which a ban is issued.
maxretry = 5
# findtime: The amount of time within which the login attempts must occur.
findtime = 10m
# bantime: The amount of time for which an IP is banned from accessing the server.
bantime = 10m
Erstellen Sie eine neue Filterkonfigurationsdatei, um das Filtermuster zu definieren, um erfolglose Anmeldeversuche im Code-Server-Protokoll zu finden.
# vi /etc/fail2ban/filter.d/code-server.conf
Fügen Sie den folgenden Ausschnitt in die Datei ein.
[Definition]
failregex = Failed login attempt {\'xForwardedFor\':\'\'.*
ignoreregex =
datepattern = "timestamp':{EPOCH}}$
Starten Sie den rsyslog-Dienst neu und aktivieren und starten Sie den fail2ban-Dienst.
# systemctl restart rsyslog.service
# systemctl start fail2ban.service
# systemctl enable fail2ban.service
Das ist es. Die Installation wurde erfolgreich abgeschlossen.
In diesem Artikel haben wir Ihnen erklärt, wie Sie Code-Server auf Ubuntu 20.04 installieren