一个用于 Linux 系统的网络 IP 配置工具,支持 GUI 和 CLI 双模式。
CentOS 7 / RHEL 7 用户注意: 如果遇到 Python 3.11 编译问题,请参考 Python 3.11 安装指南
- ✅ 支持多种 Linux 发行版(Ubuntu/Debian、CentOS/RHEL、Kylin、UOS)
- ✅ 双模式:GUI 图形界面 + CLI 命令行界面
- ✅ 多语言支持(中文/英文)
- ✅ 完整的网络配置管理:IP地址、子网掩码、网关、DNS
- ✅ 支持多个 DNS 服务器配置
- ✅ 临时配置和永久保存
- ✅ 配置导入/导出
- ✅ 网络连通性测试(支持自定义包大小和数量)
- ✅ 自动检测所有网卡并显示配置信息
- ✅ 兼容 Python 2.7 和 Python 3.x(推荐 3.11)
- ✅ 内置 Python 版本检查和升级提示
- ✅ 智能网络检测(离线环境不提示在线升级)
- ✅ 一键卸载功能
- Python 2.7 或 Python 3.6+(推荐 3.11)
- Linux 操作系统(Ubuntu、CentOS、Kylin、UOS 等)
- root 权限
| Python 版本 | 支持状态 | 说明 |
|---|---|---|
| Python 3.11+ | ✅ 推荐 | 最佳性能,完善的功能支持 |
| Python 3.6-3.10 | ✅ 支持 | 功能完整,性能良好 |
| Python 2.7 | 基本功能可用,但强烈建议升级 |
为什么推荐 Python 3.11?
- 执行速度比 2.7 快 2-3 倍
- 更好的错误提示和调试体验
- 更完善的标准库和第三方包支持
- 长期安全更新和维护
升级 Python:
# 方式 1: 使用 SCL (Software Collections)
sudo yum install centos-release-scl
sudo yum install rh-python311
# 启用 Python 3.11
scl enable rh-python311 bash
# 方式 2: 使用 EPEL 仓库
sudo yum install epel-release
sudo yum install python311
# 方式 3: 从源码编译(如果以上方式不可用)
# 离线安装包会提供此选项# 使用 DNF
sudo dnf install python3.11sudo apt update
sudo apt install python3.11 python3.11-venv- 离线安装包包含 Python 3.11 源码
- 安装时会提供编译选项(需要 10-30 分钟)
- 编译需要 gcc、make 等编译工具
我们提供四种安装方式,根据您的网络环境选择:
| 安装包类型 | 文件名 | 大小 | 网络要求 | 推荐场景 |
|---|---|---|---|---|
| 在线安装包 | ipset-online-installer-1.0.0.run |
~20 KB | 需要联网 | 网络环境良好,快速安装 |
| 离线安装包 | ipset-offline-installer-1.0.0.run |
~30 MB+ | 无需联网 | 无网络环境,或网络受限 |
| 便携版 | ipset-portable-1.0.0.tar.gz |
~20 KB | 首次需要联网 | 临时使用,不安装到系统 |
| 离线便携版 | ipset-portable-offline-1.0.0.tar.gz |
~30 MB+ | 无需联网 | 临时使用,离线环境 |
⚠️ 重要提示:离线包依赖准备离线安装包和离线便携版需要预先在Linux环境下准备Python依赖包。
如果您只需要安装软件,请使用在线安装包,它会自动从网络下载依赖。
如果您需要准备完整的离线安装包(用于打包分发),请参考:
- 离线包准备指南 - 详细步骤说明
简述:
- 在有网络的Linux机器上运行
prepare_offline_linux.sh- 将生成的
packages_offline.tar.gz复制到Windows环境- 在Windows环境运行
python unified_builder.py打包
下载地址:
# 从本地 downloads 目录
wget /path/to/downloads/ipset-online-installer-1.0.0.run
# 或直接使用
cp /path/to/downloads/ipset-online-installer-1.0.0.run .安装步骤:
# 1. 添加执行权限
chmod +x ipset-installer-1.0.0.run
# 2. 运行安装程序
sudo bash ipset-installer-1.0.0.run
# 3. 安装完成后即可使用
IP_config特点:
- 文件最小,下载快速
- 安装时自动从网络下载 PySide6 依赖
- 适合网络环境良好的场景
- 自动配置 PATH 和桌面快捷方式
下载地址:
# 从本地 downloads 目录
wget /path/to/downloads/ipset-offline-installer-1.0.0.run
# 或直接使用
cp /path/to/downloads/ipset-offline-installer-1.0.0.run .注意: 当前版本不包含依赖包,如需完整离线支持,请运行:
# 在Linux环境或WSL中
bash prepare_offline_linux.sh
python3 unified_builder.py安装步骤:
# 1. 添加执行权限
chmod +x ipset-offline-installer-1.0.0.run
# 2. 运行安装程序(无需网络)
sudo bash ipset-offline-installer-1.0.0.run
# 3. 安装完成后即可使用
IP_config特点:
- 包含所有依赖(PySide6 wheel 包)
- 无需网络连接即可安装
- 适合内网、无网络或网络受限环境
- 安装包较大,下载时间较长
- 自动配置 PATH 和桌面快捷方式
下载地址:
# 从本地 downloads 目录
wget /path/to/downloads/ipset-portable-1.0.0.tar.gz
# 或直接使用
cp /path/to/downloads/ipset-portable-1.0.0.tar.gz .下载地址:
# 从本地 downloads 目录
wget /path/to/downloads/ipset-portable-offline-1.0.0.tar.gz
# 或直接使用
cp /path/to/downloads/ipset-portable-offline-1.0.0.tar.gz .注意: 当前版本不包含依赖包,如需完整离线支持,请运行:
# 在Linux环境或WSL中
bash prepare_offline_linux.sh
python3 unified_builder.py使用步骤:
# 1. 解压压缩包
tar -xzf ipset-portable-1.0.0.tar.gz
cd ipset-portable-1.0.0
# 2. 安装依赖(需要联网)
pip3 install -r requirements.txt
# 3. 运行程序
sudo python3 ip_config.py特点:
- 不安装到系统,解压即用
- 需要手动安装 Python 依赖
- 适合临时使用或测试
- 不会修改系统配置
如果您想从源代码手动安装:
# 1. 安装系统依赖
# Ubuntu/Debian:
sudo apt-get install python3 python3-pip iproute2 netplan.io
# CentOS/RHEL:
sudo yum install python3 python3-pip iproute
# 2. 安装 Python 依赖
pip3 install -r requirements.txt
# 或
pip3 install --break-system-packages -r requirements.txt
# 3. 运行程序
sudo python3 ip_config.py# 使用提供的打包脚本
bash build.sh
# 生成的文件:ipset-installer-1.0.0.run# 1. 先在联网的 Linux 机器上准备依赖包
bash prepare_offline_linux.sh
# 2. 然后打包离线安装包
python3 build_offline_simple.py
# 生成的文件:ipset-offline-installer-1.0.0.run# 使用便携版打包脚本
bash build_portable.sh
# 生成的文件:ipset-portable-1.0.0.tar.gz# 默认启动 GUI(推荐使用)
IP_config
# 或使用别名
ipset
# 中文模式(默认)
IP_config -l zh
# 英文模式
IP_config -l en桌面启动方式:
- 双击桌面上的
IP_config图标 - 在应用菜单的"网络"或"设置"分类中找到"IP配置工具"
# 如果没有桌面环境,会自动进入 CLI 模式
IP_config
# 手动运行 CLI 模式
sudo python3 ip_config.py- 网卡选择:自动检测并选择要配置的网卡
- DHCP/静态IP:支持 DHCP 自动获取或手动配置静态 IP
- 子网掩码:使用标准点分格式(如 255.255.255.0)
- DNS 配置:支持多个 DNS 服务器,可动态添加/删除
- 配置应用:
- 临时配置:立即生效,重启后失效
- 永久保存:写入系统配置文件,重启后保持
- 配置管理:
- 导出配置:保存当前配置到 JSON 文件
- 导入配置:从 JSON 文件恢复配置
- 网络测试:
- Ping 测试:测试指定主机的连通性
- 网络检测:综合检查网络状态
- 卸载程序:
- 通过 CLI 模式菜单选择 "9. 卸载程序"
- 或运行卸载脚本:
sudo bash /opt/ipset/uninstall_ipset.sh - 卸载前会检查是否有其他程序正在使用
如果需要在系统启动时自动启动 GUI 界面:
# 安装服务
sudo bash install_service.sh
# 启动服务
sudo systemctl start ipset-gui
# 查看状态
sudo systemctl status ipset-gui
# 停止服务
sudo systemctl stop ipset-gui
# 禁用开机自启
sudo systemctl disable ipset-gui注意:GUI 服务需要图形界面环境才能正常显示。建议在用户登录后手动启动。
# 运行程序
IP_config
# 在 CLI 模式菜单中选择 "9. 卸载程序"程序会显示将要删除的文件和目录,并检查是否有其他进程正在使用。
sudo bash /opt/ipset/uninstall_ipset.sh卸载脚本会:
- 停止并禁用 GUI 服务(如果已安装)
- 终止相关进程
- 删除以下文件和目录:
- 程序目录:
/opt/ipset/ - 配置目录:
/etc/ip_config/ - 日志目录:
/var/log/ip_config/ - 服务文件:
/etc/systemd/system/ipset-gui.service - 桌面启动器:
/usr/share/applications/IP_config.desktop - 命令行工具:
/usr/local/bin/IP_config - 命令行链接:
/usr/local/bin/ipset - 用户桌面快捷方式
- 程序目录:
注意:卸载程序不会删除 Python 解释器,除非确认没有其他程序使用。
- 在离线环境中,不会提示在线升级 Python
- 如果 Python 版本低于 2.7,程序会拒绝安装
- 建议使用包含 Python 3.11 的离线安装包
IPset/
├── ip_config.py # 主程序入口
├── network_config.py # 网络配置业务逻辑
├── requirements.txt # Python 依赖
├── deploy.sh # 在线部署脚本
├── build.sh # .run 安装包打包脚本
├── build_portable.sh # 便携版打包脚本
├── install_service.sh # 服务安装脚本
├── README.md # 本文件
└── window/
├── __init__.py
└── gui_window.py # GUI 界面实现
| 文件/目录 | 位置 | 说明 |
|---|---|---|
| 程序文件 | /opt/ipset/ |
主程序和依赖 |
| 启动命令 | /usr/local/bin/IP_config |
主启动命令 |
| 命令别名 | /usr/local/bin/ipset |
别名链接 |
| 桌面启动器 | /usr/share/applications/IP_config.desktop |
系统菜单项 |
| 桌面快捷方式 | ~/Desktop/IP_config.desktop |
桌面图标 |
| 配置目录 | /etc/ip_config/ |
导出的配置文件 |
| 日志目录 | /var/log/ip_config/ |
操作日志 |
- 配置导出目录:
/etc/ip_config/ - 日志目录:
/var/log/ip_config/
bash: IP_config: command not found解决方案:
方法一:重新加载配置文件
source ~/.bashrc # 或
source ~/.zshrc方法二:手动添加到 PATH(临时)
export PATH=/usr/local/bin:$PATH方法三:使用完整路径
sudo /usr/local/bin/IP_config请使用 root 权限运行!示例:sudo python3 ip_config.py
解决:使用 sudo 运行程序
PySide6 not found, install with: pip install PySide6
解决:运行 pip3 install PySide6 或使用离线安装包
检查以下内容:
- 是否有 root 权限
- 配置文件目录
/etc/ip_config/是否可写 - 系统网络管理服务是否正常
- 确认系统有桌面环境
- 确认
DISPLAY环境变量已设置 - 检查 X11 或 Wayland 服务是否运行
- 确认 Python 版本为 3.6 - 3.11(PySide6 不支持 Python 3.12+)
- 确认系统架构为 x86_64/amd64
- 检查安装包是否完整下载
- 检查网络连接是否正常
- 如果 PyPI 源无法访问,可以配置国内镜像源
- 重新运行安装程序
- 如果系统有网络连接:请使用包管理器安装更高版本的 Python
- 如果系统无网络连接:使用离线安装包(包含 Python 3.11 源码)
- 最低要求为 Python 2.7,低于此版本将无法安装
- GUI 框架:PySide6 (Qt6)
- 网络管理:iproute2 (ip 命令)、netplan、ifcfg 文件
- 配置管理:JSON 格式配置文件
- 模块化设计:UI 层与业务逻辑分离
- 文件名:
ipset-online-installer-1.0.0.run - 大小: 27.96 KB
- 下载地址: GitHub Releases
- MD5:
8FEB8BC9DCCE6F4D2593897A71199C74 - 说明: 推荐使用,安装时自动下载依赖,文件极小
- 文件名:
ipset-offline-installer-1.0.0.run - 大小: 279.93 MB
- 下载地址: GitHub Releases
- MD5:
8557DE2CC823110F37CE9025E7B39C81 - 说明: 包含 Python 3.11 源码,无需联网即可安装
- 文件名:
ipset-portable-1.0.0.tar.gz - 大小: 24.72 KB
- 下载地址: GitHub Releases
- MD5:
49328795B955135101007C33D068378E - 说明: 无需安装,解压即用,适合临时测试
- 文件名:
ipset-portable-offline-1.0.0.tar.gz - 大小: 279.92 MB
- 下载地址: GitHub Releases
- MD5:
D982EEE119ED3DA25D73AB36DAC0CBB9 - 说明: 便携版,包含 Python 3.11 源码,无需联网
注意:
- 所有安装包已生成并放在
downloads目录中- 如需生成包含完整依赖的离线包,请在Linux环境或WSL中运行:
bash prepare_offline_linux.sh python3 unified_builder.py- 统一打包工具
unified_builder.py可以一键生成所有四个版本的安装包
本程序使用《GNU通用公共许可证(GPL)》
程序名称: ip_config 作者: 冯启昌(rnin) 电子邮箱: fqch1981@163.com