You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Linux Debian系统搭建可被Windows 10内置VPN客户端连接的VPN服务器?

如何在Linux Debian系统搭建可被Windows 10内置VPN客户端连接的VPN服务器?

嗨,我来帮你搞定这个问题!你提到之前翻的旧指南用的都是已经淘汰的openswan,StrongSwan的手册又有点绕,而且你已经搭好OpenVPN但想用上Windows 10自带的客户端对吧?

目前最推荐的方案是用StrongSwan搭建IKEv2类型的VPN服务器——Windows 10内置客户端原生支持IKEv2协议,稳定性和安全性都很靠谱,而且StrongSwan是当前维护活跃的开源IPsec实现,完全替代了旧的openswan。下面是一步步的实操指南:

一、安装StrongSwan及依赖包

首先更新系统并安装所需组件:

apt update && apt install strongswan strongswan-pki libcharon-extra-plugins
  • strongswan是核心VPN服务程序
  • strongswan-pki用于生成证书(IKEv2推荐用证书认证,安全度更高)
  • libcharon-extra-plugins提供额外的认证插件,支持Windows客户端常用的EAP认证

二、生成认证证书

1. 创建CA根证书

# 生成CA私钥
ipsec pki --gen --type rsa --size 4096 --outform pem > ca.key
# 生成CA自签名证书(有效期10年)
ipsec pki --self --ca --lifetime 3650 --in ca.key --type rsa --dn "CN=VPN CA" --outform pem > ca.crt

2. 创建服务器证书

替换命令里的你的服务器公网IP或域名为实际值:

# 生成服务器私钥
ipsec pki --gen --type rsa --size 4096 --outform pem > server.key
# 基于CA证书签发服务器证书(有效期5年)
ipsec pki --pub --in server.key --type rsa | ipsec pki --issue --lifetime 1825 --cacert ca.crt --cakey ca.key --dn "CN=你的服务器公网IP或域名" --san "你的服务器公网IP或域名" --flag serverAuth --flag ikeIntermediate --outform pem > server.crt

3. 部署证书到指定目录

cp ca.crt /etc/ipsec.d/cacerts/
cp server.crt /etc/ipsec.d/certs/
cp server.key /etc/ipsec.d/private/
# 设置私钥权限,避免泄露
chmod 600 /etc/ipsec.d/private/server.key

三、配置StrongSwan服务

编辑主配置文件/etc/ipsec.conf,替换成以下内容(记得替换你的服务器公网IP或域名):

config setup
    charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2, mgr 2"
    uniqueids=no

conn ikev2-vpn
    auto=add
    compress=no
    type=tunnel
    keyexchange=ikev2
    fragmentation=yes
    forceencaps=yes
    dpdaction=clear
    dpddelay=300s
    rekey=no
    left=%any
    leftid=@你的服务器公网IP或域名
    leftcert=server.crt
    leftsendcert=always
    leftsubnet=0.0.0.0/0
    right=%any
    rightid=%any
    rightauth=eap-mschapv2
    rightsourceip=10.10.10.0/24
    rightdns=8.8.8.8,8.8.4.4
    rightsendcert=never
    eap_identity=%identity

关键配置说明:

  • rightsourceip=10.10.10.0/24:给VPN客户端分配的内网IP段,可自行修改
  • rightdns:给客户端设置的DNS服务器,这里用的是谷歌公共DNS,也可以换成你常用的
  • rightauth=eap-mschapv2:采用Windows客户端支持的用户名密码认证方式

四、设置用户账号密码

编辑/etc/ipsec.secrets,添加认证用户(可添加多行,支持多个用户):

: RSA server.key
用户名1 : EAP "密码1"
用户名2 : EAP "密码2"

五、配置防火墙与IP转发

1. 开启IP转发

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p

2. 设置iptables规则

替换eth0为你的服务器外网接口名称(可通过ip addr查看):

# 允许VPN客户端流量转发
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -m policy --pol ipsec --dir out -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -s 10.10.10.0/24 -j ACCEPT
iptables -A FORWARD -d 10.10.10.0/24 -j ACCEPT
# 开放IKEv2所需端口
iptables -A INPUT -p udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp --dport 4500 -j ACCEPT

为了让规则重启后生效,可安装iptables-persistent保存规则:

apt install iptables-persistent

六、启动并启用StrongSwan服务

systemctl restart strongswan-starter
systemctl enable strongswan-starter

七、Windows 10客户端配置

  1. 打开「设置」→「网络和Internet」→「VPN」→「添加VPN连接」
  2. 填写以下信息:
    • VPN提供商:Windows(内置)
    • 连接名称:自定义(比如「Debian IKEv2 VPN」)
    • 服务器名称或地址:你的服务器公网IP或域名
    • VPN类型:IKEv2
    • 登录类型:用户名和密码
  3. 输入之前设置的用户名和密码,勾选「记住我的凭据」,点击「保存」
  4. 点击刚创建的连接,即可完成VPN接入

补充说明

  • 如果你不想用证书认证,也可以改用预共享密钥(PSK),但证书认证的安全等级更高,更推荐使用
  • Windows内置客户端不支持OpenVPN协议,所以没法直接用你现有的OpenVPN服务器对接,必须用IKEv2或L2TP/IPsec,而IKEv2的稳定性和安全性优于L2TP

备注:内容来源于stack exchange,提问作者Damir Tenishev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 10:09:35