m0n0wall 1.3b18增加3322.org动态域名支持过程实录
一、前言
由于本人对FreeBSD不熟悉,也不会PHP开发,所以都是拿来主义,一直使用m0n0wall 1.22中文版、1.235中文版和1.235中文插件版(30w核心)。
可是最近的项目要用无线网络来覆盖办公室,而m0n0wall 1.2x基于FreeBSD4.11的原因,对无线网络支持不好,一是支持的无线网卡很少(也比较难找),二是仅支持IEEE 802.11b标准,最高带宽为11Mbps。因此考虑使用基于FreeBSD 6.4的m0n0wall 1.3b18,来组建我的无线防火墙。
二、需求和问题
m0n0wall 1.3b18对无线网络支持比较好,对IEEE 802.11g标准的54Mbps支持还是不错的,无线网卡支持也比较多,我选用了Atheros 5005G/2413a芯片无线网卡。
由于我习惯使用1.235中文插件版,所以对其中的动态域名3322.org和shellcmd中ARP绑定等功能应用有需求,特别是3322.org动态域名。本次项目是使用ADSL/PPPoE来连接Internet,因此动态域名是必需的。
针对以上问题,寻求解决方案,于是乎就开始研究analyst在m0n0wall 1.2x上增加的3322.org动态域名的支持,找到希网(www.3322.org)提供的FreeBSD 4.x客户端,以及m0n0wall硬盘映像文件解包、封包的相关文章,边学边干,通过论坛和QQ群取经学习,终于在m0n0wall 1.3b18上成功增加了3322.org动态域名的支持。
三、参考资料
1、analyst, m0n0Wall硬盘映像文件解包、封包HOW TO,
http://bbs.m0n0china.org/viewthread.php?tid=1
2、analyst, 增加希网(www.3322.org)DDNS更新的m0n0wall 1.21,
http://bbs.m0n0china.org/viewthread.php?tid=42
3、xyjn, Howto:如何定制m0n0wall镜像文件, http://bbs.m0n0china.org/viewthread.php?tid=1&extra=&page=6
4、add1132, 关于给英文版加shellcmd ipshow 3322.org 的一点心得,
http://bbs.m0n0china.org/viewthread.php?tid=14345
对以上文章作者特别感谢。
四、工作过程
1、准备工作
☆ 从http://m0n0.ch/wall/上下载m0n0wall 1.3b18
☆ mini版FreeBSD 4.11
☆ 从希网(www.3322.org)下载ez-ipupdate-3.0.10-freebsd4.8-i386.tgz
☆ VMware workstation 5.5绿色版(不需要特别安装,很方便)
☆ CHKenFTP Server (一款小巧的FTP服务器软件,可以在我的博文“用g4u在VMware虚拟机上安装m0n0wall”中下载)
☆ g4u 2.4(用来安装测试m0n0wall)
2、过程实录
☆ 在我的工作电脑上先安装好VMware workstation 5.5绿色版(也就是解压缩到指定文件夹,运行几个批处理文件就行了),我的工作电脑为宿主机。
☆ 从http://www.freebsd.org下载mini版的FreeBSD 4.11,并安装在VMware上,称为FreeBSD虚拟机。
以用户root登录。
ddns01.JPG
创建工作目录system和change:
# mkdir system
# mkdir change
☆ 在宿主机上开启CHKenFTP Server,并简单配置,创建用户和指定该用户的目录,将下载好的m0n0wall映像文件generic-pc-1.3b18.img拷入这个目录。
☆ 回到FreeBSD虚拟机,ftp <宿主机IP>,并以刚创建的用户登录FTP Server,从FTP Server上下载generic-pc-1.3b18.img文件到FreeBSD虚拟机上。
对映像文件解压缩:我们下载的generic-pc-1.3b18.img文件是压缩文件,首先要解压缩。
ddns02.JPG
# mv generic-pc-1.3b18.img generic-pc-1.3b18.img.gz
# gzip -d generic-pc-1.3b18.img.gz
创建一个虚拟设备并挂载映像文件:
# vnconfig -s labels -c vn0 generic-pc-1.3b18.img
# mount /dev/vn0a system/
这样我们在system目录中就能看到generic-pc-1.3b18.img映像文件的内容了,从system中复制出mfsroot.gz文件到change目录,以便修改。
# cp system/mfsroot.gz change/
卸载挂载的映像文件和虚拟设备:
# umount system/
# vnconfig -u vn0
我们得到了mfsroot.gz这个系统文件,需要先解压缩再挂载,才能编辑内部的文件:
# gzip -d change/mfsroot.gz
# vnconfig -s labels -c vn0 change/mfsroot
# mount /dev/vn0 system/
ddns03.JPG
此时我们就得到了详细的m0n0wall系统文件和目录,这就是映像文件解包过程。
ddns04.JPG
☆ 将从希网下载的ez-ipupdate-3.0.10-freebsd4.8-i386.tgz文件,解压缩后取出其中的ez-ipupdate文件,用FTP方式下载到FreeBSD虚拟机,并拷贝到~/usr/local/bin目录,替换掉原来的ez-ipupdate。
# cp ez-ipupdate system/usr/local/bin/
ddns05.JPG
# ln -s system/lib/libc.so.6 system/lib/libc.so.4
ddns09.JPG
# vi system/usr/local/www/services_dyndns.php
修改$type和$vals中的相关内容,将DynDNS (custom)改为QDNS,将dyndns-custom改为qdns(注意是小写字母)。
ddns08.JPG
☆ 考虑使用Shellcmd和IPshow这两个插件,从论坛下载来插件,并以FTP方式下载到FreeBSD虚拟机中,并拷贝到~/usr/local/www目录。
# cp shellcmd.php system/usr/local/www/
# cp ipshow.php system/usr/local/www/
# chmod 755 system/usr/local/www/shellcmd.php
# chmod 755 system/usr/local/www/ipshow.php
然后修改fbegin.inc文件,其也位于~/usr/local/www目录:
ddns06.JPG
# vi system/usr/local/www/fbegin.inc
添加两行菜单项。
ddns07.JPG
☆ 至此,我要修改的工作已经完成(如果你还需要修改其他PHP文件,可以继续用vi编辑修改),卸载挂载的映像文件和虚拟设备:
# umount system/
# vnconfig -u vn0
然后开始封包,对修改后的mfsroot进行压缩,并拷回到映像文件中:
# gzip -9 change/mfsroot
# vnconfig -s labels -c vn0 generic-pc-1.3b18.img
# mount system/
# cp change/mfsroot.gz system/
# umount system/
# vnconfig -u vn0
最后,重新压缩映像文件,制作成你自己的m0n0wall 1.3b18映像文件:
# gzip -9 generic-pc-1.3b18.img
# mv generic-pc-1.3b18.img.gz generic-pc-1.3b18.img
☆ 用这个得到的映像文件,你可以使用g4u或physdiskwrite来安装测试m0n0wall,或者在使用中的m0n0wall中用Firmware更新功能上传映像文件(至少要是1.3b7版)。
看看效果:
dyndns.JPG
ddns10.JPG
ddns11.JPG
ddns12.JPG
五、总结
通过这次实践,在m0n0wall 1.3b18上解决了两个问题:希网(3322.org)动态域名支持、添加shellcmd和IPshow插件。当然起因是使用无线网络,用修改后的的映像文件也成功实现了54Mbps的无线网络覆盖。
根据这个思路,m0n0wall中的php文件,都可以根据需要进行修改,包括汉化等。在对m0n0wall映像文件修改操作中要遵循以下的操作流程,才不会出错:
对img文件解压缩→创建虚拟设备并挂载映像文件→复制出mfsroot.gz→卸载挂载的映像文件和虚拟设备→对mfsroot.gz解压缩→创建虚拟设备并挂载mfsroot→可以在挂载点目录中修改m0n0wall的文件,对m0n0wall进行改造→完成改造后卸载挂载的mfsroot和虚拟设备→压缩mfsroot→创建虚拟设备并挂载映像文件→将mfsroot.gz复制回映像文件(即挂载点目录)→卸载挂载的映像文件和虚拟设备→压缩img文件并更名成最终img文件。
六、版权声明
版权所有©2009,genehsu
本文版权归genehsu所有,在承认作者版权的前提下,允许任意转载;如需转载,请保留该声明,并标注出自m0n0wall中国。
转载于:https://blog.51cto.com/chenxing918/1179024
m0n0wall 1.3b18增加3322.org动态域名支持过程实录相关推荐
- ROS 5.12 上自动更新3322.org动态域名
在ROS 5.12 上使用3322.org的动态域名,下面是自动更新脚本,把它用在schedule中就能实现自动更新动态域名了.在网上找的代码,可是有些小问题,我已经修正了,并在ROS 5.12下测试 ...
- 公云(3322)动态域名指定ip解析脚本
适用于路由器ddns插件脚本 http://[USERNAME]:[PASSWORD]@members.3322.net/dyndns/update?system=dyndns&hostnam ...
- 思科E3200 路由器 DD-WRT 设置花生壳和3322.org动态域名(DDNS)
花生壳设置(已測试) ddns.oray.com:80 username aaaa password bbbb 主机名 abc.gicp.net URL /ph/update?ho ...
- 3322 动态域名更新 IP 程序补丁
因为使用的是动态 IP,远程访问比较麻烦,所以一般会申请一个 3322 的动态域名,然后通过更新域名对应的 IP 来实现域名访问远程主机的目的. 在 linux 下,3322 的网站提供了用 lynx ...
- 新狼邮箱服务器,搭建简单的邮件服务器+动态域名在互联网中使用
利用server2003搭建简单的邮件服务器,使用动态域名做mx记录可以在互联网中使用,开始之前我copy了一些资料让大家了解一下pop3和smtp. POP3(Post Office Protoco ...
- Debian下安装3322动态域名更新程序
Ez-ipupdate 是一个动态域名更新程序,可以更新希网的动态域名. 1.对于动态域名(DYNDNS),service-type参数应该选择 qdns 2.对于静态域名(STATDNS),serv ...
- dnspod每步nat123及3322动态域名同类端口映射域名解析软件对比
首先说明下这三个名词:端口映射.域名解析.动态域名解析. 端口映射 80端口映射或自定义端口映射.可以解决80端口被屏蔽,可以在内网使用直接发布网站应用,可以在内网使用实现外网访问内网应用. 域名解析 ...
- dnspod每步nat123及3322动态域名同类网络辅助软件对比
直接正题,就使用体会对比域名解析/动态域名/动态域名解析/端口映射相关免费软件或平台. dnspod dnspod域名解析.不需要转入域名.URL隐性转发另收费. dnspod动态域名解析.不需要转入 ...
- Serv-U组建个人FTP服务器, ——完全图解教程:FTP架设、端口映射、动态域名申请...
serv-u组建个人ftp服务器, --完全图解教程:ftp架设.端口映射.动态域名申请(一) 为了支持"共享小组事务"的胜利开设,我花了两天时间,参考网上众老鸟文章之长,由我这小 ...
最新文章
- RecyclerView横向滑动与ViewPager冲突问题
- 此任务要求应用程序具有提升的权限
- Python中的collections
- arcgis api for flex 开发入门(二)map 的创建
- 为什么apm代购价那么便宜_为什么长焦相机那么便宜而单反相机那么贵
- C++ opengl 绘制三角形带
- 远程网络教育计算机统考试题及答案,2019年电大远程网络教育计算机应用基础统考题库真题试题附全答案...
- Python学习笔记之While循环(二)
- 【FFMPEG系列】windows下编译FFMPEG篇----之一(MingW)
- java int转integer方法
- Android Fragment切换动画效果
- CloudStack 4.4学习总结之cloudstack-management安装
- C语言 数组和指针
- Codeforces 1076 - 题集
- 微信小程序 | 自动定时结束录制
- CAAI名誉理事长李德毅院士谈机器的生命观
- 如何用excel做正交分析_利用Excel进行正交设计及分析.pdf
- 深度学习远程服务器配置
- Shell脚本(三)
- android x86 安装it,Android X86 虚拟机安装手册