Einfach zu installierender Code-Server unter Ubuntu 20.04

Einfach zu installierender Code-Server unter Ubuntu 20.04

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


Python als Befehlszeilenrechner verwenden

Python als Befehlszeilenrechner verwenden

Während Sie einen grafischen Taschenrechner auf Ihrem Computer verwenden können, kann der Interpreter der Programmiersprache Python auch als Tischrechner verwendet werden. Es ist ein so beliebter Laufwitz ​​in der Python-Community, dass er im offiziellen Tutorial erwähnt wird. So können Sie Python als Taschenrechner verwenden.

Die 8 besten Java-Blogs für Programmierer

Die 8 besten Java-Blogs für Programmierer

Als Programmierer sollten Sie Herausforderungen annehmen, um zu überleben und einige Wunder im Entwicklungs- oder Programmierbereich zu schaffen. Wenn Sie also eine fortgeschrittene Programmiersprache lernen möchten, um Ihre beruflichen Fähigkeiten zu verbessern, ist Java eine der besten Aussichten, die es gibt.

7 wichtige Befehle für den Einstieg in Python für Anfänger

7 wichtige Befehle für den Einstieg in Python für Anfänger

Das Erlernen einer neuen Programmiersprache wie Python wird mühelos, wenn Sie eine umfassende Roadmap haben, die detailliert beschreibt, welche Konzepte Sie als Anfänger lernen müssen und wie Sie weiter vorankommen, um den nächsten Meilenstein zu erreichen. Auch fortgeschrittene Programmierer sollten ihre Grundlagen häufig auffrischen, um eine solide Grundlage für sich selbst zu schaffen.

Responsive Webdesign-Prinzipien

Responsive Webdesign-Prinzipien

Heutzutage ist es gängige Praxis, eine Website oder App zu erstellen, die ihre Benutzeroberfläche je nach Browser oder Gerät anpasst. Um dieses Ziel zu erreichen, gibt es zwei Ansätze. Die erste besteht darin, verschiedene Versionen Ihrer Website oder App für verschiedene Geräte zu erstellen. Aber es ist ineffizient und kann zu unvorhersehbaren Fehlern führen.

So zählen Sie die Anzahl der Ziffern einer Zahl mit C++, Python und JavaScript

So zählen Sie die Anzahl der Ziffern einer Zahl mit C++, Python und JavaScript

Das Arbeiten mit Zahlen ist ein wesentlicher Bestandteil der Programmierung. Jede Programmiersprache bietet Unterstützung, um Zahlen auf viele verschiedene Arten zu manipulieren. In diesem Artikel erfahren Sie, wie Sie mit iterativen, logbasierten und stringbasierten Ansätzen die Gesamtzahl der Ziffern in einer Ganzzahl ermitteln.

Die 9 besten Docker-Alternativen für das Container-Management

Die 9 besten Docker-Alternativen für das Container-Management

Container sind für die Softwareentwicklung, -bereitstellung und -verwaltung in einer virtuellen Umgebung von großem Nutzen. Docker ist im Containerisierungsprozess nützlich, aber nicht die einzige Plattform, die es gibt. Wenn Sie nach Alternativen zu Docker suchen, suchen Sie nicht weiter. Diese Liste zeigt einige funktionsreiche und effiziente Docker-Alternativen, die Sie in Ihrem nächsten Projekt verwenden können.

SQL vs. NoSQL: Was ist die beste Datenbank für Ihr nächstes Projekt?

SQL vs. NoSQL: Was ist die beste Datenbank für Ihr nächstes Projekt?

SQL vs. NoSQL: Was ist die beste Datenbank für Ihr nächstes Projekt?

So betten Sie Tweets in Ihre WordPress-Beiträge ein

So betten Sie Tweets in Ihre WordPress-Beiträge ein

Das Einbetten von Drittanbieterdiensten in Ihre WordPress-Posts ist eine aufregende Möglichkeit, das Interesse eines Besuchers zu wecken. Eingebettete Inhalte bieten auch visuelle Hinweise, die das Scannen erleichtern. WordPress hat das Hinzufügen dieser Art von Inhalten einfach gemacht.

So löschen Sie den Ordner für Knotenmodule mit npkill

So löschen Sie den Ordner für Knotenmodule mit npkill

Node.js ist eine JavaScript-Laufzeitumgebung, mit der Sie JavaScript außerhalb von Webbrowsern ausführen können, was es zu einer beliebten Wahl für die Entwicklung aller Arten von Anwendungen macht. Ein Teil seiner Popularität ist auf die Fülle von NPM-Paketen zurückzuführen, die das Entwicklererlebnis erleichtern sollen.

So schreiben und kompilieren Sie Ihren ersten Solidity-Code

So schreiben und kompilieren Sie Ihren ersten Solidity-Code

Solidity ist die Programmiersprache, die von Smart Contracts auf der Ethereum-Blockchain verwendet wird. Es ist eine statisch typisierte, objektorientierte Programmiersprache.