android l2tp 失败,修理 Android ICS 上那个抽风止不住的 L2TP/IPSec 客户端
在这台服务器被墙的那两天里,我尝试了让手机连接备机上的 IPSec L2TP ,但是却发现无论如何连不上。本来以为是网络问题,结果却发现 iPad 可以很轻松地连上。回头一看服务器端的日志,果然发现了一些问题。
相关日志如下:
packet from 123.123.123.123:12345: received Vendor ID payload [RFC 3947] method set to=109
packet from 123.123.123.123:12345: received Vendor ID payload [draft-ietf-ipsec-nat-t-ike-02] meth=107, but already using method 109
packet from 123.123.123.123:12345: received Vendor ID payload [draft-ietf-ipsec-nat-t-ike-02_n] meth=106, but already using method 109
packet from 123.123.123.123:12345: received Vendor ID payload [draft-ietf-ipsec-nat-t-ike-00]
packet from 123.123.123.123:12345: ignoring Vendor ID payload [FRAGMENTATION 80000000]
packet from 123.123.123.123:12345: received Vendor ID payload [Dead Peer Detection]
"L2TP-PSK-NAT"[37] 123.123.123.123 #55: responding to Main Mode from unknown peer 123.123.123.123
"L2TP-PSK-NAT"[37] 123.123.123.123 #55: transition from state STATE_MAIN_R0 to state STATE_MAIN_R1
"L2TP-PSK-NAT"[37] 123.123.123.123 #55: STATE_MAIN_R1: sent MR1, expecting MI2
"L2TP-PSK-NAT"[37] 123.123.123.123 #55: NAT-Traversal: Result using RFC 3947 (NAT-Traversal): both are NATed
"L2TP-PSK-NAT"[37] 123.123.123.123 #55: transition from state STATE_MAIN_R1 to state STATE_MAIN_R2
"L2TP-PSK-NAT"[37] 123.123.123.123 #55: STATE_MAIN_R2: sent MR2, expecting MI3
"L2TP-PSK-NAT"[37] 123.123.123.123 #55: Main mode peer ID is ID_IPV4_ADDR: '10.140.89.199'
"L2TP-PSK-NAT"[37] 123.123.123.123 #55: switched from "L2TP-PSK-NAT" to "L2TP-PSK-NAT"
"L2TP-PSK-NAT"[38] 123.123.123.123 #55: deleting connection "L2TP-PSK-NAT" instance with peer 123.123.123.123 {isakmp=#0/ipsec=#0}
"L2TP-PSK-NAT"[38] 123.123.123.123 #55: transition from state STATE_MAIN_R2 to state STATE_MAIN_R3
"L2TP-PSK-NAT"[38] 123.123.123.123 #55: new NAT mapping for #55, was 123.123.123.123:12345, now 123.123.123.123:54321
"L2TP-PSK-NAT"[38] 123.123.123.123 #55: STATE_MAIN_R3: sent MR3, ISAKMP SA established {auth=OAKLEY_PRESHARED_KEY cipher=aes_256 prf=oakley_sha group=modp1024}
"L2TP-PSK-NAT"[38] 123.123.123.123 #55: ignoring informational payload, type IPSEC_INITIAL_CONTACT msgid=00000000
"L2TP-PSK-NAT"[38] 123.123.123.123 #55: received and ignored informational message
"L2TP-PSK-NAT"[38] 123.123.123.123 #55: byte 7 of ISAKMP NAT-OA Payload must be zero, but is not
"L2TP-PSK-NAT"[38] 123.123.123.123 #55: malformed payload in packet
| payload malformed after IV
| ec 0c b1 2a d4 96 ac ec 47 8a 9f d3 9c 71 64 d3
"L2TP-PSK-NAT"[38] 123.123.123.123 #55: sending notification PAYLOAD_MALFORMED to 123.123.123.123:54321
"L2TP-PSK-NAT"[38] 123.123.123.123 #55: byte 7 of ISAKMP NAT-OA Payload must be zero, but is not
"L2TP-PSK-NAT"[38] 123.123.123.123 #55: malformed payload in packet
| payload malformed after IV
| ec 0c b1 2a d4 96 ac ec 47 8a 9f d3 9c 71 64 d3
"L2TP-PSK-NAT"[38] 123.123.123.123 #55: sending notification PAYLOAD_MALFORMED to 123.123.123.123:54321
"L2TP-PSK-NAT"[36] 220.249.99.240 #52: max number of retransmissions (2) reached STATE_MAIN_R1
"L2TP-PSK-NAT"[38] 123.123.123.123 #55: byte 7 of ISAKMP NAT-OA Payload must be zero, but is not
"L2TP-PSK-NAT"[38] 123.123.123.123 #55: malformed payload in packet
| payload malformed after IV
| ec 0c b1 2a d4 96 ac ec 47 8a 9f d3 9c 71 64 d3
......
如此循环,直到 Android 报告连接超时为止。看了日志的信息之后,结合 iOS 可以轻松连接而 Android ICS 却无论如何无法连上这个事实,我严重怀疑 Android ICS 的 L2TP/IPSec 客户端有 Bug 。一搜,果然如此。
好在这个 Bug 在手机已经 root 过的情况下可以非常容易而且一劳永逸地修复——替换掉那个不停地出娄子的 IPSec 程序 racoon 就可以了。首先在手机上下载打好 patch 的二进制文件(安全性自己考虑吧):http://code.google.com/p/android/issues/detail?id=23124#c203
然后打开手机上的终端(模拟器或者 adb shell 皆可),执行以下命令:
su
busybox mount -o remount,rw /system
busybox ls -l /system/bin/racoon
mv /system/bin/racoon /system/bin/racoon.sucker
mv /sdcard/download/racoon.bin /system/bin/racoon
chmod 0755 /system/bin/racoon
chown 0 /system/bin/racoon
chgrp 2000 /system/bin/racoon
busybox mount -o remount,ro /system
exit
接着,L2TP/IPSec 就可以正常使用了。
一点说明:上述命令里面,/sdcard/download/racoon.bin 是下载下来的文件,ls -l 是为了查看系统原本的 racoon 的属主和属组,我这里是 0 和 2000 ,请根据情况调整。
android l2tp 失败,修理 Android ICS 上那个抽风止不住的 L2TP/IPSec 客户端相关推荐
- android sco通信,android – startBluetoothSco()在ICS上抛出安全异常(BROADCAST_STICKY)
我有一个由ICS用户发送的堆栈跟踪. 在我的Froyo设备上一切正常,但是当调用AudioManager.startBluetoothSco()时,用户显然获得了Permission Denial - ...
- 未知的错误代码在应用程序安装:110 android,应用在华为P9手机上安装失败原因分析 (错误码:-110)...
问题描述: 应用在之前的华为手机上都能正常安装,但是在华为P9手机上安装失败,提示错误为: 失败原因: 系统问题导致安装失败(错误码:-110) 原因分析: 开始怀疑是android的版本问题,后来看 ...
- android 开机打开串口失败,请大神帮我看看这是怎么回事,一用就说串口打开失败,再电脑上试...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package com.example.fandemonew; import com.example.demo.library.SerialPort; i ...
- android ge模拟器,在Android模拟器上的一些小陷阱
从Android SDK R17开始,模拟器就支持OpenGL ES 2.如果能让KlayGE在模拟器上跑起来,开发和测试就能方便许多.于是我装了最新的R21和Android 2.1的ARM v7a的 ...
- java 蓝牙指定连接失败_java – Android蓝牙连接 – 服务发现失败
我正在尝试创建一个基本的蓝牙应用程序,用于测试设备. 这是我的线程代码的一部分: public void run() { mBluetoothAdapter.cancelDiscovery(); Lo ...
- android最新能调试吗,android – 不能在同一台设备上安装调试和发布版本
我已经使用applicationIdSuffix在我的项目中配置了构建版本,以便我可以在我的设备上安装调试版本和发行版本. 这里是我的build.gradle(相关部分): buildTypes { ...
- Android简单实现将手机图片上传到服务器中
在本例中,将会简单的实现安卓手机将图片上传到服务器中,本例使用到了 服务器端:PHP+APACHE 客户端:JAVA 先简单实现一下服务器端的上传并测试上传效果,看实例 <?php if(emp ...
- android pay 绑定失败,实战Apple Pay失败!Android Pay你期待吗?
原标题:实战Apple Pay失败!Android Pay你期待吗? ▲这两天朋友圈最热议的话题相信就是Apple Pay入华的重磅消息了,自2月18日凌晨5点上线以来,短短一天时间已有三千万张银行卡 ...
- ios 上传图片失败 小程序_微信小程序ios端 使用ajaxSubmit上传图片失败,android没问题...
微信小程序ios端 使用ajaxSubmit上传图片失败,android没问题 微信小程序开发上传图片,使用ajaxsubmit,post请求,form设置multipart/form-data, a ...
最新文章
- Mac写文件到U盘的方法
- ase加密放linux报错_Linux应用安装有福啦!和苹果Mac一样方便的单文件安装
- 再见 Docker !5分钟转型 containerd !
- C++语言函数重载详解和示例
- 通过java读取.properties 配置文件
- Node.js:模块化思想中一个Javascript文件分析以及exports 和 module.exports的区别
- OFFICE拼写语法检查:WORD是怎么做的?
- iPhone屏幕尺寸和分辨率
- 频繁项集与关联规则Frequent Itemset Mining and Association Rules、A-Priori算法 , PCY算法
- 2108 JAVASE每日复习总结 链接汇总
- 宇视科技C-C++软件开发岗位校招面试过程
- 服务器(CentOS7)配置R以及R Studio Server
- 展讯7731C_M Android6.0 充电指示灯实现(一)------关机充电实现
- Nginx: 正向与反向代理
- 李立超python视频_《李》字意思读音、组词解释及笔画数 - 新华字典 - 911查询
- 使用HTML制作会员注册界面
- Linux runtime--电源管理
- 网上超市app开发现成源码对接
- Django常见面试题总结(二)
- 【STM32H7】第20章 ThreadX GUIX汉字显示(QSPI Flash全字库)