You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android 13/14原生VPN客户端与MikroTik RouterOS建立VPN连接的配置方案咨询(用于测试访问私有网络后端的移动应用)

Android 13/14原生VPN客户端与MikroTik RouterOS建立VPN连接的配置方案咨询(用于测试访问私有网络后端的移动应用)

我完全懂你现在的痛点——Android 13直接砍掉了L2TP/PPTP的支持,而你又得用原生VPN客户端连MikroTik才能访问私有测试后端,可选的就只有IKEv2的三种认证方式对吧?我之前帮不少开发者配置过这个场景,下面给你分三种方案一步步来,都是亲测能跑通的:


方案一:IKEv2/IPSec PSK(预共享密钥)

这是最适合测试场景的配置,步骤最少,上手最快

MikroTik RouterOS端配置

  1. 先创建IPSec核心配置,直接复制终端命令就行:
# 创建IKEv2提案
/ip ipsec proposal add name=ikev2-proposal auth-algorithms=sha256 enc-algorithms=aes-256-cbc pfs-group=none
# 创建策略组和模板策略
/ip ipsec policy group add name=ikev2-policy-group
/ip ipsec policy add group=ikev2-policy-group src-address=0.0.0.0/0 dst-address=0.0.0.0/0 proposal=ikev2-proposal template=yes
# 创建IPSec配置文件
/ip ipsec profile add name=ikev2-profile hash-algorithm=sha256 enc-algorithm=aes-256 dh-group=ecp256 lifetime=8h proposal-check=obey nat-traversal=yes dpd-interval=30s dpd-maximum-failures=5
# 添加IKEv2对等体
/ip ipsec peer add name=ikev2-peer exchange-mode=ike2 send-initial-contact=yes profile=ikev2-profile nat-traversal=yes dpd-interval=30s dpd-maximum-failures=5
  1. 设置预共享密钥和地址池:
# 添加预共享密钥身份认证,把`你的预共享密钥`换成自己的密码(比如MyTestVPN123)
/ip ipsec identity add peer=ikev2-peer auth-method=pre-shared-key secret=你的预共享密钥 generate-policy=port-strict mode-config=request-only
# 创建VPN客户端IP池,别和你现有内网IP段冲突
/ip pool add name=ikev2-pool ranges=192.168.100.10-192.168.100.50
# 配置模式,分配IP和DNS
/ip ipsec mode-config add name=ikev2-mode-config address-pool=ikev2-pool dns-server=你的内网DNS或公共DNS(比如8.8.8.8) static-dns=yes
  1. 防火墙放行IPSec端口:
/ip firewall filter add chain=input protocol=udp dst-port=500,4500 action=accept comment="Allow IKEv2 ports"
/ip firewall filter add chain=input protocol=ipsec-esp action=accept comment="Allow IPSec ESP"

Android 13/14端配置

  • 打开系统设置 → 网络和互联网 → VPN → 点击右上角+添加VPN
  • 类型选择IKEv2/IPSec PSK
  • 名称随便填(比如"MikroTik测试VPN"),服务器地址填你的MikroTik公网IP或域名
  • 输入你刚才设置的预共享密钥,其他选项默认,保存后点击连接即可

方案二:IKEv2/IPSec MSCHAPv2(用户名密码认证)

适合多用户场景,不用每个人都记同一个密钥

MikroTik RouterOS端配置

  1. 先创建VPN专用用户(也可以用现有用户):
/user add name=vpn_test_user password=你的用户密码 group=full  # 测试用full权限就行,生产建议单独建权限组
  1. IPSec基础配置和PSK类似,只需要修改身份认证部分:
# 创建提案、策略组、配置文件、对等体(和PSK步骤一致,换个名字区分)
/ip ipsec proposal add name=ikev2-mschap-proposal auth-algorithms=sha256 enc-algorithms=aes-256-cbc pfs-group=none
/ip ipsec policy group add name=ikev2-mschap-group
/ip ipsec policy add group=ikev2-mschap-group src-address=0.0.0.0/0 dst-address=0.0.0.0/0 proposal=ikev2-mschap-proposal template=yes
/ip ipsec profile add name=ikev2-mschap-profile hash-algorithm=sha256 enc-algorithm=aes-256 dh-group=ecp256 lifetime=8h proposal-check=obey nat-traversal=yes dpd-interval=30s dpd-maximum-failures=5
/ip ipsec peer add name=ikev2-mschap-peer exchange-mode=ike2 send-initial-contact=yes profile=ikev2-mschap-profile nat-traversal=yes dpd-interval=30s dpd-maximum-failures=5
# 配置MSCHAPv2身份认证
/ip ipsec identity add peer=ikev2-mschap-peer auth-method=eap-mschapv2 username=vpn_test_user password=你的用户密码 generate-policy=port-strict mode-config=request-only
# 配置IP池和模式
/ip pool add name=ikev2-mschap-pool ranges=192.168.100.51-192.168.100.100
/ip ipsec mode-config add name=ikev2-mschap-mode address-pool=ikev2-mschap-pool dns-server=你的内网DNS或公共DNS static-dns=yes
  1. 同样执行PSK方案的防火墙放行命令

