如何搭建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设置:
安卓设置: