海运的博客

GT701-WG刷OpenWRT系统

发布时间:August 11, 2012 // 分类:OpenWrt // No Comments

GT701-WG配置如下 ,玩玩OpenWRT带几台电脑绰绰有余。

CPU:160MHZ
RAM:16M
FLASH:4M

GT701-WG最新可用Openwrt官方固件下载:http://downloads.openwrt.org/backfire/10.03.1/ar7/openwrt-ar7-squashfs.bin
刷机步骤,开机3秒左右连接到路由FTP:

ftp 192.168.0.1
Connected to 192.168.0.1.
220 ADAM2 FTP Server ready.
Name (192.168.0.1:peter): adam2
331 Password required for adam2.
Password: adam2
230 User adam2 successfully logged in.
Remote system type is UNIX.
ftp> binary
200 Type set to I.
ftp> quote SETENV MAC_PORT,0
200 SETENV command successful
ftp> quote SETENV mtd5,0x90010000,0x903e0000
200 SETENV command successful
ftp> quote MEDIA FLSH
200 Media set to FLSH.
ftp> put "openwrt-ar7-squashfs.bin" "openwrt-ar7-squashfs.bin mtd5"
local: openwrt-ar7-squashfs.bin remote: openwrt-ar7-squashfs.bin mtd5
200 Port command successful.
150 Opening BINARY mode data connection for file transfer.
100% |************************************| 2560 KiB 129.35 KiB/s 00:00 ETA
226 Transfer complete.
2621444 bytes sent in 00:20 (122.30 KiB/s)
ftp> quote REBOOT
221-Thank you for using the FTP service on ADAM2.
221 Goodbye.
ftp> quit

网络配置:

config atm-bridge
    option unit     0
    option encaps   llc
    option vpi      0
    option vci      35
    option payload  bridged
config interface wan
    option ifname       nas0
    option proto        pppoe
    option username    "username"
    option password    "password"

刷新为原版系统,提供GT701-WG官方5.5中文固件下载

ftp 192.168.0.1
Connected to 192.168.0.1.
220 ADAM2 FTP Server ready.
Name (192.168.0.1:user): adam2
Password:
230 User adam2 successfully logged in.
Remote system type is UNIX.
ftp> binary
200 Type set to I.
ftp> quote UNSETENV mtd5
200 UNSETENV command successful
ftp> quote UNSETENV MAC_PORT
200 UNSETENV command successful
ftp> quote MEDIA FLSH
200 Media set to FLSH.
ftp> put nsp.ar7wrd.squashfs.img "nsp.ar7wrd.squashfs.img mtd0"
local: nsp.ar7wrd.squashfs.img remote: nsp.ar7wrd.squashfs.img mtd0
502 Command not implemented - Try HELP.
227 Entering Passive Mode (192,168,0,1,4,45).
150 Opening BINARY mode data connection for file transfer.
100% |*************************************|  1940 KB   82.54 KB/s    00:00 ETA
226 Transfer complete.
1986560 bytes sent in 00:23 (81.18 KB/s)
ftp> put ram_zimage_pad.ar7wrd.nsp.squashfs.bin "ram_zimage_pad.ar7wrd.nsp.squashfs.bin mtd1"
local: ram_zimage_pad.ar7wrd.nsp.squashfs.bin remote: ram_zimage_pad.ar7wrd.nsp.squashfs.bin mtd1
227 Entering Passive Mode (192,168,0,1,4,45).
150 Opening BINARY mode data connection for file transfer.
100% |*************************************|   640 KB   85.43 KB/s    00:00 ETA
226 Transfer complete.
655360 bytes sent in 00:07 (81.14 KB/s)
ftp> quote REBOOT
221-Thank you for using the FTP service on ADAM2.
221 Goodbye.
ftp> quit

Openwrt使用mtd和sysupgrade刷机、备份恢复系统配置

发布时间:August 11, 2012 // 分类:OpenWrt // 3 Comments

查看当前系统分区信息:

cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00020000 00020000 "CFE"
mtd1: 000dff00 00020000 "kernel"
mtd2: 00ee0000 00020000 "rootfs"
mtd3: 00840000 00020000 "rootfs_data"
mtd4: 00020000 00020000 "nvram"
mtd5: 00fc0000 00020000 "linux"

备份系统CFE:

dd if=/dev/mtd0 of=/mnt/cfe.bin

备份恢复Openwrt系统配置:

#备份自定义系统信息,包括新安装软件
dd if=/dev/mtd3 of=/mnt/overlay.bin
#恢复备份设置
mtd -r write /mnt/overlay.bin rootfs_data
#仅备份系统配置
sysupgrade -b /mnt/back.tar.gz
#恢复系统配置
sysupgrade -r /mnt/back.tar.gz

