本文目录导读:

- 基于 OpenVPN 的批量删除(使用
easy-rsa或配置文件) - 基于 WireGuard 的批量删除
- 基于 SoftEther VPN 的批量删除(通过 vpncmd)
- 基于数据库的批量删除(如 FreeRADIUS、MySQL)
- 通用安全注意事项
- 批量删除用户脚本模板(通用)
要批量删除VPN用户,具体方法取决于你使用的VPN服务器软件(如OpenVPN、WireGuard、SoftEther、IPSec等)以及用户管理方式(如通过配置文件、数据库或LDAP),以下是一些常见场景的脚本示例和步骤:
基于 OpenVPN 的批量删除(使用 easy-rsa 或配置文件)
如果用户是通过 easy-rsa 管理的证书,或者通过配置文件(如 ccd 或 ipp.txt)控制,可以编写脚本来批量操作。
吊销证书(推荐)
使用 easy-rsa 吊销单个证书:
./easyrsa revoke <username>
批量吊销(假设用户列表在 users.txt 中):
#!/bin/bash
while IFS= read -r user; do
cd /path/to/easy-rsa
./easyrsa revoke "$user" <<< "yes"
done < users.txt
删除客户端配置文件
如果用户通过 .ovpn 文件连接,且服务器通过 ccd 目录控制:
#!/bin/bash
for user in $(cat user_list.txt); do
rm -f /etc/openvpn/ccd/$user
echo "Deleted config for $user"
done
基于 WireGuard 的批量删除
WireGuard 的用户通常以 [Peer] 块形式存在配置文件中,批量删除需要编辑配置文件。
脚本示例(删除多个 Peer)
假设用户公钥列表在 keys_to_delete.txt 中:
#!/bin/bash
config_file="/etc/wireguard/wg0.conf"
backup_file="$config_file.bak"
cp "$config_file" "$backup_file"
while IFS= read -r pubkey; do
# 删除对应 Peer 块(从 [Peer] 到下一行空行或文件结尾)
sed -i "/\[Peer\]/,/^$/ { /$pubkey/,/^$/d }" "$config_file"
echo "Removed peer with key: $pubkey"
done < keys_to_delete.txt
systemctl restart wg-quick@wg0
基于 SoftEther VPN 的批量删除(通过 vpncmd)
SoftEther 提供命令行工具 vpncmd,批量删除用户:
#!/bin/bash
server="localhost"
hub="VPNHUB"
password="your_password"
while IFS= read -r user; do
./vpncmd localhost /SERVER /PASSWORD:$password /HUB:$hub \
UserDelete "$user" /NOPASS
echo "Deleted user: $user"
done < user_list.txt
基于数据库的批量删除(如 FreeRADIUS、MySQL)
如果用户存储在数据库中(MySQL):
#!/bin/bash
mysql -u root -p -e "
USE radius_db;
DELETE FROM radcheck WHERE username IN ('user1','user2','user3');
"
或从文件读取:
while IFS= read -r user; do
mysql -u root -p -e "DELETE FROM radcheck WHERE username='$user';"
done < users.txt
通用安全注意事项
- 备份:执行前备份配置文件或数据库。
- 验证用户列表:确保文件格式正确,排除空行或错误用户名。
- 测试模式:先使用
echo模拟操作,确认无误后再执行实际删除。 - 权限:脚本可能需要 root 权限运行(如
sudo ./delete_users.sh)。
批量删除用户脚本模板(通用)
#!/bin/bash
# 批量删除 VPN 用户脚本
# 用法: ./delete_vpn_users.sh user_list.txt
LIST_FILE="$1"
if [[ ! -f "$LIST_FILE" ]]; then
echo "Usage: $0 <user_list_file>"
exit 1
fi
echo "Starting deletion of VPN users..."
while IFS= read -r username; do
# 去除空格
username=$(echo "$username" | tr -d '[:space:]')
if [[ -z "$username" ]]; then
continue
fi
echo "Processing: $username"
# 在这里替换为实际的删除命令
# 删除 OpenVPN 证书
# cd /etc/openvpn/easy-rsa && ./easyrsa revoke "$username" <<< "yes"
# 或者删除 WireGuard peer
# sed -i "/\[Peer\]/,/^$/ { /$username/,/^$/d }" /etc/wireguard/wg0.conf
done < "$LIST_FILE"
echo "Batch deletion complete."
- 如果你使用 OpenVPN,推荐使用
easy-rsa revoke吊销证书。 - WireGuard 需编辑配置文件并重启服务。
- SoftEther 通过
vpncmd命令行工具。 - 数据库 方式直接操作 SQL 语句。
根据你的实际 VPN 服务类型选择对应方法,并始终先测试再正式执行。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播