Created
July 3, 2025 01:17
-
-
Save thuanpham582002/3b3d087aeee1a5bf53744b4d1aa90160 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# SoftEther VPN Server Uninstall Script | |
# Gỡ bỏ hoàn toàn SoftEther VPN Server | |
# Author: AI Assistant | |
# Version: 1.0 | |
set -e # Exit on any error | |
# Colors for output | |
RED='\033[0;31m' | |
GREEN='\033[0;32m' | |
YELLOW='\033[1;33m' | |
BLUE='\033[0;34m' | |
NC='\033[0m' # No Color | |
# Logging functions | |
log() { | |
echo -e "${GREEN}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $1" | |
} | |
error() { | |
echo -e "${RED}[ERROR]${NC} $1" >&2 | |
} | |
warning() { | |
echo -e "${YELLOW}[WARNING]${NC} $1" | |
} | |
info() { | |
echo -e "${BLUE}[INFO]${NC} $1" | |
} | |
# Check if running as root | |
check_root() { | |
if [[ $EUID -ne 0 ]]; then | |
error "Script này phải chạy với quyền root" | |
exit 1 | |
fi | |
} | |
# Stop VPN Server service | |
stop_vpn_service() { | |
log "Dừng SoftEther VPN Server service..." | |
# Stop systemd service if exists | |
if systemctl is-active --quiet softether-vpnserver 2>/dev/null; then | |
systemctl stop softether-vpnserver | |
info "✓ Đã dừng systemd service" | |
fi | |
# Stop VPN server process directly | |
if [[ -f /opt/vpnserver/vpnserver ]]; then | |
cd /opt/vpnserver | |
./vpnserver stop 2>/dev/null || true | |
info "✓ Đã dừng VPN server process" | |
fi | |
# Kill any remaining processes | |
pkill -f vpnserver 2>/dev/null || true | |
pkill -f vpncmd 2>/dev/null || true | |
sleep 2 | |
# Force kill if still running | |
pkill -9 -f vpnserver 2>/dev/null || true | |
pkill -9 -f vpncmd 2>/dev/null || true | |
} | |
# Remove systemd service | |
remove_systemd_service() { | |
log "Gỡ bỏ systemd service..." | |
if [[ -f /etc/systemd/system/softether-vpnserver.service ]]; then | |
systemctl disable softether-vpnserver 2>/dev/null || true | |
rm -f /etc/systemd/system/softether-vpnserver.service | |
systemctl daemon-reload | |
info "✓ Đã gỡ bỏ systemd service" | |
else | |
info "✓ Không tìm thấy systemd service" | |
fi | |
} | |
# Remove VPN Server files | |
remove_vpn_files() { | |
log "Gỡ bỏ các file SoftEther VPN..." | |
# Remove main installation directory | |
if [[ -d /opt/vpnserver ]]; then | |
rm -rf /opt/vpnserver | |
info "✓ Đã xóa /opt/vpnserver" | |
fi | |
# Remove any leftover files | |
rm -f /opt/softether-vpnserver.tar.gz 2>/dev/null || true | |
# Remove config files | |
rm -f /root/vpn_config.ovpn 2>/dev/null || true | |
rm -f /tmp/vpn_config.ovpn 2>/dev/null || true | |
info "✓ Đã xóa các file cấu hình" | |
} | |
# Remove firewall rules | |
remove_firewall_rules() { | |
log "Gỡ bỏ firewall rules..." | |
# UFW rules | |
if command -v ufw &> /dev/null; then | |
ufw delete allow 1194/udp 2>/dev/null || true | |
ufw delete allow 443/tcp 2>/dev/null || true | |
ufw delete allow 5555/tcp 2>/dev/null || true | |
info "✓ Đã gỡ bỏ UFW rules" | |
fi | |
# Firewall-cmd rules | |
if command -v firewall-cmd &> /dev/null; then | |
firewall-cmd --permanent --remove-port=1194/udp 2>/dev/null || true | |
firewall-cmd --permanent --remove-port=443/tcp 2>/dev/null || true | |
firewall-cmd --permanent --remove-port=5555/tcp 2>/dev/null || true | |
firewall-cmd --reload 2>/dev/null || true | |
info "✓ Đã gỡ bỏ firewall-cmd rules" | |
fi | |
# IPTables rules (basic removal - might need manual cleanup) | |
if command -v iptables &> /dev/null; then | |
iptables -D INPUT -p udp --dport 1194 -j ACCEPT 2>/dev/null || true | |
iptables -D INPUT -p tcp --dport 443 -j ACCEPT 2>/dev/null || true | |
iptables -D INPUT -p tcp --dport 5555 -j ACCEPT 2>/dev/null || true | |
warning "⚠️ IPTables rules đã được gỡ bỏ cơ bản, kiểm tra thủ công nếu cần" | |
fi | |
} | |
# Clean up temporary files | |
cleanup_temp_files() { | |
log "Dọn dẹp temporary files..." | |
# Remove script-generated temp files | |
rm -f /tmp/license_accept.exp 2>/dev/null || true | |
rm -f /tmp/vpn_setup_initial.txt 2>/dev/null || true | |
rm -f /tmp/vpn_setup_main.txt 2>/dev/null || true | |
rm -f /tmp/vpn_setup.txt 2>/dev/null || true | |
info "✓ Đã dọn dẹp temporary files" | |
} | |
# Check if SoftEther VPN is completely removed | |
verify_removal() { | |
log "Kiểm tra việc gỡ bỏ..." | |
local issues=0 | |
# Check for running processes | |
if pgrep -f vpnserver > /dev/null; then | |
error "✗ Vẫn còn vpnserver process đang chạy" | |
issues=$((issues + 1)) | |
else | |
info "✓ Không còn vpnserver process" | |
fi | |
# Check for service | |
if systemctl list-unit-files | grep -q softether-vpnserver; then | |
error "✗ Vẫn còn systemd service" | |
issues=$((issues + 1)) | |
else | |
info "✓ Đã gỡ bỏ systemd service" | |
fi | |
# Check for files | |
if [[ -d /opt/vpnserver ]]; then | |
error "✗ Vẫn còn thư mục /opt/vpnserver" | |
issues=$((issues + 1)) | |
else | |
info "✓ Đã xóa thư mục cài đặt" | |
fi | |
# Check for listening ports | |
if netstat -tulpn 2>/dev/null | grep -E ":1194|:443|:5555" > /dev/null; then | |
warning "⚠️ Vẫn có services đang lắng nghe trên các port VPN" | |
else | |
info "✓ Không còn services lắng nghe trên các port VPN" | |
fi | |
return $issues | |
} | |
# Main uninstall function | |
main() { | |
echo "==================================================================" | |
echo -e "${RED}🗑️ SoftEther VPN Server Uninstaller${NC}" | |
echo -e "${YELLOW}Gỡ bỏ hoàn toàn SoftEther VPN Server${NC}" | |
echo "==================================================================" | |
echo "" | |
# Confirm uninstall | |
echo -e "${YELLOW}CẢNH BÁO: Script này sẽ gỡ bỏ hoàn toàn SoftEther VPN Server!${NC}" | |
echo "- Tất cả cấu hình VPN sẽ bị mất" | |
echo "- Các user VPN sẽ bị xóa" | |
echo "- Systemd service sẽ bị gỡ bỏ" | |
echo "" | |
read -p "Bạn có chắc chắn muốn tiếp tục? (y/N): " -n 1 -r | |
echo | |
if [[ ! $REPLY =~ ^[Yy]$ ]]; then | |
log "Hủy bỏ quá trình uninstall" | |
exit 0 | |
fi | |
echo "" | |
log "Bắt đầu gỡ bỏ SoftEther VPN Server..." | |
check_root | |
stop_vpn_service | |
remove_systemd_service | |
remove_vpn_files | |
remove_firewall_rules | |
cleanup_temp_files | |
echo "" | |
if verify_removal; then | |
echo "==================================================================" | |
echo -e "${GREEN}✅ SoftEther VPN Server đã được gỡ bỏ hoàn toàn!${NC}" | |
echo "==================================================================" | |
echo "" | |
echo -e "${BLUE}Bước tiếp theo:${NC}" | |
echo "1. Chạy lại script cài đặt để cài mới: bash install_softether_vpn_no_upgrade.sh" | |
echo "2. Hoặc cài đặt phiên bản khác nếu cần" | |
echo "" | |
echo -e "${YELLOW}Lưu ý:${NC}" | |
echo "- Tất cả cấu hình VPN cũ đã bị xóa" | |
echo "- Cần cấu hình lại từ đầu" | |
echo "" | |
else | |
echo "==================================================================" | |
echo -e "${YELLOW}⚠️ Gỡ bỏ hoàn tất nhưng có một số vấn đề${NC}" | |
echo "==================================================================" | |
echo "" | |
echo "Vui lòng kiểm tra các lỗi ở trên và gỡ bỏ thủ công nếu cần." | |
echo "" | |
fi | |
} | |
# Run main function | |
main "$@" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment