搭建服务器 VPN
服务端:需要被访问的一方,一般是服务器或对方电脑
客户端:有访问需求的一方,一般是当前用户(你)
搭建 VPN,就是把客户端当前所在的网络环境,挂载到服务端端的一方
- 这样做客户端就在服务端的局域网内,所有的网络请求都需经过服务端
- 客户端当前局域网的网络将不可用
不使用 Docker
使用 Docker
参考: 官方示例
-
首先: 安装 Docker
-
拉取镜像,支持以下架构系统:
linux/amd64
,linux/arm64
和linux/arm/v7
|
|
- 镜像对照表
有两个预构建的镜像可用。默认的基于 Alpine 的镜像大小仅 ~17MB。
基于 Alpine | 基于 Debian | |
---|---|---|
镜像名称 | hwdsl2/ipsec-vpn-server | hwdsl2/ipsec-vpn-server:debian |
压缩后大小 | ~ 17 MB | ~ 62 MB |
基础镜像 | Alpine Linux 3.17 | Debian Linux 11 |
系统架构 | amd64, arm64, arm/v7 | amd64, arm64, arm/v7 |
Libreswan 版本 | 4.10 | 4.10 |
IPsec/L2TP | ✅ | ✅ |
Cisco IPsec | ✅ | ✅ |
IKEv2 | ✅ | ✅ |
- 环境变量,选择一个目录创建
env
配置文件- 例如:
/config/vpn.env
文件
- 例如:
|
|
- 启动服务(
--env-file
指定上一步配置的文件)
|
|
- 查看是否启动成功
|
|
- 开启端口:
UDP 500
UDP 4500
windows 使用 IPsec/L2TP
-
首次连接,需要更新注册表(处理 windows 兼容性)。管理员打开
CMD
1
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\PolicyAgent /v AssumeUDPEncapsulationContextOnSendRule /t REG_DWORD /d 0x2 /f
-
windows 设置中打开 VPN 连接,输入
连接名称
连接地址
共享密钥
用户名
密码
,点击连接
如果连接失败,请检查输入内容及连接方式
确认无误后仍然失败,尝试重启计算机(可能注册表更改未生效)
重启后还是失败,可以尝试 IKEv2 连接
ipconfig
查看连接情况,可以看到建立的 VPN 连接及分配的局域网地址
windows 使用 IKEv2(推荐)
docker 容器启动后,会生成 IKEV2 客户端在容器内的 /etc/ipsec.d
目录下
- 将配置文件复制到 Linux 主机
/config/vpn.env
文件同级目录下
|
|
-
从 Linux 主机下载
/config/vpnclient.p12
到 windows 电脑 -
参考此链接 ,按步骤拷贝文件并连接(会提供一个 CMD 脚本,用于导入刚刚连接)
-
ipconfig
查看连接情况,可以看到建立的 VPN 连接及分配的局域网地址