Netzwerkdokumentation · 6 min read · Nov 19, 2025

So installieren Sie das NetBox-Netzwerkdokumentations- und Verwaltungstool auf Ubuntu 20.04 LTS

Netbox ist ein kostenloses und leistungsstarkes IP-Adress- (IPAM) und Rechenzentrumsinfrastrukturmanagement- (DCIM) Tool. Es wird verwendet, um Informationen über Ihre Netzwerke, VMs, Bestände und vieles mehr zu speichern. Es wurde ursprünglich vom Netzwerkengineering-Team bei DigitalOcean entwickelt. Dieses Tool ist im Django-Python-Framework geschrieben und basiert auf einer PostgreSQL-Datenbank. Ziel ist es, als domänenspezifische Quelle der Wahrheit für Netzwerkoperationen zu fungieren.

In diesem Tutorial erklären wir, wie Sie Netbox mit Nginx als Reverse-Proxy auf Ubuntu 20.04 installieren.

Voraussetzungen

  • Ein Server, der Ubuntu 20.04 ausführt.
  • Ein Root-Passwort ist auf Ihrem Server konfiguriert.

Erste Schritte

Bevor Sie beginnen, müssen Sie einige Abhängigkeiten installieren, die von Netbox benötigt werden. Sie können alle mit dem folgenden Befehl installieren:

apt-get install nginx git gcc supervisor python3 python3-dev python3-pip python3-setuptools build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev zlib1g-dev -y

Sobald alle Pakete installiert sind, können Sie mit dem nächsten Schritt fortfahren.

PostgreSQL-Datenbank installieren und konfigurieren

Netbox basiert auf einer PostgreSQL-Datenbank zur Datenspeicherung. Sie können sie mit dem folgenden Befehl installieren:

apt-get install postgresql postgresql-contrib -y

Sobald PostgreSQL installiert ist, melden Sie sich mit dem folgenden Befehl bei PostgreSQL an:

su - postgres  
postgres@ubuntu2004:~$ psql

Sie sollten die folgende Ausgabe erhalten:

psql (12.2 (Ubuntu 12.2-4))
Type "help" for help.

Als nächstes erstellen Sie eine Datenbank und einen Benutzer für Netbox mit dem folgenden Befehl:

postgres=# CREATE DATABASE netbox;  
postgres=# CREATE USER netbox WITH PASSWORD 'password';

Als nächstes gewähren Sie der Netbox-Datenbank mit dem folgenden Befehl alle Berechtigungen:

postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;

Als nächstes verlassen Sie die PostgreSQL-Shell mit dem folgenden Befehl:

postgres=# exit  
postgres@ubuntu2004:~$ exit

NetBox installieren und konfigurieren

Zuerst wechseln Sie in das Verzeichnis /opt und laden die neueste Version von Netbox aus dem GitHub-Repository mit dem folgenden Befehl herunter:

cd /opt/  
git clone -b master https://github.com/digitalocean/netbox.git

Als nächstes erstellen Sie einen symbolischen Link zur Python-Binärdatei mit dem folgenden Befehl:

ln -s /usr/bin/python3 /usr/bin/python

Als nächstes wechseln Sie in das Verzeichnis /opt/netbox/netbox/ und generieren den Django SECRET Key, indem Sie den folgenden Befehl ausführen:

cd /opt/netbox/netbox/  
./generate_secret_key.py

Sie sollten die folgende Ausgabe erhalten:

wcq@L2)eTDpo(k^f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z

Als nächstes wechseln Sie in das Verzeichnis netbox und benennen die Beispieldatei um:

cd netbox  
mv configuration.example.py configuration.py

Als nächstes bearbeiten Sie die Netbox-Konfigurationsdatei und definieren Ihre Datenbank, den geheimen Schlüssel und die erlaubten Hosts:

nano configuration.py

Nehmen Sie die folgenden Änderungen vor:

ALLOWED_HOSTS = ['your-server-ip']

# PostgreSQL-Datenbankkonfiguration. Siehe die Django-Dokumentation für eine vollständige Liste der verfügbaren Parameter:
#   https://docs.djangoproject.com/en/stable/ref/settings/#databases
DATABASE = {
    'NAME': 'netbox',         # Datenbankname
    'USER': 'netbox',               # PostgreSQL-Benutzername
    'PASSWORD': 'password',           # PostgreSQL-Passwort
    'HOST': 'localhost',      # Datenbankserver
    'PORT': '',               # Datenbankport (leer lassen für Standard)
    'CONN_MAX_AGE': 300,      # Maximales Alter der Datenbankverbindung
}

SECRET_KEY = 'wcq@L2)eTDpo(k^f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z'

Speichern und schließen Sie die Datei, und installieren Sie dann alle Python-Abhängigkeiten mit dem folgenden Befehl:

pip3 install -r /opt/netbox/requirements.txt

Als nächstes migrieren Sie die Datenbank mit dem folgenden Befehl:

cd /opt/netbox/netbox/  
python3 manage.py migrate

Als nächstes erstellen Sie einen Netbox-Administrationsbenutzer mit dem folgenden Befehl:

python3 manage.py createsuperuser

Sie werden aufgefordert, einen Benutzernamen und ein Passwort anzugeben, wie unten gezeigt:

Username (leave blank to use 'root'): netboxadmin
Email address: [email protected]
Password: 
Password (again): 
Superuser created successfully.

Als nächstes sammeln Sie die statischen Dateien mit dem folgenden Befehl:

python3 manage.py collectstatic

Sie sollten die folgende Ausgabe sehen:

976 static files copied to '/opt/netbox/netbox/static'.

Gunicorn installieren und konfigurieren

Netbox ist eine auf Django basierende Anwendung. Daher müssen Sie Gunicorn in Ihrem System installieren. Sie können es mit dem folgenden Befehl installieren:

pip3 install gunicorn

Nach der Installation von Gunicorn erstellen Sie eine neue Gunicorn-Konfigurationsdatei für Netbox mit dem folgenden Befehl:

nano /opt/netbox/gunicorn_config.py

Fügen Sie die folgenden Zeilen hinzu:

command = '/usr/local/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
bind = 'your-server-ip:8001'
workers = 3
user = 'www-data'

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Supervisor installieren und konfigurieren

Supervisor ist ein Client/Server-System, das es Ihnen ermöglicht, den NetBox-Dienst zu überwachen und zu steuern. Sie können eine neue Supervisor-Konfigurationsdatei für Netbox mit dem folgenden Befehl erstellen:

nano /etc/supervisor/conf.d/netbox.conf

Fügen Sie die folgenden Zeilen hinzu:

[program:netbox]
command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory = /opt/netbox/netbox/
user = www-data

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den Supervisor-Dienst mit dem folgenden Befehl neu:

systemctl restart supervisor

Sie können auch den Status des Supervisor-Dienstes mit dem folgenden Befehl überprüfen:

systemctl status supervisor

Sie sollten die folgende Ausgabe erhalten:

? supervisor.service - Supervisor process control system for UNIX
     Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-05-30 05:49:08 UTC; 14s ago
       Docs: http://supervisord.org
   Main PID: 550606 (supervisord)
      Tasks: 5 (limit: 4691)
     Memory: 184.3M
     CGroup: /system.slice/supervisor.service
             ??550606 /usr/bin/python3 /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
             ??550626 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
             ??550628 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
             ??550629 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
             ??550630 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi

May 30 05:49:08 ubuntu2004 systemd[1]: Started Supervisor process control system for UNIX.
May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,664 CRIT Supervisor is running as root.  Privileges were not dropped because of >
May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,664 INFO Included extra file "/etc/supervisor/conf.d/netbox.conf" during p>
May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,671 INFO RPC interface 'supervisor' initialized
May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,671 CRIT Server 'unix_http_server' running without any HTTP authentication>
May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,672 INFO supervisord started with pid 550606
May 30 05:49:09 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:09,676 INFO spawned: 'netbox' with pid 550626
May 30 05:49:11 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:11,060 INFO success: netbox entered RUNNING state, process has stayed up for

Nginx für NetBox konfigurieren

Es ist eine gute Idee, Nginx als Reverse-Proxy zu konfigurieren, um auf Netbox über Port 80 zuzugreifen. Sie können eine neue Nginx-virtuelle Hostkonfiguration mit dem folgenden Befehl erstellen:

nano /etc/nginx/sites-available/netbox.conf

Fügen Sie die folgenden Zeilen hinzu:

server {
    listen 80;
    server_name your-server-ip;
    client_max_body_size 25m;

    location /static/ {
        alias /opt/netbox/netbox/static/;
    }

    location / {
        proxy_pass http://your-server-ip:8001;
    }
}

Speichern und schließen Sie die Datei. Erstellen Sie dann einen symbolischen Link zum Verzeichnis /etc/nginx/sites-enabled:

ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/

Überprüfen Sie als nächstes Nginx auf Syntaxfehler mit dem folgenden Befehl:

ginx -t

Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe erhalten:

ginx: the configuration file /etc/nginx/nginx.conf syntax is ok
ginx: configuration file /etc/nginx/nginx.conf test is successful

Starten Sie schließlich den Nginx-Dienst neu, um die Änderungen umzusetzen.

systemctl restart nginx

Sie können auch den Nginx mit dem folgenden Befehl überprüfen:

systemctl status nginx

Sie sollten die folgende Ausgabe erhalten:

? nginx.service - Der nginx HTTP- und Reverse-Proxy-Server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2020-05-30 22:28:13 EST; 4min 14s ago
  Process: 984 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 982 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 980 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 985 (nginx)
    Tasks: 3 (limit: 25028)
   Memory: 5.5M
   CGroup: /system.slice/nginx.service
           ??985 nginx: master process /usr/sbin/nginx
           ??986 nginx: worker process
           ??987 nginx: worker process

May 30 21:28:12 ubuntu2004 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Mar 30 21:28:12 ubuntu2004 nginx[982]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Mar 30 21:28:12 ubuntu2004 nginx[982]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Mar 30 21:28:13 ubuntu2004 systemd[1]: Started The nginx HTTP and reverse proxy server.

An diesem Punkt ist der Nginx-Webserver konfiguriert, um Netbox auf Port 80 bereitzustellen. Sie können jetzt auf die Netbox-Weboberfläche zugreifen.

Zugriff auf die Netbox-Weboberfläche

Öffnen Sie Ihren Webbrowser und besuchen Sie die URL http://your-server-ip. Sie werden auf die folgende Seite weitergeleitet:

Netbox-Oberfläche

Klicken Sie auf die Schaltfläche Anmelden. Sie sollten die Anmeldeseite von Netbox auf dem folgenden Bildschirm sehen:

Netbox-Anmeldung

Geben Sie Ihren Netbox-Admin-Benutzernamen, Ihr Passwort ein und klicken Sie auf die Schaltfläche Anmelden. Sie sollten das Standard-Dashboard von Netbox auf der folgenden Seite sehen:

Netbox-Admin-Dashboard

Fazit

In diesem Leitfaden haben Sie gelernt, wie Sie Netbox auf Ubuntu 20.04 mit Nginx installieren. Sie können jetzt beginnen, Ihre Netzwerk-Infrastruktur zu dokumentieren. Für weitere Informationen besuchen Sie die offizielle Dokumentation von Netbox. Zögern Sie nicht, mich zu fragen, wenn Sie Fragen haben.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.