在Linux上建立WAP网关

发表于:2007-07-04来源:作者:点击数: 标签:
[color=green:96f299aae5]========================= 作者:Nanu 首发于:www.china unix .net 如需转载请注明作者 =========================[/color:96f299aae5] 查了很多资料,终于能够在 Linux 上建立一个WAP网关了!建立成功后,你就可以使用自己的WAP

[color=green:96f299aae5]=========================
作者:Nanu
首发于:www.chinaunix.net
如需转载请注明作者
=========================[/color:96f299aae5]

查了很多资料,终于能够在Linux上建立一个WAP网关了!建立成功后,你就可以使用自己的WAP网关浏览无线网络内容!试试抛弃中国移动提供的网关参数而使用自己DIY出来的WAP网关,这样的感觉,呵呵,挺酷的!


[color=red:96f299aae5]一、系统需求[/color:96f299aae5]
============
需要libxml2库2.2.5或更高版本,这个XML库是安装和编译网关所需要的。
可以通过以下命令检查系统中是否已经安装libxml2库:
[color=blue:96f299aae5]# rpm -qa | grep libxml2[/color:96f299aae5]


[color=red:96f299aae5]二、建立WAP网关[/color:96f299aae5]
===============
很多商用的WAP网关价格令人咋舌!根本不是个人用的起的。不过,有一个名为Kannel的WAP网关是完全免费的!Kannel是一个开放源代码的WAP网关项目,在安装后还可以自定义网关参数。打造自己的个性化WAP网关!

1、下载安装
-----------
目前最新的Kannel稳定版版本为1.4.0,可以在http://www.kannel.org下载。下载后进行安装:
[color=blue:96f299aae5]# tar xzvf gateway-1.4.0.tar.gz
# mv gateway-1.4.0 /usr/local/kannel
# cd /usr/local/kannel
# ./configure --enable-start-stop-daemon
# make
# make bindir=/usr/local/bin install[/color:96f299aae5]

2、配置网关
-----------
[color=blue:96f299aae5]# vi gw/wapkannel.conf[/color:96f299aae5]

[code:1:96f299aae5]# KANNLE WAP示例配置文档
# Created by Nanu
# http://nanu.8866.org

# 这是一个必须变量core
group = core

# 用于bearerbox侦听HTTP管理命令的端口号。可以设定为高于1023的任何端口
admin-port = 13333

# 指定是否启用SSL
admin-port-ssl = false

# HTTP 管理命令的密码
admin-password = yourpasswd

# 请求Kannel状态的密码。如果没有设置,则无需密码。
status-password = rose123

# 拒绝来自该IP地址的连接
admin-deny-ip = "123.123.123.123"

# 允许这些IP的连接,可以使用通配符
admin-allow-ip = "*.*.*.*"

# 用于wapbox连接的端口。如果没有设置,则Kannel不能处理WAP传输
wapbox-port = 13002

# 拒绝来自该IP地址的连接
box-deny-ip = "123.123.123.123"

# 允许这些IP对WAP单元的连接,可以使用通配符
box-allow-ip = "*.*.*.*"

# 拒绝来自该IP的UDP数据包
udp-deny-ip = "123.123.123.123"

# 允许来自该IP的UDP数据包,可以使用通配符
udp-allow-ip = "*.*.*.*"

# 如果设置了这个参数,Kannel就会侦听指定IP的9200到9208端口的WAP UDP数据包。
# 如果不需要具体限定,可以只用一个星号
wdp-interface-name = "*"

# 日志文件
log-file = "kannel.log"

# 日志级别
# 0 调度
# 1 信息
# 2 警告
# 3 错误
# 4 致命问题
log-level = 1

# WAPBOX 组配置信息

# 必选变量
group = wapbox

# 运行bearerbox的计算机
bearerbox-host = localhost

# 计时器的较验频率
timer-freq = 1

# 日志文件
log-file = "wap.log"

# 日志级别
# 0 调度
# 1 信息
# 2 警告
# 3 错误
# 4 致命问题
log-level = 1[/code:1:96f299aae5]

