Instalación NetBox · 7 min read · Nov 19, 2025
Cómo instalar NetBox, herramienta de documentación y gestión de redes en Ubuntu 20.04 LTS

Netbox es una herramienta gratuita y poderosa para la gestión de direcciones IP (IPAM) y la infraestructura de centros de datos (DCIM). Se utiliza para almacenar información sobre tus redes, máquinas virtuales, inventarios y mucho más. Fue desarrollada originalmente por el equipo de ingeniería de redes de DigitalOcean. Esta herramienta está escrita en el marco de trabajo Django de Python y se basa en la base de datos PostgreSQL. Su objetivo es funcionar como una fuente de verdad específica del dominio para las operaciones de red.
En este tutorial, explicaremos cómo instalar Netbox con Nginx como proxy inverso en Ubuntu 20.04.
Requisitos previos
- Un servidor que ejecute Ubuntu 20.04.
- Una contraseña de root configurada en tu servidor.
Comenzando
Antes de comenzar, necesitarás instalar algunas dependencias requeridas por Netbox. Puedes instalar todas ellas ejecutando el siguiente comando:
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 -yUna vez que todos los paquetes estén instalados, puedes proceder al siguiente paso.
Instalar y configurar la base de datos PostgreSQL
Netbox se basa en la base de datos PostgreSQL para el almacenamiento de datos. Puedes instalarla con el siguiente comando:
apt-get install postgresql postgresql-contrib -yUna vez que PostgreSQL esté instalado, inicia sesión en PostgreSQL con el siguiente comando:
su - postgres
postgres@ubuntu2004:~$ psqlDeberías obtener la siguiente salida:
psql (12.2 (Ubuntu 12.2-4))
Type "help" for help.
A continuación, crea una base de datos y un usuario para Netbox con el siguiente comando:
postgres=# CREATE DATABASE netbox;
postgres=# CREATE USER netbox WITH PASSWORD 'password';A continuación, otorga todos los privilegios a la base de datos Netbox con el siguiente comando:
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;A continuación, sal del shell de PostgreSQL con el siguiente comando:
postgres=# exit
postgres@ubuntu2004:~$ exitInstalar y configurar NetBox
Primero, cambia el directorio a /opt y descarga la última versión de Netbox desde el repositorio de Git Hub utilizando el siguiente comando:
cd /opt/
git clone -b master https://github.com/digitalocean/netbox.gitA continuación, crea un enlace simbólico del binario de Python con el siguiente comando:
ln -s /usr/bin/python3 /usr/bin/pythonA continuación, cambia el directorio a /opt/netbox/netbox/ y genera la clave secreta de Django ejecutando el siguiente comando:
cd /opt/netbox/netbox/
./generate_secret_key.pyDeberías obtener la siguiente salida:
wcq@L2)eTDpo(k^f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z
A continuación, cambia el directorio a netbox y renombra el archivo de configuración de ejemplo:
cd netbox
mv configuration.example.py configuration.pyA continuación, edita el archivo de configuración de Netbox y define tu base de datos, clave secreta y hosts permitidos:
nano configuration.pyRealiza los siguientes cambios:
ALLOWED_HOSTS = ['your-server-ip']
# Configuración de la base de datos PostgreSQL. Consulta la documentación de Django para obtener una lista completa de los parámetros disponibles:
# https://docs.djangoproject.com/en/stable/ref/settings/#databases
DATABASE = {
'NAME': 'netbox', # Nombre de la base de datos
'USER': 'netbox', # Nombre de usuario de PostgreSQL
'PASSWORD': 'password', # Contraseña de PostgreSQL
'HOST': 'localhost', # Servidor de la base de datos
'PORT': '', # Puerto de la base de datos (dejar en blanco para el predeterminado)
'CONN_MAX_AGE': 300, # Edad máxima de la conexión a la base de datos
}
SECRET_KEY = 'wcq@L2)eTDpo(k^f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z'
Guarda y cierra el archivo, luego instala todas las dependencias de Python con el siguiente comando:
pip3 install -r /opt/netbox/requirements.txtA continuación, migra la base de datos con el siguiente comando:
cd /opt/netbox/netbox/
python3 manage.py migrateA continuación, crea un usuario administrativo de Netbox con el siguiente comando:
python3 manage.py createsuperuserSe te pedirá que proporciones un nombre de usuario y una contraseña como se muestra a continuación:
Username (leave blank to use 'root'): netboxadmin
Email address: [email protected]
Password:
Password (again):
Superuser created successfully.
A continuación, recopila el archivo estático con el siguiente comando:
python3 manage.py collectstaticDeberías ver la siguiente salida:
976 static files copied to '/opt/netbox/netbox/static'.
Instalar y configurar Gunicorn
Netbox es una aplicación basada en Django. Por lo tanto, necesitarás instalar Gunicorn en tu sistema. Puedes instalarlo ejecutando el siguiente comando:
pip3 install gunicornDespués de instalar Gunicorn, crea un nuevo archivo de configuración de Gunicorn para Netbox con el siguiente comando:
nano /opt/netbox/gunicorn_config.pyAgrega las siguientes líneas:
command = '/usr/local/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
bind = 'your-server-ip:8001'
workers = 3
user = 'www-data'
Guarda y cierra el archivo cuando hayas terminado.
Instalar y configurar Supervisor
Supervisor es un sistema cliente/servidor que te permite monitorear y controlar el servicio de NetBox. Puedes crear un nuevo archivo de configuración de Supervisor para Netbox con el siguiente comando:
nano /etc/supervisor/conf.d/netbox.confAgrega las siguientes líneas:
[program:netbox]
command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory = /opt/netbox/netbox/
user = www-data
Guarda y cierra el archivo cuando hayas terminado. Luego, reinicia el servicio de Supervisor con el siguiente comando:
systemctl restart supervisorTambién puedes verificar el estado del servicio de Supervisor utilizando el siguiente comando:
systemctl status supervisorDeberías obtener la siguiente salida:
? 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 becau>
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
Configurar Nginx para NetBox
Es una buena idea configurar Nginx como un proxy inverso para acceder a Netbox en el puerto 80. Puedes crear una nueva configuración de host virtual de Nginx utilizando el siguiente comando:
nano /etc/nginx/sites-available/netbox.confAgrega las siguientes líneas:
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;
}
}
Guarda y cierra el archivo. Luego, crea un enlace simbólico al directorio /etc/nginx/sites-enabled/:
ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/A continuación, verifica Nginx en busca de errores de sintaxis con el siguiente comando:
ginx -tSi todo está bien, deberías obtener la siguiente salida:
ginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Finalmente, reinicia el servicio de Nginx para implementar los cambios.
systemctl restart nginxTambién puedes verificar el estado de Nginx con el siguiente comando:
systemctl status nginxDeberías obtener la siguiente salida:
? nginx.service - The nginx HTTP and 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.
En este punto, el servidor web Nginx está configurado para servir Netbox en el puerto 80. Ahora puedes proceder a acceder a la interfaz web de Netbox.
Acceder a la interfaz web de Netbox
Abre tu navegador web y visita la URL http://your-server-ip. Serás redirigido a la siguiente página:

Haz clic en el botón Iniciar sesión. Deberías ver la página de inicio de sesión de Netbox en la siguiente pantalla:

Proporciona tu nombre de usuario y contraseña de administrador de Netbox, y haz clic en el botón iniciar sesión. Deberías ver el panel de control predeterminado de Netbox en la siguiente página:

Conclusión
En esta guía, aprendiste cómo instalar Netbox en Ubuntu 20.04 con Nginx. Ahora puedes comenzar a documentar tu infraestructura de red. Para más información, visita la documentación oficial de Netbox. No dudes en preguntarme si tienes alguna pregunta.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.