打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
Koud Wind留言 | 贡献2026年2月19日 (四) 03:01的版本

注意: 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/ikev2

sysctl 中需要配置IP转发, 新建一个forward.conf并进行编辑

net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1

保存好后链接过去, 并让其生效

ln -f /main/ikev2/forward.conf /etc/sysctl.d/
sysctl --system

2. 配置证书

这里我们使用自签证书, 先切换目录

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

如果你有其他防火墙规则, 记得放行 UDP5004500

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=%identity

ipsec.secrets的配置:

: RSA "server.key.pem"
User1 : EAP "123456789"
User2 : EAP "这是用户密码, 换行前面要注意不能有空格"

自行修改好后, 重启服务并生效

systemctl restart strongswan-starter.service
systemctl status strongswan-starter.service

5. 安装证书

任何系统想用就必须装上CA证书, 也就是上面配置证书的ca.cert.pem

Windows安装证书:

ca.cert.pem改为.der后缀, 双击安装, 到本地计算机, 将证书放入下列存储 (受信任的根证书颁发机构)

安卓安装证书:

iqoo为例, 进入手机设置 -> 安全 -> 更多安全设置 -> 从手机存储安装 -> CA证书, 文件选择ca.cert.pem

其他手机可以搜索 CA/证书/凭证

IOS安装证书:

下载证书后, 进入设置直接安装

6. 设备使用

添加 IKEV2 基本都是在任何系统里的设置中, 进入设置后找到VPN选项, 并添加

类型选择IKEV2, 名称随便起, 地址则是你的域名, 有些可能需要设置IPSec标识符或者远程ID, 这些也填写成你的域名, 再输入设置好的用户名与密码, 就可以连接了

Windows可能无法保存密码信息, 要求密码信息时不能取消, 否则资源管理器会卡死

Windows设置:

安卓设置: