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端配置
- 先创建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
- 设置预共享密钥和地址池:
# 添加预共享密钥身份认证,把`你的预共享密钥`换成自己的密码(比如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
- 防火墙放行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端配置
- 先创建VPN专用用户(也可以用现有用户):
/user add name=vpn_test_user password=你的用户密码 group=full # 测试用full权限就行,生产建议单独建权限组
- 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
- 同样执行PSK方案的防火墙放行命令
Android 13/14端配置
- 添加VPN时类型选择IKEv2/IPSec MSCHAPv2
- 填写名称、服务器地址,然后输入刚才创建的用户名和密码,保存连接即可
方案三:IKEv2/IPSec RSA(证书认证)
安全性最高,适合生产环境,不过配置步骤稍多
MikroTik RouterOS端配置
- 生成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
- 导出客户端证书(P12格式),设置导出密码:
/certificate export-certificate AndroidClientCA export-passphrase=你的证书密码
导出的文件会存在MikroTik的文件系统里,下载后传到你的Android设备上
- 配置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
- 防火墙放行命令和前面一致
Android 13/14端配置
- 先导入证书:设置 → 安全 → 加密与凭据 → 从存储安装 → 找到下载的P12证书文件,输入导出密码,选择"VPN和应用"用途
- 添加VPN时类型选择IKEv2/IPSec RSA
- 填写名称、服务器地址,用户证书选刚才导入的
AndroidClientCA,服务器CA证书选MyVPNCA(如果之前导入了CA证书的话,没导入可以选"不验证"但不建议) - 保存后连接即可
几个注意事项
- 确保你的MikroTik公网IP没有被ISP封锁UDP 500和4500端口,测试可以用端口扫描工具验证
- 如果MikroTik在NAT网关后面,配置里已经开了
nat-traversal=yes,不用额外做端口映射 - 测试时可以临时关闭MikroTik防火墙,排除防火墙规则导致的连接失败
- 分配的VPN IP段绝对不能和你的内网或移动网络的IP段冲突,否则会出现路由问题
备注:内容来源于stack exchange,提问作者Bart




