L O A D I N G
«

在docker中一键搭建IPSec/IKEv2

童话里,我们在一起 发布于 阅读:2673 docker


使用docker一键搭建VPN服务器,使得流量能够安全的在Internet上的隧道中传输。本文不涉及非法信道的搭建,仅用于学习和参考,请在确保自己拥有合法许可的前提下使用本文所提到的技术。

本文操作均基于Docker,之后可能会写一篇文章使用最基本的方式去搭建。

这里仅演示最基本的IKEv2/RSA连接方式,其他连接方式请见官方文档。

安装Docker

请参看本站文章Docker 手记(持续更新)。

搭建服务端

首先你需要准备一台Linux操作系统的主机,并拥有能够控制该主机防火墙端口开放的权限。对主机性能水平基本没有要求,架构允许是amd64arm64arm/v7。需要注意的是,这些镜像目前不能被用在群晖(Synology)设备上。建议在开始操作前禁用SELinux,并准备好两个从防火墙开放udp协议的端口。

项目地址

IPsec VPN Server on Docker

启动docker

docker run \
--name ipsec-vpn-server \
--restart=always \
-v ikev2-vpn-data:/etc/ipsec.d \
-v /lib/modules:/lib/modules:ro \
-p 500:500/udp \
-p 4500:4500/udp \
-d --privileged \
hwdsl2/ipsec-vpn-server

 

获得登录凭据

查看docker日志:

  • 中也会包含 IKEv2 配置信息(如果已启用)。
  • 备份自动生成的 VPN 登录信息(如果有)到当前目录:
    docker cp ipsec-vpn-server:/etc/ipsec.d/vpn-gen.env ./
  • 获得.p12证书文件:
    docker cp ipsec-vpn-server:/etc/ipsec.d/vpnclient.p12 ./

客户端登录

Windows

  1. 将刚才获得的.p12文件安全的传送到客户端设备上。
  2. 下载辅助脚本,并且将该脚本和刚才获得的.p12证书文件放在一起
  3. 运行该脚本并按照脚本提示完成安装。
  4. 在Windows设置-网络和Internet-VPN中即可看到以IKEv2开头的连接,点击连接即可。

Android

Android端的设置则更为简单,但原生支持的IKEv2连接方式需要Android版本大于等于11。如果系统版本不满足,也可以使用strongswan的Android客户端。这里本文采用Android 13的Google Pixel 6a作为示例,由于Android设备的强定制性,不同设备可能操作方法部分不同。

  1. 首先安装证书,打开设置,选择“安全”-“更多安全设置”-“加密与凭据”-“安装证书”-“VPN和应用用户证书”,选择刚才从docker中导出的.p12证书。
  2. 回到设置首页,打开“网络和互联网”-“VPN”-点击右上角加号
  3. 类型选择“IKEv2/IPSec RSA”,服务器地址填写服务器IP,标识符随意填写,下方用户证书、CA证书和服务器证书均选择刚才导入的证书,然后确定即可。
  4. 点击刚才新建的配置文件,选择“连接”即可。

DDNS设置

1.运行docker

docker run \
--name ipsec-vpn-server \
--restart=always \
  --env-file /web/app/vpn.env \
-v ikev2-vpn-data:/etc/ipsec.d \
-v /lib/modules:/lib/modules:ro \
-p 500:500/udp \
-p 4500:4500/udp \
-d --privileged \
hwdsl2/ipsec-vpn-server

2.vpn.env文件

VPN_IPSEC_PSK=1q2w3e4r5t6y   #共享秘钥
VPN_USER=user  #vpn账户可自定义
VPN_PASSWORD=zyh1q2w3e4rt5t   #vpn账户密码,可自定义
VPN_DNS_NAME=www.rctt.site #此处为DDNS的域名

只需要在vpn.env文件中加入VPN_DNS_NAME=www.test.cn,重新启动一个docker就可以实现连接IKEV2时,www.test.cn改为自己的域名


扫描二维码,在手机上阅读

推荐阅读:

收藏