IPsec VPN 服務器一鍵安裝腳本
使用 Linux 腳本一鍵快速搭建自己的 IPsec VPN 服務器。支持 IPsec/L2TP, Cisco IPsec 和 IKEv2 協議。你只需提供自己的 VPN 登錄憑證,然后運行腳本自動完成安裝。
IPsec VPN 可以加密你的網絡流量,以防止在通過因特網傳送時,你和 VPN 服務器之間的任何人對你的數據的未經授權的訪問。在使用不安全的網絡時,這是特別有用的,例如在咖啡廳,機場或旅館房間。
我們將使用 Libreswan 作為 IPsec 服務器,以及 xl2tpd 作為 L2TP 提供者。
快速使用
首先,在你的 Linux 服務器* 上全新安裝以下系統之一:
Ubuntu, Debian, CentOS/RHEL, Rocky Linux, AlmaLinux, Amazon Linux 2 或者 Alpine Linux
使用以下命令快速搭建 IPsec VPN 服務器:
1. 腳本安裝
搭建方式1:
wget https://git.io/vpnstart -qO vpn.sh && sudo sh vpn.sh
搭建方式2:
你也可以使用 curl 下載再執行:
curl -fsSL https://git.io/vpnstart -o vpn.sh && sudo sh vpn.sh
你的 VPN 登錄憑證將會被自動隨機生成,並在安裝完成后顯示在屏幕上。
2. docker鏡像安裝
另外,你也可以使用預構建的 Docker 鏡像。
docker部署:
docker run \
--name ipsec-vpn-server \
--restart=always \
-v ikev2-vpn-data:/etc/ipsec.d \
-v /lib/modules:/lib/modules:ro \
-p 500:500/udp \
-p 4500:4500/udp \
-d --privileged \
hwdsl2/ipsec-vpn-server
如果你在上述 docker run 命令中沒有指定 env 文件,VPN_USER 會默認為 vpnuser,並且 VPN_IPSEC_PSK 和 VPN_PASSWORD 會被自動隨機生成。要獲取這些登錄信息,可以查看容器的日志:
]# docker logs ipsec-vpn-server
在命令輸出中查找這些行:
Connect to your new VPN with these details:
Server IP: 你的VPN服務器IP
IPsec PSK: 你的IPsec預共享密鑰
Username: 你的VPN用戶名
Password: 你的VPN密碼
在命令輸出中也會包含 IKEv2 配置信息(如果啟用)。要開始使用 IKEv2,請參見 配置並使用 IKEv2 VPN。
[可選步驟] 備份自動生成的 VPN 登錄信息(如果有)到當前目錄:
docker cp ipsec-vpn-server:/etc/ipsec.d/vpn-gen.env ./
功能特性
- 新: 增加支持更高效的 IPsec/XAuth ("Cisco IPsec") 和 IKEv2 模式
- 新: 現在可以下載 VPN 服務器的預構建 Docker 鏡像
- 全自動的 IPsec VPN 服務器配置,無需用戶輸入
- 封裝所有的 VPN 流量在 UDP 協議,不需要 ESP 協議支持
- 可直接作為 Amazon EC2 實例創建時的用戶數據使用
- 包含 sysctl.conf 優化設置,以達到更佳的傳輸性能
系統要求
一個專用服務器或者虛擬專用服務器 (VPS),全新安裝以下操作系統之一:
- Ubuntu 20.04 或者 18.04
- Debian 11*, 10* 或者 9
- CentOS 7, Rocky Linux 8 或者 AlmaLinux 8**
- Red Hat Enterprise Linux (RHEL) 8 或者 7
- Amazon Linux 2
- Alpine Linux 3.15 或者 3.14
這也包括各種公共雲服務中的 Linux 虛擬機,比如 DigitalOcean, Vultr, Linode, Microsoft Azure 和 OVH。Amazon EC2 用戶可以使用 CloudFormation 或者 用戶數據 快速部署。
安裝選項:
選項 1: 使用腳本隨機生成的 VPN 登錄憑證(完成后會在屏幕上顯示):
wget https://git.io/vpnsetup -qO vpn.sh && sudo sh vpn.sh
選項 2: 編輯腳本並提供你自己的 VPN 登錄憑證。
wget https://git.io/vpnsetup -nv -O vpn.sh
nano -w vpn.sh
[替換為你自己的值: YOUR_IPSEC_PSK, YOUR_USERNAME 和 YOUR_PASSWORD]
sudo sh vpn.sh
在安裝成功之后,推薦 配置 IKEv2:
# 使用默認選項配置 IKEv2
sudo ikev2.sh --auto# 或者你也可以自定義 IKEv2 選項
sudo ikev2.sh
選項3:
將你自己的 VPN 登錄憑證定義為環境變量。
# 所有變量值必須用 '單引號' 括起來
# *不要* 在值中使用這些字符: \ " '
wget https://git.io/vpnsetup -nv -O vpn.sh
sudo VPN_IPSEC_PSK='你的IPsec預共享密鑰' \
VPN_USER='你的VPN用戶名' \
VPN_PASSWORD='你的VPN密碼' \
sh vpn.sh
在安裝成功之后,依然推薦 配置 IKEv2選項:
# 1.使用默認選項配置 IKEv2
sudo ikev2.sh --auto
# 2.或者你也可以自定義 IKEv2 選項
sudo ikev2.sh
備選方案
如果無法通過wget下載,點這里查看解決方案,你也可以使用curl下載。
例如:
curl -fsSL https://git.io/vpnsetup -o vpn.sh
sudo sh vpn.sh
參考連接:
https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/README-zh.md
用戶管理
查看或更改 IPsec PSK:
IPsec PSK(預共享密鑰)保存在文件 /etc/ipsec.secrets。所有的 VPN 用戶將共享同一個 IPsec PSK。該文件的格式如下:
%any %any : PSK "你的IPsec預共享密鑰"
1.服務器啟停
如果要更換一個新的 PSK,可以編輯此文件。不要在值中使用這些字符:\ " '
更換完成后重啟服務:
service ipsec restart
service xl2tpd restart
2.查看 VPN 用戶:
cat /etc/ppp/chap-secrets
cat /etc/ipsec.d/passwd # 這個文件中的密碼以加鹽哈希值的形式保存。該步驟可以借助比如 openssl 工具來完成:
# 以下命令的輸出為:密碼1的加鹽哈希值
# 將你的密碼用 '單引號' 括起來
openssl passwd -1 '密碼1'
3. 更新用戶信息:
wget -nv -O add_vpn_user.sh https://bit.ly/addvpnuser
sudo bash add_vpn_user.sh '要添加的用戶名' '密碼'
# 或者
更新用戶:
sudo bash add_vpn_user.sh '要更新的用戶名' '新密碼'
4.刪除一個 VPN 用戶
# 下載腳本
wget -nv -O del_vpn_user.sh https://bit.ly/delvpnuser# 運行腳本並按提示操作
刪除用戶:
sudo bash del_vpn_user.sh '要刪除的用戶名'