用iptables实现G1手机cmwap代理上http网站[转]

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

折腾了几天,总算有点阶段性成果:

证实可以用iptables实现通过cmwap的代理上HTTP协议的网站。

首先,android系统的实现是有缺陷的。在接入apn中指定的proxy并不会被系统所用。好似只有浏览器会对这个设置有所反应。可以进行普通HTTP的代理浏览。而其它应用压根不理这个设置,我行我素的通过android系统进行域名请求,然后跟没有代理一样的进行连接请求。这应该是一个系统缺陷。

为了纠正这个偏差,主要有两个问题:

1、cmwap接入不支持dns解析。其实如果android压根不理dns的事情,直接把所有的请求都转发到apn指定的proxy,就没事了。但现在,我能想到的方法就只有自己修改/etc/hosts 文件来加入解析。

2、把所有向外的针对80端口的http请求全部转向到 10.0.0.172:80 用iptables可以实现这个需求。
具体步骤:

1、将system重新挂载为可写的模式,否则,就无法修改hosts文件

mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system

2、编辑/etc/hosts文件,当然,如果对vi编辑器不熟,或者懒得看terminal里面那么小的字,也可以用 adb push过去,目前我的hosts文件加了如下的解析:

127.0.0.1            localhost
64.73.32.135            north-america.pool.ntp.org
64.233.169.188        mtalk.google.com
66.249.89.99        www.google.com
66.249.89.101        android.clients.google.com
63.216.60.76        static.rememberthemilk.com
207.242.93.89        andrd.accu-weather.com    htc.accuweather.com
74.125.153.95        ajax.googleapis.com
72.9.41.2        lyrics.tunewiki.com

这个hosts文件可以实现:google地图的正常显示、accuweather天气软件的更新、market的使用、tunewiki的歌词和封面获取。

3、用iptables实现转向:

iptables -t nat -A OUTPUT -o rmnet0 -p tcp –dport 80 -j DNAT –to-destination 10.0.0.172:80

这一步每次重启之后都要重新做一次。没法子,凑合吧

=================================================

下面的工作:

1、搜集G1各个应用程序联网所需的域名解析

2、写个程序来控制转向的开启与关闭

3、实现一个简单的dns server程序,在有wifi连接的时候完成积累的dns解析,cmwap的时候在本地解析域名

4、想法子通过cmwap建立隧道传递所有TCP。这一步目前有个问题,如果我通过iptables将ip包的目的地址转为本地,如何能获得它原来的目的地址呢?。困扰~~~

原文:http://www.biaji.net/wp/biaji/2009/04/%e7%94%a8iptables%e5%ae%9e%e7%8e%b0g1%e6%89%8b%e6%9c%bacmwap%e4%bb%a3%e7%90%86%e4%b8%8ahttp%e7%bd%91%e7%ab%99/

转载于:https://my.oschina.net/kevin008/blog/2201

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465729.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初识Buildroot

转自CSDN ,记录是为了作者小编学习需要作者:xixihaha331什么是buildrootBuildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot配置&#…

Python3安装(Windows)

Windows下Python3环境搭建 目录 Windows下Python3环境搭建 安装Python 启动终端会话 IDE —— Geany 安装Python 访问https://www.python.org/downloads 点击上图红色区域按钮,下载Python。下载完成后开始安装: 勾选“Add Python 3.7 to PATH”&…

Runtime消息动态解析与转发流程

先上图&#xff1a; 下面根据具体代码看这张图。 一、创建一个Person类&#xff0c; Person.h #import <Foundation/Foundation.h>interface Person : NSObject-(void)sendMessage:(NSString *)message;end Person.m #import "Person.h" #import <objc/runt…

编写优美的GTest测试案例

使用gtest也有很长一段时间了&#xff0c;这期间也积累了一些经验&#xff0c;所以分享一下。GTest为我们提供了便捷的测试框架&#xff0c;让我们只需要关注案例本身。如何在GTest框架下写出优美的测试案例&#xff0c;我觉得必须要做到&#xff1a; 案例的层次结构一定要清晰…

评分9.3,你想要的那本书,来了!

还记得那天晚上我发的朋友圈吗&#xff1f;经过不完全统计&#xff0c;更多的人喜欢C语言这本书&#xff0c;所以这次先安排抽奖这本书籍&#xff0c;属于出版社赞助&#xff0c;也是给大家一个获奖的机会。不吹牛啊&#xff0c;我们办公室一个大神&#xff0c;写算法的&#x…

Python3安装(Linux)

Linux下Python3环境搭建 目录 Linux下Python3环境搭建 检查Python版本&#xff08;ubuntu16.04&#xff09; Helloworld IDE —— Geany 检查Python版本&#xff08;ubuntu16.04&#xff09; Linux默认已经安装了Python。CtrlAltT调出终端&#xff0c;输入python&#xff…

create-react-app 创建react项目 多页面应用

1:npm install -g create-react-app 2:创建一个应用 create-react-app my-app cd my-app 3:提取配置文件 npm run eject 4:允许文件 npm start create-react-app 默认是创建单页面应用&#xff0c;但是也可以创建多页面应用&#xff0c;需要手动配置一下webpack 第一步&…

c语言指针用法详解,通俗易懂超详细!

文章转自&#xff1a;无际单片机大家好&#xff0c;我是无际。今天给大家来讲解一下指针。我会由浅到深&#xff0c;最后结合实际应用讲解&#xff0c;让大家学会指针的同时&#xff0c;知道大佬们都用指针来干嘛&#xff01;长文预警&#xff01;全文大约5200多字&#xff0c;…

Python3 —— 变量和简单数据类型

Python3 —— 变量和简单数据类型 目录 python3 —— 变量和简单数据类型 一、变量 1、变量&#xff08;每个变量都存储了一个值——与变量相关联的信息&#xff09; 2、变量命名 二、简单数据类型&#xff08;整型&#xff0c;浮点型&#xff0c;字符串等&#xff09; 1…

Linux C Socket编程,这篇文章让我耳目一新

目录1. 什么是TCP/IP、UDP&#xff1f;2. Socket在哪里呢&#xff1f;3. Socket是什么呢&#xff1f;4. 有很多的框架&#xff0c;为什么还在从Socket开始&#xff1f;5. Linux C Socket简单示例1.什么是TCP/IP、UDP&#xff1f;TCP/IP&#xff08;Transmission Cont…

视频下载比想象中容易

两周前搞定了56.com的视频独立播放和视频下载后&#xff0c;很得意是吹嘘了一把&#xff0c;有一些朋友也就试着用了&#xff08;有朋友笑称我在为56.com做广告&#xff0c;因为他以前是不知道56.com的&#xff0c;我这么一搞&#xff0c;他竟也喜欢上56.com看视频了&#xff0…

微处理器:50岁了!

编排 | strongerHuang微信公众号 | 嵌入式专栏50年前&#xff08;1971年&#xff09;&#xff0c;英特尔推出了第一款商用的通用型微处理器 4004&#xff0c;4004拥有2300多个晶体管&#xff0c;与当今芯片中的几十上百亿个晶体管相比&#xff0c;这个数字相形见绌&#xff0c;…

Python3 —— 列表

Python3 —— 列表 目录 Python3 —— 列表 1.访问列表元素&#xff08;索引&#xff09; 2.修改列表元素 3.添加列表元素 4.删除列表元素 5.组织列表 6.遍历整个列表&#xff08;for循环&#xff0c;缩进部分都在for范围之内&#xff09; 7.创建数值列表 8.列表简单…

当卷烟厂也那么卷后……

过年回家&#xff0c;跟几个同学一起吃饭&#xff0c;聊到当时班上读书厉害的一个同学。同学嘴巴瞪得很大&#xff0c;说了一句&#xff0c;他在烟厂企业上班&#xff0c;现在开的什么什么车&#xff0c;待遇好得不得了。中学时候&#xff0c;那个同学读书真的厉害&#xff0c;…

Python3 —— if/while/input

Python3 —— if/while/input 目录 Python3 —— if/while/input 1.条件测试 2.if语句 3.input()函数 4.while循环 5.break与continue 1.条件测试 等于 ! 不等于 < 小于 < 小于等于 > 大于 > 大于等于 and 与 or 或 not in 不在 2…

python 全栈开发,Day63(子查询,MySQl创建用户和授权,可视化工具Navicat的使用,pymysql模块的使用)...

昨日内容回顾 外键的变种三种关系&#xff1a;多对一&#xff1a;左表的多 对右表一 成立左边的一 对右表多 不成立foreign key(从表的id) refreences 主表的&#xff08;id&#xff09;多对多建立第三张表&#xff08;foreign key&#xff09;一对一foreign keyunique单表查询…

我偶尔会用到的调试方法 | Linux 内核

文章转自我朋友的公众号&#xff0c;以下为内容正文大家好&#xff0c;我是你们的工具人老吴。今天,和大家分享一下几个 Linux 内核的调试小技巧。当你遇到一个 bug&#xff0c;你调试了 1 年半载都解决不了&#xff0c;这其实一件好事。因为它会时刻提醒你平时写代码时要谨慎、…

Linux应用编程之共享内存实例

1共享内存实例01主要内容 上一小节小哥跟大家介绍了一下共享内存的知识&#xff0c;今天主要是做一个实战的演示&#xff0c;从而更好的理解共享内存的原理和实际应用。02程序示例 1#include <stdlib.h>2#include <stdio.h>3#include <string.h>4#inclu…

洛谷P1279 字串距离 (动态规划)

题目描述 设有字符串X&#xff0c;我们称在X的头尾及中间插入任意多个空格后构成的新字符串为X的扩展串&#xff0c;如字符串X为”abcbcd”&#xff0c;则字符串“abcb□cd”&#xff0c;“□a□bcbcd□”和“abcb□cd□”都是X的扩展串&#xff0c;这里“□”代表空格字符。 如…

Python3——函数

Python3——函数 目录 Python3——函数 定义函数 实参和形参 返回值 将函数存储在模块中 定义函数 关键字def告知Python要定义一个函数。 最后一行是调用此函数&#xff0c;此函数不带参数和返回值。 实参和形参 函数参数可以有一个或者多个&#xff0c;可以是简单数据…