phpIPAM IP 地址管理系统教程
phpIPAM 是一款开源的 IP 地址管理(IPAM)系统,提供可视化的 IP 地址规划、子网管理、VLAN 跟踪、设备关联和网络扫描等功能。随着网络规模的增长,使用电子表格管理 IP 地址越来越不可靠,phpIPAM 可以有效解决这个问题。本文将介绍如何在搬瓦工 VPS 上部署 phpIPAM,并讲解基本的使用方法。
一、功能概述
- IP 地址管理:IPv4 和 IPv6 地址的分配、跟踪和回收。
- 子网管理:层级化的子网规划,支持 CIDR 划分和可视化展示。
- VLAN 管理:VLAN ID 和域的管理与跟踪。
- 网络扫描:自动扫描子网发现在线主机。
- REST API:提供完整的 API 接口,支持自动化集成。
- 权限控制:多用户多角色的访问控制系统。
二、安装依赖
apt update
apt install apache2 php php-mysql php-curl php-gd php-intl php-pear php-imap php-mbstring php-xml php-gmp php-ldap php-cli mariadb-server git fping -y
三、配置数据库
mysql -u root <<MYSQL
CREATE DATABASE phpipam;
CREATE USER 'phpipam'@'localhost' IDENTIFIED BY 'PhpipamPass123';
GRANT ALL PRIVILEGES ON phpipam.* TO 'phpipam'@'localhost';
FLUSH PRIVILEGES;
MYSQL
四、下载安装 phpIPAM
cd /var/www/html
git clone --recursive https://github.com/phpipam/phpipam.git
cd phpipam
git checkout master
# 复制配置文件
cp config.dist.php config.php
nano config.php
修改数据库连接信息:
$db['host'] = 'localhost';
$db['user'] = 'phpipam';
$db['pass'] = 'PhpipamPass123';
$db['name'] = 'phpipam';
$db['port'] = 3306;
五、配置 Apache
cat > /etc/apache2/sites-available/phpipam.conf <<'EOF'
ServerName ipam.example.com
DocumentRoot /var/www/html/phpipam
Options FollowSymLinks
AllowOverride All
Require all granted
EOF
a2ensite phpipam
a2enmod rewrite
systemctl reload apache2
# 设置目录权限
chown -R www-data:www-data /var/www/html/phpipam
六、Web 安装向导
打开浏览器访问 http://你的服务器IP/phpipam,选择「New phpipam installation」开始安装。安装向导会自动导入数据库架构并创建管理员账户。默认管理员账户为 admin,密码为 ipamadmin,首次登录后务必修改密码。
七、使用 Docker 部署
mkdir -p /opt/phpipam && cd /opt/phpipam
cat > docker-compose.yml <<'EOF'
version: "3"
services:
phpipam-web:
image: phpipam/phpipam-www:latest
ports:
- "8080:80"
environment:
TZ: Asia/Shanghai
IPAM_DATABASE_HOST: phpipam-mariadb
IPAM_DATABASE_PASS: phpipampassword
IPAM_DATABASE_WEBHOST: "%"
restart: unless-stopped
depends_on:
- phpipam-mariadb
phpipam-cron:
image: phpipam/phpipam-cron:latest
environment:
TZ: Asia/Shanghai
IPAM_DATABASE_HOST: phpipam-mariadb
IPAM_DATABASE_PASS: phpipampassword
SCAN_INTERVAL: "1h"
restart: unless-stopped
depends_on:
- phpipam-mariadb
phpipam-mariadb:
image: mariadb:latest
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: phpipam
MYSQL_USER: phpipam
MYSQL_PASSWORD: phpipampassword
restart: unless-stopped
volumes:
- phpipam-db-data:/var/lib/mysql
volumes:
phpipam-db-data:
EOF
docker compose up -d
八、基本使用
8.1 创建子网
登录后进入「Subnets」页面,点击「Add subnet」添加子网。输入子网地址(如 192.168.1.0/24)、描述信息和所属 VLAN,phpIPAM 会自动计算子网容量和可用 IP 数量。
8.2 IP 地址分配
在子网详情页面可以看到所有 IP 地址的分配状态。点击空闲 IP 地址可以手动分配,也可以使用「First free」功能自动选择第一个可用 IP。
8.3 网络扫描
# 确保 fping 已安装
apt install fping -y
# 在 phpIPAM 管理界面开启扫描功能
# Administration > Scan agents > Add agent
8.4 REST API 使用
# 获取 API Token
curl -X POST "http://ipam.example.com/api/myapp/user/" \
--user "admin:password"
# 查询子网信息
curl -X GET "http://ipam.example.com/api/myapp/subnets/" \
-H "token: your_api_token"
# 获取子网中的 IP 地址列表
curl -X GET "http://ipam.example.com/api/myapp/subnets/1/addresses/" \
-H "token: your_api_token"
# 创建新的 IP 地址记录
curl -X POST "http://ipam.example.com/api/myapp/addresses/" \
-H "token: your_api_token" \
-d "subnetId=1&ip=192.168.1.100&hostname=webserver01&description=Web Server"
九、常见问题
9.1 扫描功能不工作
# 检查 fping 权限
chmod u+s /usr/sbin/fping
# 手动测试扫描
fping -g 192.168.1.0/24 -a
9.2 API 返回 403 错误
在 phpIPAM 管理界面中进入 Administration > API,确保已创建 API 应用并设置了正确的权限。
总结
phpIPAM 是管理 IP 地址资源最实用的开源工具,特别适合网络规模较大、需要精细管理 IP 分配的运维场景。配合 NetBox 基础设施管理 可以实现更全面的网络资源管理。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的优惠,通过 bwh81.net 进入官网购买。