Android 13/14端配置

  • 添加VPN时类型选择IKEv2/IPSec MSCHAPv2
  • 填写名称、服务器地址,然后输入刚才创建的用户名和密码,保存连接即可

方案三:IKEv2/IPSec RSA(证书认证)

安全性最高,适合生产环境,不过配置步骤稍多

MikroTik RouterOS端配置

  1. 生成CA和证书:
# 创建CA模板并签名
/certificate add name=ca-template common-name=MyVPNCA key-size=2048 days-valid=3650 key-usage=crl-sign,key-cert-sign
/certificate sign ca-template name=MyVPNCA
# 创建服务器证书并签名
/certificate add name=server-template common-name=你的MikroTik公网域名或IP key-size=2048 days-valid=3650 key-usage=digital-signature,key-encipherment,tls-server
/certificate sign server-template name=MyVPNServerCA ca=MyVPNCA
# 创建客户端证书并签名
/certificate add name=client-template common-name=AndroidTestClient key-size=2048 days-valid=3650 key-usage=digital-signature,key-encipherment,tls-client
/certificate sign client-template name=AndroidClientCA ca=MyVPNCA
  1. 导出客户端证书(P12格式),设置导出密码:
/certificate export-certificate AndroidClientCA export-passphrase=你的证书密码

导出的文件会存在MikroTik的文件系统里,下载后传到你的Android设备上

  1. 配置IPSec:
# 基础配置(换名区分)
/ip ipsec proposal add name=ikev2-rsa-proposal auth-algorithms=sha256 enc-algorithms=aes-256-cbc pfs-group=none
/ip ipsec policy group add name=ikev2-rsa-group
/ip ipsec policy add group=ikev2-rsa-group src-address=0.0.0.0/0 dst-address=0.0.0.0/0 proposal=ikev2-rsa-proposal template=yes
/ip ipsec profile add name=ikev2-rsa-profile hash-algorithm=sha256 enc-algorithm=aes-256 dh-group=ecp256 lifetime=8h proposal-check=obey nat-traversal=yes dpd-interval=30s dpd-maximum-failures=5
/ip ipsec peer add name=ikev2-rsa-peer exchange-mode=ike2 send-initial-contact=yes profile=ikev2-rsa-profile nat-traversal=yes dpd-interval=30s dpd-maximum-failures=5
# RSA证书认证配置
/ip ipsec identity add peer=ikev2-rsa-peer auth-method=rsa-signature certificate=MyVPNServerCA generate-policy=port-strict mode-config=request-only
# IP池和模式配置
/ip pool add name=ikev2-rsa-pool ranges=192.168.100.101-192.168.100.150
/ip ipsec mode-config add name=ikev2-rsa-mode address-pool=ikev2-rsa-pool dns-server=你的内网DNS或公共DNS static-dns=yes
  1. 防火墙放行命令和前面一致

Android 13/14端配置

  1. 先导入证书:设置 → 安全 → 加密与凭据 → 从存储安装 → 找到下载的P12证书文件,输入导出密码,选择"VPN和应用"用途
  2. 添加VPN时类型选择IKEv2/IPSec RSA
  3. 填写名称、服务器地址,用户证书选刚才导入的AndroidClientCA,服务器CA证书选MyVPNCA(如果之前导入了CA证书的话,没导入可以选"不验证"但不建议)
  4. 保存后连接即可

几个注意事项

  • 确保你的MikroTik公网IP没有被ISP封锁UDP 500和4500端口,测试可以用端口扫描工具验证
  • 如果MikroTik在NAT网关后面,配置里已经开了nat-traversal=yes,不用额外做端口映射
  • 测试时可以临时关闭MikroTik防火墙,排除防火墙规则导致的连接失败
  • 分配的VPN IP段绝对不能和你的内网或移动网络的IP段冲突,否则会出现路由问题

备注:内容来源于stack exchange,提问作者Bart

火山引擎 最新活动