tp-link 740n 刷OpenWrt

因为DB120的无线速度确实比较慢,所以本来是打算买个FW300R V2或者TP-link 841n v[3-7]来刷OpenWrt的。结果后来在淘宝上找到了比较便宜的740n V4,算上电源才39块钱一个。就直接拍了一个。740n的ar7240的频率被限制在350Mhz,所以就采用了曲线刷机的方式,然后恰好我下的带改了400Mhz的uboot的740n的固件头校验不过,然后恰好里面带的一个dd-wrt的固件是能直接刷的。所以就740n –> dd-wrt –>741n –>741n(400Mhz uboot)–>OpenWrtdd-wrt下刷741n的估固件这样做然后就dd-wrt刷会下的固件,cat /proc/mtd确认分区名称mtd -r write 741.bin linux 具体的过程不细说了,需要用到的中转固件是这里下的。 [这里](http://115.com/file/e604qo9u)![](/picture/d89253fa.jpg)

October 22, 2012 · 1 min · pm

debian下使用ZTE的联通3G上网卡

公司发的3G卡有大半年没有用过了,主要是平时很少外出。今天测试了一下再debian下进行拨号配置,其实还是比较简单的。主要参考了网上现有的文章。 只需要安装 wvdial, usb-modeswitch就可以了。然后进行一下简单的配置,以下是我使用的配置文件# cat wvdial.conf[Dialer Defaults]Init = AT+CGDCONT=1,”IP”,”uninet”Init1 = ATZInit2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0Init6 = AT+CFUN =1Modem Type = Analog ModemBaud = 115200New PPPD = yesModem = /dev/ttyUSB2ISDN = 0Phone = *99#Username = anyAuto DNS = 0Password = anyNew PPPD = yesIdle Seconds = 300Stupid Mode = 1 [文章](http://hi.baidu.com/pcdigger/item/4ad5b2209b7ebc142a0f1c52) 其实每一项的含义都可以man wvdial.conf查看的,比如Stupid Mode就是 Stupid ModeWhen wvdial is in Stupid Mode, it does not attempt to interpret any prompts from the terminal server.It starts pppd immediately after the modem connects. Apparently there are ISP’s that actually give youa login prompt, but work only if you start PPP, rather than logging in. Go figure. Stupid Mode is(naturally) disabled by default.之前我没有添加这个配置,启动wvdial后就会处于等待的状态,配置这个选项后启动就立即进行拨号了。

October 21, 2012 · 1 min · pm

linux下的nbtstat–nbtscan

以前维护测试环境,经常遇到某一个测试或者开发跑压测,乱改数据,乱改配置等等。。总之最终需要我去把环境恢复好,最好不过的是再把这个人给抓出来。。之前是知道nbtstat基本可以根据IP查出对于的netbios名字,这个就能和工号对应起来了。今天发现linux下其实有个类似的命令,netscan,而且还能批量扫描,更为强大。具体的使用man一下就行。 “Human-readable service names” (-h) option cannot be used without verbose (-v) option.Usage:nbtscan [-v] [-d] [-e] [-l] [-t timeout] [-b bandwidth] [-r] [-q] [-s separator] [-m retransmits] (-f filename)|()-v verbose output. Print all names receivedfrom each host-d dump packets. Print whole packet contents.-e Format output in /etc/hosts format.-l Format output in lmhosts format.Cannot be used with -v, -s or -h options.-t timeout wait timeout milliseconds for response.Default 1000.-b bandwidth Output throttling. Slow down outputso that it uses no more that bandwidth bps.Useful on slow links, so that ougoing queriesdon’t get dropped.-r use local port 137 for scans. Win95 boxesrespond to this only.You need to be root to use this option on Unix.-q Suppress banners and error messages,-s separator Script-friendly output. Don’t printcolumn and record headers, separate fields with separator.-h Print human-readable names for services.Can only be used with -v option.-m retransmits Number of retransmits. Default 0.-f filename Take IP addresses to scan from file filename.-f – makes nbtscan take IP addresses from stdin.what to scan. Can either be single IPlike 192.168.1.1 orrange of addresses in one of two forms:xxx.xxx.xxx.xxx/xx or xxx.xxx.xxx.xxx-xxx.Examples:nbtscan -r 192.168.1.0/24Scans the whole C-class network.nbtscan 192.168.1.25-137Scans a range from 192.168.1.25 to 192.168.1.137nbtscan -v -s : 192.168.1.0/24Scans C-class network. Prints results in script-friendlyformat using colon as field separator.Produces output like that:192.168.0.1:NT_SERVER:00U192.168.0.1:MY_DOMAIN:00G192.168.0.1:ADMINISTRATOR:03U192.168.0.2:OTHER_BOX:00U…nbtscan -f iplistScans IP addresses specified in file iplist.

October 20, 2012 · 2 min · pm

用nmap扫描OS类型

nmap里面可以根据FIN探查,无效标志探查,ISN采样,DF标志位监控,TCP初始化窗口大小,ACK的值,ICMP出错消息,ICMP消息内容,TOS字段,数据包拆分处理和一些其他的TCP选项来大概猜测远程OS的类型。直接bash sudo nmap -O www.domain.com -D 8.8.8.8 就能对相应的主机进行扫描,-D是伪装IP 源。```bash www.ebay.com Starting Nmap 6.00 ( http://nmap.org ) at 2012-10-20 19:02 CSTNmap scan report for www.ebay.com (66.211.181.181)Host is up (0.56s latency).Other addresses for www.ebay.com (not scanned): 66.211.181.161 66.135.210.181 66.135.210.61 66.135.200.181 66.135.200.161Not shown: 998 filtered portsPORT STATE SERVICE80/tcp open http443/tcp closed httpsDevice type: load balancerRunning (JUST GUESSING): Citrix embedded (85%)Aggressive OS guesses: Citrix NetScaler load balancer (85%)No exact OS matches for host (test conditions non-ideal). 当然,如果想扫描一下开的端口啥的直接-sS扫描吧,也可以选ACK扫描,那就-sA pm@debian:~sudo nmap -sS www.baidu.com ```bash Starting Nmap 6.00 ( http://nmap.org ) at 2012-10-20 19:06 CST^Cpm@debian:~$ sudo nmap -sS www.google.com

October 20, 2012 · 1 min · pm

记一次乌龙

上周做了个很乌龙的事情,我本来是想bash dd if=debian-xxx.iso of=/dev/sdb bs=1 count=1024 结果敲成成```bash dd if=debian-xxx.iso of=/dev/sda bs=1 count=1024 /dev/sda appears to contain a iso9660 filesystem which isn’t known to reserve space for DOS-style boot. Installing GRUB there could result in FILESYSTEM DESTRUCTION if valuable data is overwritten by grub-setup (–skip-fs-probe disables this check, use at your own risk)

October 18, 2012 · 1 min · pm

debian下初试lxc

现在容器型的虚拟化也很流行了,主要是相对XEN,KVM之类的能节省资源一些,这两天事情不是太多就简单了一下。主要参考了debian的wiki(http://wiki.debian.org/LXC).我不是太喜欢把自己用的电脑搞一堆实验性的配置,所以就在virtualbox里面装了一个debian做宿主机再进行的,virtualbox使用的是桥接模式。1.宿主机里面配置了一个网桥/etc/network/interfaces#allow-hotplug eth0#iface eth0 inet dhcp auto br0iface br0 inet dhcpbridge_ports eth0bridge_fd 0bridge_maxwait 0 root@linux:~# brctl showbridge name bridge id STP enabled interfacesbr0 8000.080027d2351d no eth0 2.宿主机安装基础的软件和配置2.1 安装 lxc bridge-utils libvirt-bin debootstrapaptitude install lxc bridge-utils libvirt-bin debootstrap2.2 /etc/fstab 添加cgroup /sys/fs/cgroup cgroup defaults 0 02.3 拷贝一份模板cp -a /usr/lib/lxc/templates/lxc-debian /usr/lib/lxc/templates/lxc-squeeze并把/usr/lib/lxc/templates/lxc-squeeze里面的 lenny替换为squeeze,把dhcp-client替换为isc-dhcp-client 启动之后我们可以brctl show看看 root@linux:~# brctl showbridge name bridge id STP enabled interfacesbr0 8000.080027d2351d no eth0vethyXMqY8root@linux:~# ifconfigbr0 Link encap:Ethernet HWaddr 08:00:27:d2:35:1dinet addr:192.168.2.207 Bcast:192.168.2.255 Mask:255.255.255.0inet6 addr: fe80::a00:27ff:fed2:351d/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:525 errors:0 dropped:0 overruns:0 frame:0TX packets:314 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:45074 (44.0 KiB) TX bytes:50956 (49.7 KiB) 是br0下新增了一个网卡。 ...

October 9, 2012 · 1 min · pm

perl使用非标准路径安装的cpan模块

cpanm支持安装模块的时候临时直接制定一个路径,对于没有root权限的人来说是比较方面的。curl -LO http://bit.ly/cpanmchmox +x cpanmcp cpanm /usr/sbin 然后直接cpanm http://mirrors.163.com/cpan/authors/id/S/SA/SALVA/Net-OpenSSH-0.58_04.tar.gz ~/cpanlib/就OK了。 但是在写脚本的时候要在BEGIN阶段把这个目录添加到@INC里。类似:BEGIN { unshift @INC, ‘/home/pm/cpanlib/lib/perl5/’ } 这样就可以直接先用自己安装的新版本的模块,而不是用系统里带的老版本的模块了。

September 26, 2012 · 1 min · pm

Net::OpenSSH的一个bug

因为想使用Net:OpenSSH的时候能forward_agent,就测试了一下最新版本的Net::OpenSSH.结果比较杯具的是发现forward_agent参数指定后不顶用。仔细看了一下模块的代码,作者貌似是犯了一个比较低级的错误。有2处是if ($self->{_forward_agent}) {my $forward_agent = delete $opts{forward_agent};push @ssh_opts, ($forward_agent ? ‘-A’ : ‘-a’) if defined $forward_agent;}这里实际是如果输入的时候定义了forward_agent就给ssh_opts加一个-A,表示开启转发。但是作者却还是从$opts{forward_agent}里面取。实际上第一次这样取值后,这个就被delete掉了。我直接改了一下代码,patch如下pm@debian:~$ cat OpenSSH.diff1160,1162c1160,1161< if ($self->{_forward_agent}) {< my $forward_agent = delete $opts{forward_agent}; < push @ssh_opts, ($forward_agent ? '-A' : '-a') if defined $forward_agent; --- > if (defined $self->{_forward_agent}) {> push @ssh_opts, ($self->{_forward_agent} ? ‘-A’ : ‘-a’); 1294,1296c1293,1294< if ($self->{_forward_agent}) {< my $forward_agent = delete $opts{forward_agent}; < push @ssh_opts, ($forward_agent ? '-A' : '-a') if defined $forward_agent; --- > if (defined $self->{_forward_agent}) {> push @ssh_opts, ($self->{_forward_agent} ? ‘-A’ : ‘-a’); 修改后终于OK了。 ================UPDATE:和模块的作者联系过,模块没有bug,只是使用的时候需要直接传入参数 my $out=$ssh->capture({“forward_agent” => 1},$cmd);

September 25, 2012 · 1 min · pm

tar解压压缩包内的指定文件

最近有老的机房下线了,为了提高日志备份的速度,我就把每个应用下的日志目录整体打包压缩了。但是这样又带来了一个新的问题,那就是经常会有人来找我提取日志查看,我地根据每个人的需求把日志解压出来。因为日志存在一个存储上面,直接全部解压的话实际上会有很大的网络流量(log.tgz)NAS–>unzip server –>NAS(log)。所以就写了个脚本只把每个应用下的指定日志解压出来```bash #!/bin/bash ###############################Author: GNUer############################# LOGDIR=/mnt/abcvm/abcvm/appAPP=$1LOGNAME="$2" APPLOG=$LOGDIR/$APP/usage(){echo -e “usage:\n"echo -e “\t$0 APP LOGNAME"exit 0} OLDDIR=$(pwd)echo “unzip $APP $LOGNAME*“getlogname(){local applocal lognameapp=$1logname=$2[ ! $app ] && exit 2 for tgz in $(fi nd $LOGDIR/$APP -name “*.tgz”)do }[ $# -ne 2 ] && usagegetlogname $APP $LOGNAME

September 25, 2012 · 1 min · pm

局域网bt tracker服务器配置

因为facebook使用bt分发应用包提高部署的速度,所以大家都在想能不能只用用现有开发成熟的软件做一个类似的方案出来。自己简单地测试了一下,凑合可以用。不过bt的客户端很难找到一个合适的,transmission本来还不错的,但是细节的使用还是需要多搞一下。昨天简单地用opentracker和ctorrent来测试了一下,基本能跑起来。 1.先设置单个的tracker服务器直接找了一个开源的tracker服务器 http://erdgeist.org/arts/software/opentracker/。对照里面的readme就可以完成安装, cvs -d :pserver:[email protected]:/cvs -z9 co libowfatcd libowfatmakecd ..cvs -d:pserver:[email protected]:/home/cvsroot co opentrackercd opentrackermake我是把opentracker安装到了/opt目录下面。然后直接用命令启动 就行了 2.使用mktorrent创建torrent(ctorrent其实也能建立种子但是测试了一下不支持目录) 根据单个文件制作种子的时候最好写绝对路径,简单测试一下把centos的一个镜像(CentOS-6.3-x86_64-LiveCD.iso )添加到种子里面。$ mktorrent -a http://xxx.test1.net:6969/announce -o centos.torrent /home/admin/CentOS-6.3-x86_64-LiveCD.isomktorrent 1.0 (c) 2007, 2009 Emil Renner Berthing 在做种的服务器上直接提交种子ctorrent centos.torrent文件校验完成后就开始做种。 3.把种子文件拷贝到需要传输的几个机器上,然后在每台服务器上运行ctorrent centos.torrent -s p2p/centos.iso就会把文件下载到p2p目录下,并把文件存为centos.iso简单测试了一下,把一个服务器上的文件删除后,可以看到另外一个服务器的在做种了,第一次上传了349M,第二次430M,还可以。局域网这样传输的速度非常的快。Listening on 0.0.0.0:2705\ 2/0/3 [2751/2768/2768] 688MB,0MB | 88078,0K/s | 81920,0K E:0,1Download complete.Total time used: 0 minutes.Seed for other 72 hours. \ 0/0/3 [2768/2768/2768] 692MB,349MB | 0,0K/s | 0,0K E:0,2/ 0/0/3 [2768/2768/2768] 692MB,779MB | 0,0K/s | 0,0K E:0,2 后续: 这个只是简单测试了部署局域网内BT P2P分发的可行性,实际上很多细节的地方需要考虑。比如tracker服务器的精细化、集群化配置,opentracker感觉还是非常粗糙的一个东西,可以设置的地方很少,而且也没有后台页面查看。另外ctorrent虽然简单用用还行,但是几千台服务器还是要客户端能后台执行,命令行远程进行种子的添加(或者自动添加某个目录下的种子)、删除、任务完成后进行通知。transmission目前看来还可以,但是在N个版本的OS上安装就比较麻烦。 ...

September 25, 2012 · 1 min · pm