ARTICLE · 1218188
告别Excel管理IP!NetBox完整部署指南,搭建企业基础设施数据源
导语
不少中小团队的网络资产、IP网段、机房设备信息,依旧依靠多人协作维护的表格文档。随着服务器、交换机数量持续增加,手工台账的弊端会不断暴露:网段分配冲突、资产位置信息滞后、链路关系无从追溯,更难对接自动化运维平台。
想要把网络资产数据标准化,开源工具NetBox是行业内认可度很高的选择。它不只是一款IP地址管理工具,而是一套面向数据中心的基础设施建模平台,把机房、机柜、硬件设备、接口、IP、物理线缆全部关联起来,作为整个运维体系的「唯一可信数据源(Source of Truth)」。
❝重要概念区分:NetBox的工作模式是「记录基础设施预期设计状态」,不是自动扫描发现设备。它保存的是运维团队规划的资产基线,和采集设备实时状态的监控工具定位完全不同,二者可以搭配使用。
❞
一、开源IPAM工具横向对比
市面上开源IP管理工具不少,很多人纠结NetBox和PHP-IPAM怎么选,我们从实际运维场景做对比:
「什么时候优先选NetBox?」如果你团队不只是想单纯管理IP,还需要统一管理机房机柜、硬件资产、设备接口、物理链路,并且计划后续落地网络自动化,NetBox会是更合适的长期方案。 如果需求仅仅是简单的IP地址登记,不需要物理资产拓扑,则轻量PHP-IPAM也能满足。
二、部署NetBox完整实操教程
❝环境:Ubuntu22.04,部署方式:源码部署;Web服务栈:PostgreSQL + Redis + Gunicorn + Nginx 部署整体流程:系统依赖安装 → 数据库初始化 → 源码部署 → 配置文件调优 → 应用服务配置 → Nginx反向代理
❞
1. 系统环境准备,安装依赖组件
更新系统软件源,一次性安装数据库、缓存、Python环境、编译依赖包
sudo apt update && sudo apt upgrade -ysudo apt install -y postgresql postgresql-contrib redis-server git \python3 python3-pip python3-venv python3-dev build-essential \libxml2-dev libxslt1-dev libffi-dev libpq-dev libssl-dev zlib1g-dev unzip2. PostgreSQL数据库创建与授权
NetBox数据全部存储在PostgreSQL,先创建独立数据库与数据库账号,不要使用postgres超级账号运行业务。 切换postgres用户进入数据库交互终端:
sudo -u postgres psql❝提示:执行时出现
❞could not change directory警告无需处理,只要出现postgres=#代表进入成功。
执行SQL语句,「务必自定义高强度数据库密码」
CREATEDATABASE netbox;CREATEUSER netbox WITHPASSWORD'自定义强密码';GRANTALLPRIVILEGESONDATABASE netbox TO netbox;\q3. 获取NetBox源码,基础环境配置
两种源码获取方式,优先Git方式;网络不稳定、GitHub连接超时,改用压缩包方案。
方案A:Git拉取源码(推荐)
sudo git clone -b master [https://github.com/netbox-community/netbox.git](https://github.com/netbox-community/netbox.git) /opt/netbox❝常见报错:HTTP2 framing error、连接重置,切换方案B。
❞
方案B:源码压缩包离线部署 在GitHub官网下载源码压缩包,使用SFTP上传至服务器/tmp目录,解压部署
cd /tmpsudo unzip netbox-master.zipsudo mv /tmp/netbox-netbox-main /opt/netbox统一执行后续配置:
# 创建专用系统账号,用于运行NetBox服务sudo adduser --system --group netbox# 目录授权,保证服务读写权限sudo chown -R netbox:netbox /opt/netbox# 复制配置模板文件cd /opt/netbox/netbox/netbox/sudo cp configuration_example.py configuration.py# 生成应用密钥SECRET_KEYsudo /opt/netbox/netbox/generate_secret_key.py修改核心配置文件 configuration.py
sudo nano /opt/netbox/netbox/netbox/configuration.py必须配置三项核心参数:
SECRET_KEY:粘贴上一步生成的随机密钥字符串DATABASES:填写数据库名称、用户名、刚才设置的数据库密码ALLOWED_HOSTS:填写服务器IP;测试环境可临时写['*'],生产环境严格限制
4. 执行初始化脚本,创建后台管理员账号
运行NetBox自带初始化脚本,自动安装Python依赖、初始化数据库结构
sudo /opt/netbox/upgrade.sh终端输出Upgrade complete!代表初始化完成,脚本自动创建Python虚拟环境/opt/netbox/venv。
创建后台超级管理员账号,用于Web页面登录
cd /opt/netbox/netboxsource ../venv/bin/activatepython3 manage.py createsuperuser❝忘记管理员账号密码,重复执行这条命令,即可重置账号。
❞
5. Systemd托管Gunicorn应用服务
NetBox后端基于Gunicorn运行WSGI服务,配置systemd实现开机自启、进程守护。
# 复制官方提供的服务单元文件sudo cp /opt/netbox/contrib/*.service /etc/systemd/system/❝坑点提醒:默认service配置引用不存在的gunicorn.py配置文件,启动会报错。编辑netbox.service修改启动命令。
❞
sudo nano /etc/systemd/system/netbox.service修改ExecStart参数:
ExecStart=/opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox netbox.wsgi重载systemd配置,启动并设置开机自启
sudo systemctl daemon-reloadsudo systemctl start netbox netbox-rqsudo systemctl enable netbox netbox-rq# 查看服务状态,确认 active (running)sudo systemctl status netbox6. Nginx反向代理配置
Nginx作为前端反向代理,处理静态资源、转发请求至Gunicorn。
sudo apt install -y nginxsudo cp /opt/netbox/contrib/nginx.conf /etc/nginx/sites-available/netboxsudo nano /etc/nginx/sites-available/netbox两处关键修改:
修改反向代理端口,Gunicorn监听本地8000端口
proxy_pass [http://127.0.0.1:8000](http://127.0.0.1:8000);测试环境临时注释全部SSL相关配置,避免Nginx校验证书报错
# listen [::]:443 ssl ipv6only=off;# ssl_certificate /etc/ssl/certs/netbox.crt;# ssl_certificate_key /etc/ssl/private/netbox.key;# listen [::]:80 ipv6only=off;# return 301 https://$host$request_uri;启用站点,校验Nginx配置并重启服务
sudo rm /etc/nginx/sites-enabled/defaultsudo ln -s /etc/nginx/sites-available/netbox /etc/nginx/sites-enabled/sudo nginx -tsudo systemctl restart nginx✅ 部署完成!浏览器访问 http://服务器IP,使用管理员账号登录,就可以录入机房、设备、IP网段资产。
三、运维排错速查表
python3 manage.py createsuperuser重建管理员账号 | ||
四、生产环境优化建议 & NetBox版本升级
「HTTPS加密」:生产环境严禁裸HTTP访问。推荐Certbot部署Let’s Encrypt免费证书,开启443端口。 「安全加固」: ALLOWED_HOSTS不要使用通配符*;防火墙限制访问源IP;定期备份PostgreSQL数据库。「NetBox版本升级」
cd /opt/netbox/sudo git pullsudo ./upgrade.shsudo systemctl restart netbox netbox-rq五、文末小结
NetBox的价值,不在于替代监控系统,而是帮运维团队搭建一套标准化资产基线。 把机房机柜、服务器、交换机、IP网段、接口链路全部录入NetBox后,资产信息统一、可查询、可API调用。后续可以对接自动化运维平台,实现IP自动分配、配置生成、资产巡检,告别Excel手工台账带来的各种问题。
❝项目地址 NetBox官网:https://netboxlabs.com/products/netbox/GitHub开源仓库:https://github.com/netbox-community/netbox
❞















































