3、启动网关
-----------
必须先启动bearerbox,然后再启动 wapbox。由于bearerbox是网关的基本部分,所以必须要先启动。
启动bearerbox:
[color=blue:96f299aae5]./bearerbox -v 1 /usr/local/kannel/gw/wapkannel.conf[/color:96f299aae5]

启动wapbox:
[color=blue:96f299aae5]./wapbox -v 1 /usr/local/kannel/gw/wapkannel.conf[/color:96f299aae5]

[color=red:96f299aae5]三、通过HTTP管理网关[/color:96f299aae5]
====================
可用命令:
http://localhost:13333/shutdown?password=yourpasswd (关闭网关)
http://localhost:13333/status?password=yourpasswd   (获取网关状态)
http://localhost:13333/resume?password=yourpasswd   (继续运行网关)

说明:
13333:为配置文件中admin-port指定的端口
password:为配置文件中admin-password指定的密码


[color=red:96f299aae5]四、使用一个支持WAP的手机或者模拟器测试[/color:96f299aae5]
=======================================
1、确认Linux的IPTABLES或者其他防火墙开放相应的WAP端口;
2、修改你手机或手机模拟器中的WAP网关参数为你运行的Linux的IP地址;
3、访问一个基于WML页面的WAP站点,如果能够访问则说明成功!

---The End

 Nanu 回复于:2005-04-07 10:52:28
搞到深夜两点半,没人顶,自己顶…… :em10:

 woshiwho 回复于:2005-04-07 11:10:30
俺顶

 andyliu 回复于:2005-04-07 11:16:55
虽然不懂这方面,但也帮顶

 好好先生 回复于:2005-04-07 11:51:44
学习……

 Nanu 回复于:2005-04-07 12:02:26
3Q3Q,感激涕零啊。 :em16: 

找到一些关于WAP的东西,能够帮助更好理解本文:

1、Kannel网关结构
=============
Kannel 主要由两个部分组成:bearerbox和wapbox,就是上面提到的两个。

bearerbox:它连接到 SMS短消息服务中心和 CSD电路交换线路路由器,为 wapbox提供一个统一的接口。

wapbox:WAP协议栈中更高的协议层在这一单元中。每个会话都由wapbox来处理。

2、系统工作方式
==========
CSD路由器一旦接收到UDP数据包,则检查它们是不是WAP数据包,如果是的话,将它们路由到WAP单元。wapbox实现了WTP无线传输协议和WSP无线会话协议,它们从移动电话取得类似于HTTP的请求,并将真正的HTTP请求发送到实际内容服务器,压缩响应,然后将它们发回到终端。

 brucewoo 回复于:2005-04-07 12:45:40
支持一下

 freshyx 回复于:2005-04-07 13:21:20
支持呀,楼主GOOD

 pearma 回复于:2005-04-07 13:35:22
有什么特殊的意义吗?比如说可以节省费用,或者提高访问速度?

 Nanu 回复于:2005-04-07 13:52:01
[quote:ea466efbbe="pearma"]有什么特殊的意义吗?比如说可以节省费用,或者提高访问速度?[/quote:ea466efbbe]

呵呵,从实用角度看,确实没什么意义,毕竟我不想也不能弄一个XX移动 :mrgreen: 

不过从技术角度看,研究一下也没什么,况且顺便还能学习研究一下WAP的相关知识和技术。

 wind521 回复于:2005-04-07 14:01:34
支持

 niao5929 回复于:2005-04-07 14:07:05
支持楼主

 wolfg 回复于:2005-04-07 15:06:56


 chenzq1604 回复于:2005-04-07 15:43:32
谢谢兄弟了

 niao5929 回复于:2005-04-07 17:30:53
那客户端要怎么做呀,
服务器是不是还需要有一个固定的WAN地址呀...

 bst 回复于:2005-04-07 18:35:39
pc 上需要无线接收装置吗? 手机如何把信号发给主机 ?

 Nanu 回复于:2005-04-07 18:41:30
