Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux 架設 P2P VPN (n2n) 完整教學:超級節點與邊緣節點部署、NAT 穿透、故障排除

編輯:Linux 系統常見問題解答

為什麼選 P2P VPN?

傳統 Client-Server VPN (OpenVPN/PPTP) 存在單點效能瓶頸與單點故障。n2n 採用 P2P 架構:

  • 無中心伺服器,擁有公網 IP 的節點可擔任**超級節點** 引導。
  • 邊緣節點建立連線後**直接互通**,不經超級節點轉發。
  • 支援對稱 NAT (最嚴格 NAT 類型),封裝 UDP 穿透。
  • 節點故障不影響其餘節點通訊,延遲低、擴展性強。

架構角色

  • Supernode (超級節點):公網 IP、監聽埠 (預設 5000),僅協助 NAT 後節點完成初次握手。
  • Edge (邊緣節點):內網/NAT 後主機,撥入虛擬網卡 (TAP) 獲得虛擬 IP (如 10.0.0.10/11)。

安裝 n2n (源碼編譯,依賴極少)

# Debian/Ubuntu
sudo apt-get install subversion build-essential libssl-dev
# RHEL/CentOS
sudo yum install subversion gcc-c++ openssl-devel

svn co https://svn.ntop.org/svn/ntop/trunk/n2n
cd n2n/n2n_v2
make && sudo make install

部署拓撲 (1 Supernode + 2 Edge)

超級節點 (公網 IP 1.1.1.1)

supernode -l 5000
# 無需 root,前台執行;生產環境建議 systemd 管理

邊緣節點 #1

sudo edge -d edge0 -a 10.0.0.10 -c mynetwork -u 1000 -g 1000 -k password -l 1.1.1.1:5000 -m ae:e0:4f:e7:47:5b

邊緣節點 #2

sudo edge -d edge0 -a 10.0.0.11 -c mynetwork -u 1000 -g 1000 -k password -l 1.1.1.1:5000 -m ae:e0:4f:e7:47:5c

參數解析

參數用途
-dTAP 虛擬介面名稱
-a虛擬 IP (或 dhcp:0.0.0.0)
-c社群名稱 (最大 16 位元組),隔離不同 VPN
-u/-g啟動後降權至指定 UID/GID
-kTwofish 加密金鑰 (可用環境變數 N2N_KEY 隱藏)
-l超級節點 IP:Port (可指定兩個備援)
-m固定 MAC 位址 (強烈建議,避免重啟 ARP 快取污染)

故障排除

錯誤 ioctl() [Operation not permitted] → 需 root 建立 TAP 裝置,確認 sudo 或設定 SUID,啟動後透過 -u/-g 降權。

總結

n2n 讓你自建低延遲、高頻寬、可擴展的 P2P VPN,無需信任第三方服務商,適合遊戲聯機、檔案分享、遠端開發等場景。超級節點可自架於家庭公網 IP 或雲端 VPS。

Copyright © Windows教程網 All Rights Reserved