Skip to content

fqch1981/ipset

Repository files navigation

Linux IP 配置工具

一个用于 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 版本 支持状态 说明
Python 3.11+ ✅ 推荐 最佳性能,完善的功能支持
Python 3.6-3.10 ✅ 支持 功能完整,性能良好
Python 2.7 ⚠️ 兼容 基本功能可用,但强烈建议升级

为什么推荐 Python 3.11?

  • 执行速度比 2.7 快 2-3 倍
  • 更好的错误提示和调试体验
  • 更完善的标准库和第三方包支持
  • 长期安全更新和维护

升级 Python:

CentOS 7 / RHEL 7 (推荐方式)

# 方式 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: 从源码编译(如果以上方式不可用)
# 离线安装包会提供此选项

CentOS 8 / RHEL 8 / Fedora

# 使用 DNF
sudo dnf install python3.11

Ubuntu / Debian

sudo 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依赖包。

如果您只需要安装软件,请使用在线安装包,它会自动从网络下载依赖。

如果您需要准备完整的离线安装包(用于打包分发),请参考:

简述:

  1. 在有网络的Linux机器上运行 prepare_offline_linux.sh
  2. 将生成的 packages_offline.tar.gz 复制到Windows环境
  3. 在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 模式(图形界面)

# 默认启动 GUI(推荐使用)
IP_config

# 或使用别名
ipset

# 中文模式(默认)
IP_config -l zh

# 英文模式
IP_config -l en

桌面启动方式:

  • 双击桌面上的 IP_config 图标
  • 在应用菜单的"网络"或"设置"分类中找到"IP配置工具"

CLI 模式(命令行)

# 如果没有桌面环境,会自动进入 CLI 模式
IP_config

# 手动运行 CLI 模式
sudo python3 ip_config.py

程序功能

  1. 网卡选择:自动检测并选择要配置的网卡
  2. DHCP/静态IP:支持 DHCP 自动获取或手动配置静态 IP
  3. 子网掩码:使用标准点分格式(如 255.255.255.0)
  4. DNS 配置:支持多个 DNS 服务器,可动态添加/删除
  5. 配置应用
    • 临时配置:立即生效,重启后失效
    • 永久保存:写入系统配置文件,重启后保持
  6. 配置管理
    • 导出配置:保存当前配置到 JSON 文件
    • 导入配置:从 JSON 文件恢复配置
  7. 网络测试
    • Ping 测试:测试指定主机的连通性
    • 网络检测:综合检查网络状态
  8. 卸载程序
    • 通过 CLI 模式菜单选择 "9. 卸载程序"
    • 或运行卸载脚本:sudo bash /opt/ipset/uninstall_ipset.sh
    • 卸载前会检查是否有其他程序正在使用

开机自启服务(GUI)

如果需要在系统启动时自动启动 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

卸载脚本会:

  1. 停止并禁用 GUI 服务(如果已安装)
  2. 终止相关进程
  3. 删除以下文件和目录:
    • 程序目录:/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/

常见问题

1. 找不到 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

2. 权限错误

请使用 root 权限运行!示例:sudo python3 ip_config.py

解决:使用 sudo 运行程序

3. PySide6 未安装

PySide6 not found, install with: pip install PySide6

解决:运行 pip3 install PySide6 或使用离线安装包

4. 无法保存配置

检查以下内容:

  • 是否有 root 权限
  • 配置文件目录 /etc/ip_config/ 是否可写
  • 系统网络管理服务是否正常

5. GUI 无法显示

  • 确认系统有桌面环境
  • 确认 DISPLAY 环境变量已设置
  • 检查 X11 或 Wayland 服务是否运行

6. 离线安装包安装失败

  • 确认 Python 版本为 3.6 - 3.11(PySide6 不支持 Python 3.12+)
  • 确认系统架构为 x86_64/amd64
  • 检查安装包是否完整下载

7. 在线安装包安装失败

  • 检查网络连接是否正常
  • 如果 PyPI 源无法访问,可以配置国内镜像源
  • 重新运行安装程序

8. Python 版本过低(低于 2.7)

  • 如果系统有网络连接:请使用包管理器安装更高版本的 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 可以一键生成所有四个版本的安装包

License

本程序使用《GNU通用公共许可证(GPL)》

程序名称: ip_config 作者: 冯启昌(rnin) 电子邮箱: fqch1981@163.com

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors