使用docker一键搭建VPN服务器,使得流量能够安全的在Internet上的隧道中传输。本文不涉及非法信道的搭建,仅用于学习和参考,请在确保自己拥有合法许可的前提下使用本文所提到的技术。
本文操作均基于Docker,之后可能会写一篇文章使用最基本的方式去搭建。
这里仅演示最基本的IKEv2/RSA连接方式,其他连接方式请见官方文档。
安装Docker
请参看本站文章Docker 手记(持续更新)。
搭建服务端
首先你需要准备一台Linux操作系统的主机,并拥有能够控制该主机防火墙端口开放的权限。对主机性能水平基本没有要求,架构允许是amd64
,arm64
或arm/v7
。需要注意的是,这些镜像目前不能被用在群晖(Synology)设备上。建议在开始操作前禁用SELinux,并准备好两个从防火墙开放udp协议的端口。
项目地址
启动镜像
1 | docker run \ |
其中倒数第三行和倒数第四行即为需要开放出去的端口,如果有需要也可以自行更改。
获得登录凭据
- 查看docker日志:
1
docker logs ipsec-vpn-server
- 在命令输出中查找这些行:在命令输出中也会包含 IKEv2 配置信息(如果已启用)。
1
2
3
4
5
6Connect to your new VPN with these details:
Server IP: 你的VPN服务器IP
IPsec PSK: 你的IPsec预共享密钥
Username: 你的VPN用户名
Password: 你的VPN密码 - 备份自动生成的 VPN 登录信息(如果有)到当前目录:
1
docker cp ipsec-vpn-server:/etc/ipsec.d/vpn-gen.env ./
- 获得
.p12
证书文件:1
docker cp ipsec-vpn-server:/etc/ipsec.d/vpnclient.p12 ./
客户端登录
Windows
- 将刚才获得的
.p12
文件安全的传送到客户端设备上。 - 下载辅助脚本,并且将该脚本和刚才获得的
.p12
证书文件放在一起。 - 运行该脚本并按照脚本提示完成安装。、
- 在Windows设置-网络和Internet-VPN中即可看到以IKEv2开头的连接,点击连接即可。
Android
Android端的设置则更为简单,但原生支持的IKEv2连接方式需要Android版本大于等于11。如果系统版本不满足,也可以使用strongswan的Android客户端。这里本文采用Android 13的Google Pixel 6a作为示例,由于Android设备的强定制性,不同设备可能操作方法部分不同。
- 首先安装证书,打开设置,选择“安全”-“更多安全设置”-“加密与凭据”-“安装证书”-“VPN和应用用户证书”,选择刚才从docker中导出的
.p12
证书。 - 回到设置首页,打开“网络和互联网”-“VPN”-点击右上角加号
- 类型选择“IKEv2/IPSec RSA”,服务器地址填写服务器IP,标识符随意填写,下方用户证书、CA证书和服务器证书均选择刚才导入的证书,然后确定即可。
- 点击刚才新建的配置文件,选择“连接”即可。