客户端就要看手机说明书和手机模拟器README了。

这里指的PC模拟器主要是局域网内的机器,比如局域网中的LINUX作为WAP网关,而局域网上另一台WINDOWS机器上装模拟器进行测试。

WAP是承载于GPRS或CSD之上的,具体的手机网络接入是由GPRS和CSD完成的,WAP只是一个应用协议。

 zd724 回复于:2005-04-07 21:15:43
学习中 谢谢

 duketang 回复于:2005-04-07 21:17:08
手机更改网关后 还能访问移动这些网站么?

 niao5929 回复于:2005-04-07 22:08:08
好东东

 cgliangm 回复于:2005-04-08 05:27:58
顶,好

 crazymonkey 回复于:2005-04-08 14:01:58
厉害!能把WAP的各种接口做齐就更好了。

 huxiao45 回复于:2005-04-08 17:05:27
偶也顶一下!~

 Nanu 回复于:2005-04-08 17:39:36
[quote:c9ec96c57e="crazymonkey"]厉害!能把WAP的各种接口做齐就更好了。[/quote:c9ec96c57e]

KANNEL支持WAP PUSH,只是还没有研究 :em06:

 CHNY2 回复于:2005-04-10 00:10:06
顶,虽然俺也不懂。
好像很少见关于无线网的问题。最近买了无线路由器和网卡。网卡是d-link的。问过d-link,说没有linux下的驱动。不知楼主有否办法。先谢了。

 Bali910 回复于:2005-04-10 00:39:43
[color=orange:e35f92ba5c][size=18:e35f92ba5c]顶顶顶,虽然不懂但太楼主的精神表示佩服[/size:e35f92ba5c][/color:e35f92ba5c] :em02:

 zp阿土 回复于:2005-04-10 01:44:24
俺也试验一下

 虫豸 回复于:2005-04-10 10:10:25
有点意思.

 Nanu&Nunu 回复于:2005-04-10 11:09:40
我强烈抗议~!
坚决不顶! :evil:

 acml 回复于:2005-04-10 21:11:43
支持,收藏之,顶!

 ramboran 回复于:2005-04-10 23:22:26
楼主辛苦了 偶帮你顶以下

 linuxpiao 回复于:2005-04-11 11:40:02
Up

 ramboran 回复于:2005-04-11 13:07:19
我今天安装了  但是有好多错误哦  我的是rh9 。

我看它的readme上面要求安装下面好多东西,是不是真要安啊?

On a Red Hat Linux system, you need to install the following
packages, in order:

sgml-common
psgml
docbook
stylesheets
jade
jadetex
transfig

 Nanu 回复于:2005-04-11 13:13:10
我也是在RED HAT系统上搞的,只要注意libmxl这个包就可以了,其他的那些应该是系统自带。

如果不放心的话,可以用rpm -qa | grep RPM-NAME 来查询一下是否已经安装。

你遇到了什么错误信息?在哪一步?

 ramboran 回复于:2005-04-11 13:29:08
就是在./configure 以后。libmxl这个包没问题。错误见图

javascript:window.open(this.src);" style="CURSOR: pointer" onload="return imgzoom(this,550)">




 vincent.shan 回复于:2005-04-11 14:27:08
[quote:ad47301323="Nanu"]
=======================================
1、确认Linux的IPTABLES或者其他防火墙开放相应的WAP端口;
2、修改你手机或手机模拟器中的WAP网关参数为你运行的Linux的IP地址;
3、访问一个基于WML页面的WAP站点,?.........[/quote:ad47301323]

支持原创,对俄的工作说不定会有帮助咯,谢谢^^

 小石 回复于:2005-04-12 10:38:30
支持

 luodarou 回复于:2005-04-12 11:02:20
to ramboran :
you can creat symbolic links:

ln -s /usr/kerberos/include/com_err.h /usr/include/
ln -s /usr/kerberos/include/profile.h /usr/include/
ln -s /usr/kerberos/include/krb5.h /usr/include/

 tmy 回复于:2005-04-12 14:25:02
手机测试:
1、开通gprs
2、接入点设置cmnet(cmwap不能直接访问移动外的网络
3、代理IP设置为跑wap网关的IP
4、手机输入wap网址,就跑起来了。不过也很容易报错,不如移动的网关

 jameswang 回复于:2005-04-12 14:57:05
有试过在这个基础上安装wtls么?
kannel主页有kwtls下载,但是它只支持wtls class 1。

 酷乐吧 回复于:2005-04-12 15:27:44
支持好东西

 hahayu 回复于:2005-04-13 13:27:38
非常感谢楼主,虽然不做wap,但还是学到知识了。

 chuty 回复于:2005-04-13 14:48:37
好东西 顶

 ichbinjiangtao 回复于:2005-04-13 16:23:40
顶阿啊啊啊啊啊啊 !!
[url][/url][list=][img][/img][/list]

 sunnyboy 回复于:2005-04-14 01:18:25
支持一下

 wwl 回复于:2005-04-14 21:28:34
好东西,向你学习,有时间多多交流啊,wangweilong@jlnu.edu.cn

 liubin1976 回复于:2005-04-16 11:54:05
我好找

 afa2006 回复于:2005-04-17 21:37:30


 panhua 回复于:2005-04-18 10:15:25
学习

 a212481 回复于:2005-04-18 17:34:19


 info99 回复于:2005-04-18 21:38:22
好东西,大家分享

 maveric 回复于:2005-04-19 14:09:58
:em02:   好文章,支持楼主的钻研精神.希望继续.

 li2002 回复于:2005-04-19 14:47:53
我曾经把它移植到sco unix下,不过我的项目是短信业务,而且跑得很好,增加了中文短信支持,wap我没试验过。想问一下哪里有手机模拟器下载。

 我不想死 回复于:2005-04-22 16:08:43
顶!!

 cjsavage 回复于:2005-04-23 10:53:38
支持!

 stoneson 回复于:2005-04-23 11:42:11
那么从无线到有线的过程是什么样的呢?

 sunny4u 回复于:2005-04-26 18:20:45
好 这个贴有开创性 收藏了

 culnbioxy 回复于:2005-04-27 21:56:39
顶!好文章!

 小艾 回复于:2005-04-30 10:11:19
我想知道的是:为什么我的机器不能安装呢?运行到:[root@gistlinux kannel]#  ./configur --enable-start-stop-daemon 
-bash: ./configur: No such file or directory
就不能再往下去了,请问做这个的环境,是不是有什么要求呢?我是局域网里的一台服务器上安装的。

 Nanu 回复于:2005-04-30 11:04:13
[quote:b835fe9921="小艾"]tlinux kannel]#  ./configur --enable-start-stop-daemon 
-bash: ./configur: No such file or directory
就不能再往下去了,请问做这个的环境,是不是有什么要求呢?我是局域网里的一台服务器上安装的。[/quote:b835fe9921]

呵呵,拼写错误!!
不是:configur
而是:configure

 vastsea 回复于:2005-04-30 20:00:13
怎么样把linux做成服务器,在windows 下使用它来上网

 chenzhenglan 回复于:2005-05-03 17:29:17
我在windowsxp上装了lvmware虚拟机,在上面装了linux,我想在linux上再添加一块虚拟网卡,本来eth0(pcnet32),我在系统设置里单击网络,选择新建"以太网",选"eth1(3clearcase/" target="_blank" >ccom),但却激活不了.请问我该怎么做呢?还有我装的时候选择hostonly,装了虚拟机以后出现的vmnet1属性的ip地址,和eth0的IP有什么关系呢?

 happylife365 回复于:2005-06-28 14:21:47
请问一个问题,我把这个kannel按照你的描述运行起来了,但是我不怎么会用
我用tcp连接到13002端口,发送了一个wap-push的包,但是接收response的时候没有收到,阻塞住了
请问一下怎么使用这个kannel? :D

原文转自:http://www.ltesting.net