在这台服务器被墙的那两天里,我尝试了让手机连接备机上的 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 客户端相关推荐

  1. android sco通信,android – startBluetoothSco()在ICS上抛出安全异常(BROADCAST_STICKY)

    我有一个由ICS用户发送的堆栈跟踪. 在我的Froyo设备上一切正常,但是当调用AudioManager.startBluetoothSco()时,用户显然获得了Permission Denial - ...

  2. 未知的错误代码在应用程序安装:110 android,应用在华为P9手机上安装失败原因分析 (错误码:-110)...

    问题描述: 应用在之前的华为手机上都能正常安装,但是在华为P9手机上安装失败,提示错误为: 失败原因: 系统问题导致安装失败(错误码:-110) 原因分析: 开始怀疑是android的版本问题,后来看 ...

  3. android 开机打开串口失败,请大神帮我看看这是怎么回事,一用就说串口打开失败,再电脑上试...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package com.example.fandemonew; import com.example.demo.library.SerialPort; i ...

  4. android ge模拟器,在Android模拟器上的一些小陷阱

    从Android SDK R17开始,模拟器就支持OpenGL ES 2.如果能让KlayGE在模拟器上跑起来,开发和测试就能方便许多.于是我装了最新的R21和Android 2.1的ARM v7a的 ...

  5. java 蓝牙指定连接失败_java – Android蓝牙连接 – 服务发现失败

    我正在尝试创建一个基本的蓝牙应用程序,用于测试设备. 这是我的线程代码的一部分: public void run() { mBluetoothAdapter.cancelDiscovery(); Lo ...

  6. android最新能调试吗,android – 不能在同一台设备上安装调试和发布版本

    我已经使用applicationIdSuffix在我的项目中配置了构建版本,以便我可以在我的设备上安装调试版本和发行版本. 这里是我的build.gradle(相关部分): buildTypes { ...

  7. Android简单实现将手机图片上传到服务器中

    在本例中,将会简单的实现安卓手机将图片上传到服务器中,本例使用到了 服务器端:PHP+APACHE 客户端:JAVA 先简单实现一下服务器端的上传并测试上传效果,看实例 <?php if(emp ...

  8. android pay 绑定失败,实战Apple Pay失败!Android Pay你期待吗?

    原标题:实战Apple Pay失败!Android Pay你期待吗? ▲这两天朋友圈最热议的话题相信就是Apple Pay入华的重磅消息了,自2月18日凌晨5点上线以来,短短一天时间已有三千万张银行卡 ...

  9. ios 上传图片失败 小程序_微信小程序ios端 使用ajaxSubmit上传图片失败,android没问题...

    微信小程序ios端 使用ajaxSubmit上传图片失败,android没问题 微信小程序开发上传图片,使用ajaxsubmit,post请求,form设置multipart/form-data, a ...

最新文章

  1. Mac写文件到U盘的方法
  2. ase加密放linux报错_Linux应用安装有福啦!和苹果Mac一样方便的单文件安装
  3. 再见 Docker !5分钟转型 containerd !
  4. C++语言函数重载详解和示例
  5. 通过java读取.properties 配置文件
  6. Node.js:模块化思想中一个Javascript文件分析以及exports 和 module.exports的区别
  7. OFFICE拼写语法检查:WORD是怎么做的?
  8. iPhone屏幕尺寸和分辨率
  9. 频繁项集与关联规则Frequent Itemset Mining and Association Rules、A-Priori算法 , PCY算法
  10. 2108 JAVASE每日复习总结 链接汇总
  11. 宇视科技C-C++软件开发岗位校招面试过程
  12. 服务器(CentOS7)配置R以及R Studio Server
  13. 展讯7731C_M Android6.0 充电指示灯实现(一)------关机充电实现
  14. Nginx: 正向与反向代理
  15. 李立超python视频_《李》字意思读音、组词解释及笔画数 - 新华字典 - 911查询
  16. 使用HTML制作会员注册界面
  17. Linux runtime--电源管理
  18. 网上超市app开发现成源码对接
  19. Django常见面试题总结(二)
  20. 【STM32H7】第20章 ThreadX GUIX汉字显示(QSPI Flash全字库)

热门文章

  1. VISSIM的VAP基本使用方法
  2. PlantSimulation中Byref的应用
  3. 计算机行业职称考试大纲,2015年职称计算机考试大纲
  4. airflow mysql_AirFlow 安装配置
  5. 工业AI落地,为什么选择华为云EI工业智能体?
  6. Sketchup 获取选中的模型的面数
  7. 集群搭建greenplum
  8. Javaweb项目读取本地图片通过虚拟路径
  9. 扫描的文件怎么转换成word
  10. 自动获取IP发生IP冲突的问题