搭建IKEv2类型代理
# 搭建IKEv2类型代理 ## 前言 本文为本人使用Github开源项目[setup-ipsec-
渲染中...
# 搭建IKEv2类型代理 ## 前言 本文为本人使用Github开源项目[setup-ipsec-vpn](https://github.com/hwdsl2/setup-ipsec-vpn)搭建IKEv2类型VPN的流程总结。 > 提示:`IKEv2`类型代理已经有些不安全了,容易被封,网络代理本人现在(`2023年10月6日`)推荐Hysteria,可以阅读【[Hysteria2 官方服务端及客户端搭建](https://oldmoon.top/post/144)】了解最新版Hysteria2的基本使用。 **本文教程需要你有一定的Linux和docker使用能力。** - 搭建环境:Linux:CentOS 7.6 - 部署方式:docker > 官方文档:《[Docker 上的 IPsec VPN 服务器](https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/README-zh.md)》 ### 优缺点总结 - 优点:无需安装客户端,windows、android等支持该协议的终端均可直接连接 - 缺点:需要安装证书;不够安全(容易被封) 如果是要科学上网,老狗更推荐SSR(现在更推荐hysteria),网上有很多教程,且有安卓、windows、MAC多种终端的客户端,想要了解可以参考:[搭建ShadowsocksR服务器](https://oldmoon.top/post/106) <!-- more --> ## 准备工作 > 本文介绍以docker方式部署,所以你需要满足以下条件: - 拥有一台服务器,服务器最好是linux环境 - 服务器上安装Docker,安装方法不再赘述,可自行百度或参考我的文章:《[Docker基础一文通](https://oldmoon.top/post/6)》 ## 部署 ### 方式1:快速开始 > 官方文档中提供快速开始命令,小白在安装完Docker后,可以直接运行以下命令一键部署 > > ```shell > 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 > ``` > > 分析一下这个命令干了什么事 > > `--name ipsec-vpn-server`:容器实例命名为ipsec-vpn-server > > `--restart=always`:Docker启动时,自动启动该容器 > > `-v ikev2-vpn-data:/etc/ipsec.d`:建立当前文件夹下ikev2-vpn-data文件夹与容器内/etc/ipsec.d文件夹的数据映射,第二个`-v`同理,不再赘述。 > > `-p 500:500/udp`:建立容器内端口500与容器外(服务器)端口500的映射,协议为udp,第二个-p同理,不再赘述。 > > `-d`:后台启动 > > `--privileged`:赋权,防止当前用户权限不足,建立文件映射会报错的情况 > > `hwdsl2/ipsec-vpn-server`:使用镜像名称,没加版本号默认使用版本`latest` #### 注意 - docker默认是从官方dockerhub获取镜像,如果你用的是大陆服务器,可能会导致镜像下载缓慢甚至失败,最简单的办法就是多等等、多尝试几次,较常见的方法是配置国内代理加速,比如阿里云加速,具体配置方式可自行学习,这里不做讲解。 - 容器启动会自动生成帐号密码,密码较为复杂,这也是我没使用`快速开始`的一个原因。自动生成的帐号密码需要看系统启动日志才能拿到。查看日志命令: ```shell docker logs ipsec-vpn-server ```` ### 方式2:获取镜像并手动启动 > 因为本人最近在学习docker,借此机会想要自己动手试试,所以我是手动拉取的镜像并启动的,步骤如下 #### 拉取镜像 从官方dockerhub获取镜像 ```shell docker pull hwdsl2/ipsec-vpn-server ``` #### 添加配置 - 创建本地文件夹 ```shell mkdir /usr/local/ipsec-vpn ``` - 创建配置文件 ```shell cd /usr/local/ipsec-vpn touch vpn.env ``` - 填入以下信息 > VPN_IPSEC_PSK=your_ipsec_pre_shared_key > > VPN_USER=your_vpn_username > > VPN_PASSWORD=your_vpn_password **将`=`后边的值更换成你想要的值,三个值分别是密钥、用户名、密码,会在连接`VPN`时使用到这三个值。** #### 启动容器 ```shell docker run --name ipsec-vpn-server --env-file ./vpn.env --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 ``` 其中和`快速开始`命令的区别只是多了一个启动参数` --env-file ./vpn.env`,作用就是指定默认密钥、帐号、密码为自己的配置。 ## 连接测试 > 客户端想要连接到IKEv2类型VPN,需要持有相应的证书,所以需要先从服务器上导出证书,并在客户端安装证书,安装后才可以使用证书连接到VPN。 ### 导出证书 - 从docker容器中拷贝到当前文件夹 ```shell docker cp ipsec-vpn-server:/etc/ipsec.d/vpnclient.p12 ./ ``` ### 将证书从服务器导出 > 这一步自行学习,最终目的是从服务器上将`vpnclient.p12`导出到客户端上。提示:可以借助`Xftp`等工具。 > > `PS:你想用手机连接vpn,那么你的手机就是客户端,你想用windows连接vpn,那么你的windows就是客户端。` **将证书导出到客户端后,即可开始下一步。** ### Android #### 安装证书 直接运行打开`vpnclient.p12`文件,选择下图打开方式安装即可。  #### 连接 如下图配置: - 服务器地址:部署`setup-ipsec-vpn`的服务器IP地址,域名应该也可以。 - IPSec 标识符:上面部署时生效的`VPN_IPSEC_PSK`,从启动日志里可以找到。 - IPSec 用户证书:选择你刚才安装的客户端证书 - IPSec CA证书:选择你刚才安装的客户端证书 - IPSec 服务器证书:选择`来自服务器`即可  ### Windows #### 安装证书 - 下载自动配置脚本:[ikev2_config_import.cmd](https://github.com/hwdsl2/vpn-extras/releases/latest/download/ikev2_config_import.cmd),并保存到与你的证书相同的文件夹。 - 右键单击保存的脚本,选择**属性**。单击对话框下方的**解除锁定**,然后单击**确定**。 - 右键单击保存的脚本,选择**以管理员身份运行**并按提示操作 注意:脚本运行后,会出来一个CMD黑窗口,其中需要你输入一些信息,如: - 证书名称(直接导出没改名的话,直接`enter`使用默认即可) - 类似上边`Android`的一堆配置,不再赘述,注意填写即可,不要填错了。 #### 连接 > 上一步完成配置后,找到VPN配置这里,会自动出现一个VPN,名字也是在上一步填写的(我这里用了默认的,所以把服务器IP地址也显示了,码掉),若出现了,直接点击连接即可。  ## 拓展 通过以上步骤,你可以将你的Windows和Android连接到VPN。 > 此种方式搭建的VPN服务,可以用系统自带的VPN连接,使用较为方便,但如果你用于科学上网,可能相比使用独立客户端的VPN更容易被封。 ## 赞助请求 **建站不易,以下是一个广告,还请动动您的小拇指,点击一次以示鼓励,谢谢!** <!-- 文章内嵌广告位 --> <div class="article-ads"></div> > 就目前的访问量,即便每个访客都点一次广告,收入也不足以支付运营成本,`如果看不到广告,可能是网络原因或被拦截了,那就算了吧。祝你生活愉快~~` <!-- more -->
END
评论
登录后查看和发表评论
前往登录