【笔记】iKuai部署L2TP服务实现内网穿透

前言

iKuai部署L2TP服务,通过VPN虚拟专有网络,实现内网穿透,在公网也可访问内网资源

准备工作

  • 已经部署了DDNS动态域名解析,可以通过域名从公网正常访问iKuai

iKuai部署服务端

开启L2TP服务端

  • 认证计费->本地认证服务->L2TP服务端->开启并配置相关参数->保存

如果需要使用13以上版本的MacOS作为客户端,务必要配置预共享密钥,因为虽然iKuai的配置中预共享密钥是可选,但是MacOS中的预共享密钥是必填的,如果MacOS中不填写预共享密钥则配置将无法保存

添加认证账号

  • 认证计费->认证账号管理->账号管理->添加

  • 设定一个账户名和密码,认证类型设置为不限或者L2TP套餐类型改为自定义,其他的选项保持默认即可->保存

端口映射到公网

  • 网络->端口映射->端口映射->添加->将UDP协议1701端口、500端口、4500端口映射到公网

客户端连接服务端

Windows

创建配置

  • 右键开始菜单->设置->网络和Internet

  • VPN->添加VPN连接

  • VPN提供商定义为Windows(内置)->指定配置名称、服务器地址->VPN类型定义为使用预共享密钥的L2TP/IPsec->指定预共享密钥->登录信息的类型定义为用户名和密码

  • 指定用户名、密码->保存

修改注册表(可选)

  • 如果无法连接并报错,需要修改注册表

  • 打开注册表编辑器->HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent新建一个DWord(16进制)数据AssumeUDPEncapsulationContextOnSendRule值为2

  • 重启系统

开启VPN开关

  • 连接


MacOS

创建配置

  • 网络->...->添加VPN配置->L2TP/IPSec

  • 指定服务器地址、账户名称、密码、共享密钥->创建

修改系统配置文件(可选)

  • 如果服务器只开放了L2TP的1701端口,而没有开放IPSec的500端口和4500端口,则需要添加以下配置才可以正常连接
  • 如果服务器同时开放了L2TP的1701端口、IPSec的500端口和4500端口,则无需以下配置

原因是MacOS的VPN客户端是L2TP/IPSec协议,所以需要同时开放L2TP的1701端口、IPSec的500端口和4500端口

1
sudo vim /etc/ppp/options
1
2
plugin L2TP.ppp
l2tpnoipsec

开启VPN开关

  • 网络->VPN与过滤条件

  • 打开开关

Android

创建配置

  • 设置->其他网络与配置->VPN->添加VPN网络->类型选择L2TP/IPSec PSK->指定配置名称、服务器地址、用户名、密码、IPSec预共享密钥->完成

开启VPN开关

IOS

创建配置

  • 设置->通用->VPN与设备管理->VPN->添加VPN配置->类型选择L2TP->指定配置名称、服务器、账户、密码、密钥->完成

开启VPN开关

完成

  • 截图纪念

参考文献

邓邓的流水账
CSDN——赵宗义11
简书——082e63dc752b
知乎——XjCheng