Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

SoftEther VPN 服務器 Linux 版部署指南:環境、編譯、啟動與管理全流程

編輯:Linux 教學

前言:SoftEther — 穿透力最強的多協議 VPN 方案

SoftEther (Software Ethernet) 支援 SSL-VPN (HTTPS 模式穿透防火牆)、L2TP/IPsec、OpenVPN、SSTP、MS-SSTP 多協議,**單端口 (默認 443) 即可承載所有協議**,極適合受限網絡環境。Linux 版以靜態庫 + 手動鏈接形式分發,部署流程獨特,本文完整記錄。

一、運行環境要求

  • pthread 庫:多線程支撐 (glibc 內建)。
  • OpenSSL 庫:TLS/SSL 加密核心,**建議使用系統最新版** (如 OpenSSL 1.1.1/3.0) 以獲取安全補丁與性能優化。
  • 支援 .a 靜態庫鏈接的鏈接器:GCC/Clang/LLD 滿足。
  • 驗證平台:Red Hat 7.1/9.0、Vine Linux 2.6 等;現代發行版 (RHEL 8/9、Ubuntu 20.04/22.04、Debian 11/12、Rocky/Alma) 滿足依賴無壓力。

二、安裝與編譯鏈接 — 核心步驟

1. 解壓分發包

unzip se_100_linux.zip
# 產出三個文件:
# libse_hub.a    # 核心靜態庫 (含 V-HUB 邏輯)
# ca.crt         # CA 證書
# ca.key         # CA 私鑰
mkdir se_hub && mv libse_hub.a ca.crt ca.key se_hub/ && cd se_hub/

2. 鏈接生成可執行文件

**關鍵點**:分發包不含可執行二進制,需手動鏈接 libse_hub.a + pthread + ssl + crypto:

gcc libse_hub.a -lpthread -lssl -lcrypto -o se_hub
# -lcrypto 而非 -lcrypt (加密庫 vs 加密函數庫,OpenSSL 需前者)
# 若報錯 "undefined reference to `SSL_...`" 確認 -lssl -lcrypto 順序在 -lpthread 後

成功無報錯後,當前目錄生成 se_hub 可執行文件 (即 V-HUB 服務端)。

三、啟動方式與持久化運行

1. 權限要求

  • 監聽 TCP 443 (HTTPS 知名端口) → **需 root 權限** (或配置 setcap 'cap_net_bind_service=+ep' se_hub 賦能普通用戶綁定低端口)。
  • 程序本身不需 root,僅綁定端口需提權。

2. 前台測試啟動

sudo ./se_hub
# 輸出日誌顯示監聽端口、協議初始化狀態
# Ctrl+C 停止

3. 生產環境:後台守護進程化 (nohup + systemd)

方案 A:nohup 臨時方案

nohup sudo ./se_hub > /var/log/softether.log 2>&1 &
# 輸出重定向到日誌文件,終端關閉不影響進程

方案 B:systemd 服務單元 (推薦,開機自啟、自動重啟、日誌集中)

# /etc/systemd/system/softether.service
[Unit]
Description=SoftEther VPN Server
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/softether
ExecStart=/opt/softether/se_hub
Restart=on-failure
RestartSec=5
StandardOutput=append:/var/log/softether.log
StandardError=append:/var/log/softether.log
# 安全加固 (可選)
# CapabilityBoundingSet=CAP_NET_BIND_SERVICE
# AmbientCapabilities=CAP_NET_BIND_SERVICE
# NoNewPrivileges=yes

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now softether
systemctl status softether
journalctl -u softether -f

四、管理操作:Telnet 管理控制台

  • 連接端口:TCP 8023 (默認,可配置修改)。
  • 訪問方式:telnet localhost 8023 (本機) 或 telnet server_ip 8023 (遠程)。
  • 功能:虛擬 HUB 管理、用戶/組管理、證書管理、NAT/防火牆規則、日誌查看、服務器狀態監控、在線用戶踢出等。
  • 無圖形界面**,純字符菜單,類似 Cisco CLI 風格。

停止服務

# systemd 管理
systemctl stop softether

# nohup 方式
pkill -f se_hub
# 或查找 PID
ps aux | grep se_hub
kill 

五、常見問題與優化

  • OpenSSL 版本不匹配:若系統 OpenSSL 過舊 (如 1.0.2),建議編譯安裝新版 OpenSSL 並指定鏈接路徑:./configure --with-openssl=/usr/local/openssl (若源碼構建) 或鏈接時 -L/usr/local/openssl/lib -Wl,-rpath=/usr/local/openssl/lib。
  • 防火牆放行:TCP 443 (VPN 數據)、TCP 8023 (管理)、TCP 992 (可選,L2TP/IPsec)、UDP 500/4500 (IPsec NAT-T)。
  • 性能調優:管理控制台調整「最大會話數」「每會話帶寬限制」「加密算法優先級」(推薦 ChaCha20-Poly1305 / AES-GCM)。
  • 日誌輪轉:配置 logrotate 處理 /var/log/softether.log。

結語

SoftEther Linux 版的「靜態庫手動鏈接」雖顯古老,但保證了極高的跨發行版兼容性。**配合 systemd 守護進程化、OpenSSL 更新維護、管理端口訪問控制 (僅信任 IP 可連 8023)**,即可構建企業級、高穿透、多協議的 VPN 基礎設施。

Copyright © Windows教程網 All Rights Reserved