# open-vpn-web **Repository Path**: notvip/open-vpn-web ## Basic Information - **Project Name**: open-vpn-web - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-28 - **Last Updated**: 2026-01-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OpenVPN Web Management Interface 基于纯Node.js开发的OpenVPN管理界面,用于管理OpenVPN客户端证书和配置文件。 ## 功能特性 - ✅ 查看用户列表 - ✅ 新增用户 - ✅ 禁用用户 - ✅ 下载用户配置文件 - ✅ 基于Web界面操作 - ✅ 支持Docker部署的OpenVPN ## 系统要求 - Ubuntu 22.04 LTS - Apache2 - Node.js 16+ - Docker 和 sudo docker compose - OpenVPN (通过Docker部署) ## 安装步骤 ### 1. 克隆项目 ```bash git clone /var/www/open-vpn-web cd /var/www/open-vpn-web ``` ### 2. 安装依赖 ```bash npm install ``` ### 3. 配置权限 确保项目目录有正确的权限: (可选) ```bash # sudo chown -R root:root /var/www/open-vpn-web # sudo chmod -R 755 /var/www/open-vpn-web ``` ## 部署步骤 ### 1. 配置Apache2 1. 启用必要的模块: ```bash sudo a2enmod proxy proxy_http headers ``` 2. 复制虚拟主机配置文件: ```bash sudo cp openvpn-web.conf /etc/apache2/sites-available/ ``` 3. 启用虚拟主机: ```bash sudo a2ensite openvpn-web.conf ``` 4. 重启Apache2: ```bash sudo systemctl restart apache2 ``` ### 2. 配置nodejs服务 1. 编辑sudoers文件: ```bash sudo apt update sudo apt install -y curl curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - curl -fsSL https://deb.nodesource.com/setup_current.x | sudo -E bash - sudo apt install -y nodejs node -v npm -v ``` 2、国内镜像 ```bash npm config set registry https://registry.npmmirror.com ``` 3. 安装依赖: ```bash cd /var/www/open-vpn-web npm install ``` ### 3. 配置Systemd服务 1. 复制systemd服务文件: ```bash cd /var/www/open-vpn-web/build sudo cp openvpn-web.service /etc/systemd/system/ ``` 2. 启用并启动服务: ```bash sudo systemctl daemon-reload sudo systemctl enable openvpn-web sudo systemctl start openvpn-web ``` 3. 检查服务状态: ```bash sudo systemctl status openvpn-web ``` ### 4. 配置OpenVPN服务 1. 安装docker: ```bash bash <(curl -sSL https://gitee.com/wanfeng789/shell/raw/master/install.sh) --mirror Tuna sudo mkdir -p /data/openvpn/ ··· 2. 配置openvpn: ```bash cd /var/www/open-vpn-web/build sudo mkdir -p /data/openvpn/ sudo cp docker-compose.yml generate_ovpn_client.sh clean-client.sh /data/openvpn/ cd /data/openvpn/ sudo chmod +x generate_ovpn_client.sh clean-client.sh sudo docker compose up -d # 更换为自己IP YOUR_SERVER_IP:PORT sudo docker run -v /etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://YOUR_SERVER_IP:PORT sudo docker run -v /etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki # 设置CA 密码 vim generate_ovpn_client.sh # 修改CA_PASS ``` ## 使用说明 ### 访问管理界面 在浏览器中访问服务器IP地址或域名,例如: ``` http://your-server-ip ``` ### 新增用户 1. 点击"+ New"按钮 2. 输入客户端名称 3. 点击"Add"按钮 系统会自动生成客户端证书和密钥。 ### 禁用用户 1. 找到要禁用的用户 2. 点击用户行右侧的开关按钮 3. 确认禁用操作 系统会撤销客户端证书,使其无法连接。 ### 下载配置文件 1. 找到要下载配置文件的用户 2. 点击用户行右侧的下载按钮(⬇) 系统会生成并下载包含证书和密钥的.ovpn配置文件。 ## 技术实现 - **后端**:Node.js + Express - **前端**:HTML5 + CSS3 + JavaScript + EJS模板引擎 - **部署**:Apache2反向代理 + Systemd服务管理 - **OpenVPN集成**:通过sudo docker compose执行OpenVPN命令 ## 核心命令 项目使用以下Docker命令与OpenVPN交互: 1. **生成客户端证书和密钥**: ```bash sudo docker compose run --rm openvpn easyrsa build-client-full 用户名 nopass ``` 2. **生成.ovpn配置文件**: ```bash sudo docker compose run --rm openvpn ovpn_getclient 用户名 ``` 3. **查看客户端列表**: ```bash sudo docker compose run --rm openvpn cat /etc/openvpn/pki/index.txt ``` 4. **撤销客户端证书**: ```bash ``` ## 常见问题 ### Q: 为什么无法生成客户端证书? A: 请检查: - Docker服务是否运行 - OpenVPN容器是否正常 - sudo权限是否配置正确 ### Q: 为什么网页无法访问? A: 请检查: - Apache2服务是否运行 - Node.js服务是否运行 - 防火墙是否允许80端口访问 ### Q: 下载的配置文件无法使用? A: 请检查: - 客户端证书是否已生成 - OpenVPN服务是否正常运行 - 配置文件中的服务器地址是否正确 ## 许可证 MIT License