上期文章我们盘点了NetBox强大的资产管控、IP地址管理、机房运维等核心功能,今天我们来讨论下NetBox的安装部署。
NetBox的原生手动安装流程比较繁琐,涉及依赖部署、数据库配置、程序调试等多个步骤,初次安装容易耗费大量时间。为了适配不同小伙伴的需求,今天我准备了两种上手方案,大家可以根据自身情况自由选择。
如果只是想快速体验,不想折腾复杂的安装配置,我已经打包好了 OVF 模板,直接导入 VMware 即可体验使用,私信回复netbox即可获取。
如果想深入研究部署流程,那就跟随下文教程一步步操作。
以下是详细的 NetBox 手动安装全过程👇
(一)操作系统准备与依赖安装
硬件配置的话基本上2核心CPU、4G内存、16G硬盘就可以跑起来,实际生成环境中建议至少4核心、8G内存、120G硬盘以保证使用体验。
netbox仅支持Linux操作系统,主流的Linux发行版基本都可以,我这里使用的是Ubuntu 24.04.2 LTS。
1.更新系统
sudo apt update && sudo apt upgrade -y2.安装依赖、postgresql数据库、redis缓存、Nginx中间件
sudo apt install -y git python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libpq-dev libssl-dev zlib1g-dev postgresql redis-server nginx(二)配置 PostgreSQL 数据库
1. 进入 postgres 命令行
sudo -u postgres psql
2.创建 netbox 数据库
CREATE DATABASE netbox;
3.创建数据库访问用户'netbox'并设置密码,密码设置为'NetBox@2026'
CREATE USER netbox WITH PASSWORD 'NetBox@2026';
4.把netbox数据库归属权给到新创建的netbox用户
ALTER DATABASE netbox OWNER TO netbox;
5.进入新创建的netbox数据库,配置权限,然后退出
\c netbox;GRANT CREATE ON SCHEMA public TO netbox;\q

6.测试数据库状态
psql -U netbox -W -h localhost netbox密码输入:NetBox@2026,可以正常进入就代表数据库配置成功。

#最新版本可在github查看,此处以v4.2.5为例。sudo wget https://github.com/netbox-community/netbox/archive/refs/tags/v4.2.5.tar.gzsudo tar -zxvf v4.2.5.tar.gz -C /optsudo ln -s /opt/netbox-4.2.5 /opt/netboxcd /opt/netbox/netbox/netbox
sudo cp configuration_example.py configuration.pypython3 ../generate_secret_key.py
# 允许访问的IP/域名,写服务器IP或者*ALLOWED_HOSTS = ['*']# 数据库配置DATABASE = {'NAME': 'netbox','USER': 'netbox','PASSWORD': 'NetBox@2026','HOST': 'localhost','PORT': '','CONN_MAX_AGE': 300,}# Redis默认本地不用改CACHING = {'HOST': 'localhost','PORT': 6379,'DATABASE': 1,'USERNAME': '','PASSWORD': '','SSL': False,}# 粘贴刚才生成的SECRET_KEYSECRET_KEY = '你刚才复制的密钥'# 生产环境关闭调试DEBUG = False
sudo chown -R $USER:$USER /opt/netbox-4.2.5 /opt/netboxcd /opt/netboxsudo python3 -m venv venvsource venv/bin/activate
# 升级pippip install --upgrade pip# 安装依赖包pip install -r requirements.txt
cd /opt/netbox/netbox/# 数据库初始化迁移python manage.py migrate# 收集前端静态文件python manage.py collectstatic --no-input# 创建超级管理员账号,该账号为后期网页登录netbox的账号python manage.py createsuperuser

sudo nano /etc/systemd/system/netbox.service#将下面的代码复制到netbox.service文件中[Unit]Description=NetBox WSGI ServiceDocumentation=https://netbox.readthedocs.io/After=network.target postgresql.service redis-server.service[Service]Type=simpleUser=www-dataGroup=www-dataWorkingDirectory=/opt/netbox-4.2.5/netboxExecStart=/opt/netbox/venv/bin/gunicorn --workers 4 --bind 127.0.0.1:8001 netbox.wsgiRestart=on-failure[Install]WantedBy=multi-user.target
sudo nano /etc/systemd/system/netbox-rq.service#将下面的代码复制到netbox-rq.service中[Unit]Description=NetBox RQ WorkerAfter=network.target postgresql.service redis-server.service[Service]Type=simpleUser=www-dataGroup=www-dataWorkingDirectory=/opt/netbox/netboxExecStart=/opt/netbox/venv/bin/python manage.py rqworker defaultRestart=on-failure[Install]WantedBy=multi-user.target
sudo chown -R www-data:www-data /opt/netboxsudo systemctl daemon-reloadsudo systemctl start netbox netbox-rqsudo systemctl enable netbox netbox-rq# 查看运行状态sudo systemctl status netboxsudo systemctl status netbox-rq

sudo nano /etc/nginx/sites-available/netboxserver {listen 80;listen [::]:80;server_name xx.xx.xx.xx; #这里改成你的IP地址client_max_body_size 25m;location /static/ {alias /opt/netbox-4.2.5/netbox/static/;}location / {proxy_pass http://127.0.0.1:8001;proxy_set_header X-Forwarded-Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}}
sudo rm /etc/nginx/sites-enabled/defaultsudo ln -s /etc/nginx/sites-available/netbox /etc/nginx/sites-enabled/sudo nginx -tsudo systemctl restart nginxsudo systemctl enable nginx
sudo ufw allow 80/tcpsudo ufw reload
http://服务器IPcreatesuperuser创建的账号登录。
夜雨聆风