如何搭建IKEV2 VPN
更多語言
更多操作
注意: IKEV2協議可能會被GFW污染IKEV2數據包一個月, 臨時使用為優, 請勿長時間使用
適合不能配置HTTP代理且不能安裝其他代理客戶端的設備
1. 準備
以 Debian13 為例
apt update
apt install nftables strongswan libstrongswan-extra-plugins libcharon-extra-plugins libcharon-extauth-plugins
systemctl enable strongswan-starter
mkdir -p /main/ikev2/cert
cd /main/ikev2sysctl 中需要配置IP轉發, 新建一個forward.conf並進行編輯
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1保存好後連結過去, 並讓其生效
ln -f /main/ikev2/forward.conf /etc/sysctl.d/
sysctl --system2. 配置證書
這裏我們使用自簽證書, 先切換目錄
cd /main/ikev2/cert新建一個server.cert.conf並進行配置
[req]
default_bits = 4096
default_md = sha256
distinguished_name = req_distinguished_name
req_extensions = req_ext
x509_extensions = v3_ca
prompt = no
[req_distinguished_name]
O = ikev2
CN = ikev2 cert
[req_ext]
subjectAltName = @alt_names
[v3_ca]
subjectAltName = @alt_names
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
[alt_names]
DNS.1 = 你的域名
DNS.2 = 你的第二个域名需要設置好域名並進行保存 執行以下命令
openssl genrsa -out ca.key.pem 4096
openssl req -new -x509 -nodes -days 5475 -sha256 -key ca.key.pem -out ca.cert.pem -subj "/O=ikev2/CN=ikev2 ca"
openssl genrsa -out server.key.pem 4096
openssl req -new -key server.key.pem -out server.csr.pem -config server.cert.conf
openssl x509 -req -CA ca.cert.pem -CAkey ca.key.pem -CAcreateserial -in server.csr.pem -out server.cert.pem -days 5475 -sha256 -extfile server.cert.conf -extensions v3_ca查看證書信息
openssl x509 -in ca.cert.pem -text -noout將證書連結到配置目錄中
mkdir -p /etc/ipsec.d/{private,certs}
ln -f /main/ikev2/cert/server.key.pem /etc/ipsec.d/private/
ln -f /main/ikev2/cert/server.cert.pem /etc/ipsec.d/certs/3. 配置nftables
主要是為了根據 IKEV2 服務端分配給客戶端的IP, 將數據包轉發到指定網卡
如果你之前配置過nftables, 不是編輯配置文件, 那就從之前的配置中取, 並進行連結, 準備編輯
mkdir /main/nftables
cp /etc/nftables.conf /main/nftables/
ln -f /main/nftables/nftables.conf /etc/如果你沒有配置過, 那就在/main/nftables/中創建一個nftables.conf配置文件並連結過去, 準備編輯
ln -f /main/nftables/nftables.conf /etc/如果你之前配置過nftables, 且編輯了配置文件, 就直接修改那個配置文件, 準備編輯
現在開始編輯nftables.conf, 加入以下配置
table inet ikev2_nat {
chain postrouting {
type nat hook postrouting priority 10;
policy accept;
# 自行修改网卡或IP
ip saddr 10.10.0.0/16 oif "eth0" masquerade;
ip6 saddr fd00:ce20::/16 oif "eth0" masquerade;
}
}保存好後並生效
systemctl enable nftables.service
systemctl restart nftables.service如果你有其他防火牆規則, 記得放行 UDP500與4500
4. 配置IKEV2
在/main/ikev2中分別創建文件: ipsec.conf, ipsec.secrets
conf是核心配置, secrets是用戶配置, 需要自行修改
ipsec.conf的配置:
config setup
charondebug="ike 2, knl 2, net 2, esp 2, dmn 2, mgr 2"
uniqueids=no
conn ikev2-eap-mschapv2
keyexchange=ikev2
ike=aes256-sha1-sha256-sha384-modp2048,aes128gcm16-aes256gcm16-sha1-sha256-sha384-modp1024!
esp=aes256-3des-sha1
auto=add
compress=no
dpdaction=clear
fragmentation=yes
forceencaps=yes
dpddelay=30s
ikelifetime=10h
lifetime=30m
left=%defaultroute
leftauth=pubkey
leftid=你的域名
leftcert=server.cert.pem
leftsendcert=always
leftsubnet=0.0.0.0/0,::/0
leftfirewall=yes
right=%any
rightid=%any
rightauth=eap-mschapv2
rightsourceip=10.10.0.0/16,fd00:ce20::/16
rightdns=1.1.1.1,8.8.8.8
rightsendcert=never
eap_identity=%identityipsec.secrets的配置:
: RSA "server.key.pem"
User1 : EAP "123456789"
User2 : EAP "这是用户密码, 换行前面要注意不能有空格"自行修改好後, 重啟服務並生效
systemctl restart strongswan-starter.service
systemctl status strongswan-starter.service5. 安裝證書
任何系統想用就必須裝上CA證書, 也就是上面配置證書的ca.cert.pem
Windows安裝證書:
ca.cert.pem改為.der後綴, 雙擊安裝, 到本地計算機, 將證書放入下列存儲 (受信任的根證書頒發機構)
安卓安裝證書:
以iqoo為例, 進入手機設置 -> 安全 -> 更多安全設置 -> 從手機存儲安裝 -> CA證書, 文件選擇ca.cert.pem
其他手機可以搜索 CA/证书/凭证
IOS安裝證書:
下載證書後, 進入設置直接安裝
6. 設備使用
添加 IKEV2 基本都是在任何系統裏的設置中, 進入設置後找到VPN選項, 並添加
類型選擇IKEV2, 名稱隨便起, 地址則是你的域名, 有些可能需要設置IPSec标识符或者远程ID, 這些也填寫成你的域名, 再輸入設置好的用戶名與密碼, 就可以連接了
Windows可能無法保存密碼信息, 要求密碼信息時不能取消, 否則資源管理器會卡死
Windows設置:
安卓設置: