项目概述
PySslvpn是一个功能完整的开源Python SSL VPN客户端,支持连接通用SSL VPN服务器,具备多配置管理、自动重连、网络配置自动清理等高级功能。 基于纯Python完整实现的SSL VPN客户端。这个方案使用Python进行TLS通信,并包含完整的VPN客户端功能,作者是zouhong。
安装
从PyPI安装(推荐)
pip install pysslvpn
从源码安装
# 克隆仓库
git clone https://github.com/proyy/PySslvpn.git
cd PySslvpn
# 安装依赖
pip install -r requirements.txt
# 安装包
pip install .
使用
命令行使用
安装后可以直接使用 pysslvpn 命令:
# 连接VPN服务器
sudo pysslvpn connect --server vpn.example.com --port 443 --username user --password pass
# 使用已保存的配置连接
sudo pysslvpn connect --config myvpn
# 启用自动重连
sudo pysslvpn connect --server vpn.example.com --username user --password pass --auto-reconnect --max-retries 5
# 列出所有保存的配置
pysslvpn list
# 保存配置
pysslvpn save myvpn --server vpn.example.com --username user
# 删除配置
pysslvpn delete myvpn
# 设置默认配置
pysslvpn set-default myvpn
从源码运行
# 安装依赖
pip install tlslite-ng python-tun-tap
# 运行客户端
sudo python cli.py connect vpn.example.com -u your_username
带参数运行:
bash sudo python cli.py connect vpn.example.com -u your_username -p your_password --port 8443 --ignore-cert
使用已保存的配置:
bash sudo python cli.py connect --config my_config
启用自动重连:
bash sudo python cli.py connect vpn.example.com -u your_username --auto-reconnect --max-retries 5 --retry-delay 10 功能特性 ✅ 纯Python实现:使用tlslite-ng进行TLS通信
✅ 通用SSL VPN协议:支持标准SSL VPN服务器
✅ 完整的认证流程:用户名/密码认证
✅ 证书错误处理:可配置忽略无效证书
✅ 动态配置接收:接收服务器下发的路由和DNS
✅ 自动资源清理:断开时清理所有网络配置
✅ TUN接口管理:自动创建和配置虚拟接口
✅ 多配置管理:支持多个VPN配置的保存、切换和管理
✅ 自动重连机制:连接中断时自动重连,可配置重试次数和延迟
✅ 完整CLI界面:支持子命令模式,提供友好的命令行交互
协议说明 这个实现使用简单的应用层协议:
数据包格式:5字节头部(1字节类型 + 4字节长度) + 载荷
包类型:
0: IP数据包
1: 控制消息
2: 认证数据
3: 配置信息
配置管理
PySslvpn支持多配置管理,可以保存多个VPN服务器配置:
# 保存配置
sudo python cli.py save my_config vpn.example.com -u username -p password --port 8443
# 列出所有配置
sudo python cli.py list
# 删除配置
sudo python cli.py delete my_config
# 设置默认配置
sudo python cli.py set-default my_config
CLI命令参考
connect: 连接VPN服务器list: 列出所有保存的配置save: 保存新的VPN配置delete: 删除指定的配置set-default: 设置默认配置
注意事项
权限要求:需要root权限创建TUN设备和管理网络配置
证书安全:生产环境不应使用--ignore-cert选项
平台支持:主要在Linux上测试,其他Unix系统可能需要调整
服务器兼容:需要服务器端实现相同的协议格式
自动重连:启用自动重连时,确保网络环境稳定,避免无限重连
这个实现提供了完整的SSL VPN客户端功能,可以连接支持标准SSL VPN协议的服务器,并正确处理路由、DNS等网络配置。
开源协议
本项目采用 GNU General Public License v3.0 (GPL-3.0) 开源协议。
重要条款:
- 您可以自由使用、修改和分发本软件
- 任何基于本软件的衍生作品必须采用相同的开源协议
- 必须提供完整的源代码
- 禁止商业使用
完整的协议条款请参阅 LICENSE 文件。
Metadata
Release files for pysslvpn 1.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pysslvpn-1.0.4.tar.gz | 21.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pysslvpn-1.0.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.8 kB
Release files / pysslvpn-1.0.4.tar.gz
| Download URL | pysslvpn-1.0.4.tar.gz |
|---|---|
| Size | 21.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3fd162e9fb0458219be58f74e97a6bf5e40e87d4592d5e0381686cdf03edb847
|
|
BLAKE2b-256 checksum How to use checksums |
872bef62202069c196efb59613b9cc576a998bab34ba15e620714efcb8bddeae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.11
|
Release files / pysslvpn-1.0.4-py3-none-any.whl
| Download URL | pysslvpn-1.0.4-py3-none-any.whl |
|---|---|
| Size | 20.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fc6100ab3f557737fdb63d9388a055760d7cfb96fa82c90fabf0a2dc7f803996
|
|
BLAKE2b-256 checksum How to use checksums |
e008e2fb00a20406ea2644aaa4423b7ca6bc79a76a5d13040001b27ecaedd64b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.11
|