恢复Openwrt系统默认设置:

rm -rf /overlay/* && reboot
#删除/overlay分区所有文件,重启即恢复默认设置
mtd -r erase rootfs_data
#使用mtd清除/overlay分区信息后重启即恢复默认设置

刷新系统:

#使用mtd更新系统
mtd -r write openwrt.bin linux
#刷机并恢复系统配置,推荐
sysupgrade -f /mnt/back.tar.gz img.bin

Ubuntu/CentOS下编译OpenWRT固件

发布时间:August 10, 2012 // 分类:OpenWrt // 2 Comments

Ubuntu安装编译环境:

apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils\ 
subversion libncurses5-dev ncurses-term zlib1g-dev 

CentOS安装编译环境:

yum install autoconf binutils bison bzip2 flex gawk gcc gcc-c++ gettext make ncurses-devel patch \
unzip wget zlib-devel

编译以非root用户运行,新建用户:

useradd -m openwrt
su -l openwrt

获取源码:

#开发版
#svn co svn://svn.openwrt.org/openwrt/trunk 
#10.03
#svn co svn://svn.openwrt.org/openwrt/branches/backfire
#12.09
#svn co svn://svn.openwrt.org/openwrt/branches/attitude_adjustment
#14.07
svn co svn://svn.openwrt.org/openwrt/branches/barrier_breaker
#指定svn版本
svn co svn://svn.openwrt.org/openwrt/branches/barrier_breaker -r 42625 
cd barrier_breaker
./scripts/feeds update -a
./scripts/feeds install -a

或Git获取源码:

#开发版
git clone git://git.openwrt.org/openwrt.git
#14.07
git clone git://git.openwrt.org/14.07/openwrt.git

更多见:
http://wiki.openwrt.org/doc/howto/buildroot.exigence#trunk_main_development_tree
https://dev.openwrt.org/wiki/GetSource
进入编译选项:

make menuconfig

可以在编译前添加/修改配置文件,所在目录:

package/base-files/files/

编译固件,编译成功后固件在当前目录bin目录下,可以先编译x86使用vmware测试openwrt固件

make
-j n #多线程,可使用CPUx2
V=99 #详细输出

编译单个软件,进入编译选项选择要编译的软件后,如果没有make需执行以下:

make tools/install
make toolchain/install

然后编译指定的软件:

make package/name/compile

遇到的问题:
/target-i386_i486_uClibc-0.9.33.2/stamp/.tools_install_yynyynynynyyyyyyyyyynyyyyyyyynyyyynyyyynnyynnnyyyy] Error 2
编译gcc的问题,使用系统自带gcc正常,见https://dev.openwrt.org/ticket/17805
然后又遇到barrier_breaker/include/toplevel.mk:171: recipe for target 'world' failed
删除之前gcc编译生成的文件,见https://dev.openwrt.org/ticket/11175

make dirclean

Openwrt/Linux下用bridges和Iptables构建透明防火墙

发布时间:August 5, 2012 // 分类:OpenWrt // No Comments

1.设置桥接内网和外网:

brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
ifconfig br0 netmask 255.255.255.0 192.168.1.2 up

配置Iptables防火墙,eth0为外网,eth1为内网。

#配置防火墙自身规则
iptables -P INPUT DROP
iptables -A INPUT –m state --state RELATED,ESTABLISHED –j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m physdev --physdev-in eth1 -j ACCEPT
#配置转发规则
iptables -P FORWARD DROP
iptables -A FORWARD –m state --state RELATED,ESTABLISHED –j ACCEPT
iptables -A FORWARD -m physdev --physdev-in eth1 --physdev-out eth0 -j ACCEPT

Openwrt配置QOS流量带宽限制

发布时间:August 5, 2012 // 分类:OpenWrt // 1 Comment

针对特定服务做优先级设定,提高带宽使用质量,也可针对特定IP进行限速。

#加载模块:
insmod xt_IPID
insmod cls_u32                                                                                         
insmod cls_fw  
insmod sch_htb
insmod sch_sfq
insmod sch_prio
#启用IMQ虚拟网卡
ip link set imq0 up
ip link set imq1 up
#删除旧队列
tc qdisc del dev imq0 root
tc qdisc del dev imq1 root
#上传设置
#增加根队列,未标记数据默认走26
tc qdisc add dev imq0 root handle 1: htb default 26
#增加总流量规则
tc class add dev imq0 parent 1: classid 1:1 htb rate 350kbit
#增加子类
tc class add dev imq0 parent 1:1 classid 1:20 htb rate 80kbit ceil 250kbit prio 0
tc class add dev imq0 parent 1:1 classid 1:21 htb rate 80kbit ceil 250kbit prio 1
tc class add dev imq0 parent 1:1 classid 1:22 htb rate 80kbit ceil 250kbit prio 2
tc class add dev imq0 parent 1:1 classid 1:23 htb rate 80kbit ceil 250kbit prio 3
tc class add dev imq0 parent 1:1 classid 1:24 htb rate 80kbit ceil 250kbit prio 4
tc class add dev imq0 parent 1:1 classid 1:25 htb rate 50kbit ceil 250kbit prio 5
tc class add dev imq0 parent 1:1 classid 1:26 htb rate 50kbit ceil 150kbit prio 6
tc class add dev imq0 parent 1:1 classid 1:27 htb rate 50kbit ceil 100kbit prio 7
#为子类添加SFQ公平队列,每10秒重置
tc qdisc add dev imq0 parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev imq0 parent 1:21 handle 21: sfq perturb 10
tc qdisc add dev imq0 parent 1:22 handle 22: sfq perturb 10
tc qdisc add dev imq0 parent 1:23 handle 23: sfq perturb 10
tc qdisc add dev imq0 parent 1:24 handle 24: sfq perturb 10
tc qdisc add dev imq0 parent 1:25 handle 25: sfq perturb 10
tc qdisc add dev imq0 parent 1:26 handle 26: sfq perturb 10
tc qdisc add dev imq0 parent 1:27 handle 27: sfq perturb 10
#添加过滤规则配合Iptables Mark标记
#tc filter add dev imq0 parent 1:0 protocol ip u32 match ip sport 22 0xffff flowid 1:10
#使用U32标记数据,下面使用Iptables mark,容易。
tc filter add dev imq0 parent 1:0 prio 0 protocol ip handle 20 fw flowid 1:20
tc filter add dev imq0 parent 1:0 prio 0 protocol ip handle 21 fw flowid 1:21
tc filter add dev imq0 parent 1:0 prio 0 protocol ip handle 22 fw flowid 1:22
tc filter add dev imq0 parent 1:0 prio 0 protocol ip handle 23 fw flowid 1:23
tc filter add dev imq0 parent 1:0 prio 0 protocol ip handle 24 fw flowid 1:24
tc filter add dev imq0 parent 1:0 prio 0 protocol ip handle 25 fw flowid 1:25
tc filter add dev imq0 parent 1:0 prio 0 protocol ip handle 26 fw flowid 1:26
tc filter add dev imq0 parent 1:0 prio 0 protocol ip handle 27 fw flowid 1:27
#上传数据转入特定链
iptables -t mangle -N MYSHAPER-OUT
iptables -t mangle -A POSTROUTING -o pppoe-wan -j MYSHAPER-OUT
iptables -t mangle -A MYSHAPER-OUT -j IMQ --todev 0
#为特定数据打上标记配合之前过滤规则
#iptables -t mangle -I MYSHAPER-OUT -s 192.168.1.16 -j MARK --set-mark 27 #限制特定IP上传速度
#iptables -t mangle -I MYSHAPER-OUT -s 192.168.1.16 -j RETURN
iptables -t mangle -A MYSHAPER-OUT -p tcp --tcp-flags SYN,RST,ACK SYN -j MARK --set-mark 20 #提高HTTP连接速度
iptables -t mangle -A MYSHAPER-OUT -p tcp --tcp-flags SYN,RST,ACK SYN -j RETURN
iptables -t mangle -A MYSHAPER-OUT -p udp --dport 53 -j MARK --set-mark 20 #DNS查询
iptables -t mangle -A MYSHAPER-OUT -p udp --dport 53 -j RETURN
iptables -t mangle -A MYSHAPER-OUT -p icmp -j MARK --set-mark 21 #ICMP数据
iptables -t mangle -A MYSHAPER-OUT -p icmp -j RETURN
iptables -t mangle -A MYSHAPER-OUT -p tcp -m length --length :64 -j MARK --set-mark 21 #小数据包
iptables -t mangle -A MYSHAPER-OUT -p tcp -m length --length :64 -j RETURN
iptables -t mangle -A MYSHAPER-OUT -p tcp --dport 22 -j MARK --set-mark 22 #SSH连接
iptables -t mangle -A MYSHAPER-OUT -p tcp --dport 22 -j RETURN
iptables -t mangle -A MYSHAPER-OUT -p udp --dport 1194 -j MARK --set-mark 22 #VPN连接
iptables -t mangle -A MYSHAPER-OUT -p udp --dport 1194 -j RETURN
iptables -t mangle -A MYSHAPER-OUT -p tcp --dport 80 -j MARK --set-mark 23 #HTTP连接
iptables -t mangle -A MYSHAPER-OUT -p tcp --dport 80 -j RETURN
iptables -t mangle -A MYSHAPER-OUT -p tcp --dport 443 -j MARK --set-mark 24 #HTTPS连接
iptables -t mangle -A MYSHAPER-OUT -p tcp --dport 443 -j RETURN
#上传设置完成

#下载设置
#增加根队列,未标记数据默认走24
tc qdisc add dev imq1 handle 1: root htb default 24
tc class add dev imq1 parent 1: classid 1:1 htb rate 3500kbit
#添加子类
tc class add dev imq1 parent 1:1 classid 1:20 htb rate 1000kbit ceil 1500kbit prio 0
tc class add dev imq1 parent 1:1 classid 1:21 htb rate 1500kbit ceil 2500kbit prio 1
tc class add dev imq1 parent 1:1 classid 1:22 htb rate 2000kbit ceil 3500kbit prio 2
tc class add dev imq1 parent 1:1 classid 1:23 htb rate 1000kbit ceil 1500kbit prio 3
tc class add dev imq1 parent 1:1 classid 1:24 htb rate 1000kbit ceil 1500kbit prio 4
#为子类添加SFQ公平队列
tc qdisc add dev imq1 parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev imq1 parent 1:21 handle 21: sfq perturb 10
tc qdisc add dev imq1 parent 1:22 handle 22: sfq perturb 10
tc qdisc add dev imq1 parent 1:23 handle 23: sfq perturb 10
tc qdisc add dev imq1 parent 1:24 handle 24: sfq perturb 10
#过滤规则
tc filter add dev imq1 parent 1:0 prio 0 protocol ip handle 20 fw flowid 1:20
tc filter add dev imq1 parent 1:0 prio 0 protocol ip handle 21 fw flowid 1:21
tc filter add dev imq1 parent 1:0 prio 0 protocol ip handle 22 fw flowid 1:22
tc filter add dev imq1 parent 1:0 prio 0 protocol ip handle 23 fw flowid 1:23
tc filter add dev imq1 parent 1:0 prio 0 protocol ip handle 24 fw flowid 1:24
#下载数据转入特定链
iptables -t mangle -N MYSHAPER-IN
iptables -t mangle -A PREROUTING -i pppoe-wan -j MYSHAPER-IN
iptables -t mangle -A MYSHAPER-IN -j IMQ --todev 1
#分类标记数据
#iptables -t mangle -A MYSHAPER-IN -d 192.168.1.16 -j MARK --set-mark 23 #限制特定IP下载速度
#iptables -t mangle -A MYSHAPER-IN -d 192.168.1.16 -j RETURN
iptables -t mangle -A MYSHAPER-IN -p tcp -m length --length :64 -j MARK --set-mark 20 #小数据优先
iptables -t mangle -A MYSHAPER-IN -p tcp -m length --length :64 -j RETURN
iptables -t mangle -A MYSHAPER-IN -p icmp -j MARK --set-mark 20 #ICMP数据
iptables -t mangle -A MYSHAPER-IN -p icmp -j RETURN
iptables -t mangle -A MYSHAPER-IN -p tcp --sport 22 -j MARK --set-mark 21 #SSH连接
iptables -t mangle -A MYSHAPER-IN -p tcp --sport 22 -j RETURN
iptables -t mangle -A MYSHAPER-IN -p udp --sport 1194 -j MARK --set-mark 21 #VPN连接
iptables -t mangle -A MYSHAPER-IN -p udp --sport 1194 -j RETURN
iptables -t mangle -A MYSHAPER-IN -p tcp --sport 443 -j MARK --set-mark 22 #HTTPS连接
iptables -t mangle -A MYSHAPER-IN -p tcp --sport 443 -j RETURN
iptables -t mangle -A MYSHAPER-IN -p tcp --sport 80 -j MARK --set-mark 22 #HTTP连接
iptables -t mangle -A MYSHAPER-IN -p tcp --sport 80 -j RETURN
iptables -t mangle -A MYSHAPER-IN -p tcp --sport 0:1024 -j MARK --set-mark 23 #系统服务端口连接
iptables -t mangle -A MYSHAPER-IN -p tcp --sport 0:1024 -j RETURN
#下载设置完成
分类
最新文章
最近回复
  • opnfense: 谢谢博主!!!解决问题了!!!我之前一直以为内置的odhcp6就是唯一管理ipv6的方式
  • liyk: 这个方法获取的IPv6大概20分钟之后就会失效,默认路由先消失,然后Global IPV6再消失
  • 海运: 不好意思,没有。
  • zongboa: 您好,請問一下有immortalwrt設定guest Wi-Fi的GUI教學嗎?感謝您。
  • 海运: 恩山有很多。
  • swsend: 大佬可以分享一下固件吗,谢谢。
  • Jimmy: 方法一 nghtp3步骤需要改成如下才能编译成功: git clone https://git...
  • 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
  • 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
  • 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...