现在dns污染真的很烦人,总是会莫名其妙地遇到然后导致访问失败,折腾了相当久都没有什么好办法。dnsmasq上加上了chinalist,可以搞定国内的大部分域名,大部分CDN也能用,但是国外的地址解析一直都不是很稳定。

试过直接经梯子用国外的dns服务器,但是由于梯子本身的不稳定,上网的体验太差了,动不动就解析不了ip地址。然后经过一番搜索,得知了dnscrypt已经移植到了openwrt上,于是果断已看,还真有。

root@Belkin ~ # opkg list | grep dnscrypt
dnscrypt-proxy - 1.4.3-1 - dnscrypt-proxy provides local service which can be used directly as your local resolver or as a DNS forwarder, encrypting and authenticating requests using the DNSCrypt protocol and passing them to an upstream server. The DNSCrypt protocol uses high-speed high-security elliptic-curve cryptography and is very similar to DNSCurve, but focuses on securing communications between a client and its first-level resolver.

结果装上之后一试,哎呦,速度还可以,也比较稳定,没出现什么经常性的抽风。

安装的过程非常简单,opkg install dnscrypt-proxy之后修改/etc/config/dnscrypt-proxy,只需要取消注释一行就可以用了

config dnscrypt-proxy
    option address '127.0.0.1'
    option port '5353'
    option resolver 'cisco'
    # option resolvers_list '/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv'
    # option ephemeral_keys '1'

至于可以用的公用解析器,可以参考public DNSCrypt resolvers。

dig了一下,查询时间大概在200-ms,效果良好~

root@Belkin /etc/config # dig youtube.com -p 5353 127.0.0.1

; <<>> DiG 9.9.8-P3 <<>> youtube.com -p 5353 127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40410
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;youtube.com.                   IN      A

;; ANSWER SECTION:
youtube.com.            300     IN      A       216.58.203.14

;; Query time: 194 msec
;; SERVER: 127.0.0.1#5353(127.0.0.1)
;; WHEN: Thu Jun 30 23:51:44 CST 2016
;; MSG SIZE  rcvd: 56

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 6494
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;127.0.0.1.                     IN      A

;; AUTHORITY SECTION:
.                       2158    IN      SOA     a.root-servers.net. nstld.verisign-grs.com. 2016062901 1800 900 604800 86400

;; Query time: 188 msec
;; SERVER: 127.0.0.1#5353(127.0.0.1)
;; WHEN: Thu Jun 30 23:51:44 CST 2016
;; MSG SIZE  rcvd: 113

然后配置dnsmasq,修改/etc/dnsmasq.conf,添加一行

conf-dir=/etc/dnsmasq.d

然后把https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf下载到/etc/dnsmasq.d/,再去修改dnsmasq的转发为127.0.0.1#5353

dnsmasq转发

或者直接修改/etc/config/dhcp

config dnsmasq
    option domainneeded '1'
    option boguspriv '1'
    option localise_queries '1'
    option local '/lan/'
    option domain 'lan'
    option expandhosts '1'
    option authoritative '1'
    option readethers '1'
    option leasefile '/tmp/dhcp.leases'
    option resolvfile '/tmp/resolv.conf.auto'
    option rebind_protection '0'
    list server '127.0.0.1#5353'

参考资料:

https://wiki.openwrt.org/oldwiki/wpa2enterprise

http://mailing.unix.freeradius-users.narkive.com/6aB8aIhP/eap-mschap-v2-mschap-failed-no-nt-lm-password-cannot-performauthentication

http://www.blog.10deam.com/2015/01/08/install-freeradius2-on-a-openwrt-router-for-eap-authentication/

暂时来说,EAP是起来了,但是还是没搞懂怎么用该死的sql来做储存。而且我根据教程用原版配置文件慢慢改出来的配置超他妈神奇的不能接受localhost的请求,偏偏来自其他机器的请求就能收到,真是理解不能。

废话不多说,直接开始:

 

1:替换掉原有的mini工具包,官方出场的固件自带的不支持EAP。如果没有openssl的话,也顺便装上。

opkg remove wpad-mini hostapd-mini
opkg install wpad hostapd openssl-util

2:安装freeradius

opkg install freeradius2 freeradius2-common freeradius2-democerts freeradius2-mod-always freeradius2-m
od-attr-filter freeradius2-mod-attr-rewrite freeradius2-mod-chap freeradius2-mod-detail freeradius2-mod-eap freeradiu
s2-mod-eap-gtc freeradius2-mod-eap-md5 freeradius2-mod-eap-mschapv2 freeradius2-mod-eap-peap freeradius2-mod-eap-tls
freeradius2-mod-eap-ttls freeradius2-mod-exec freeradius2-mod-expiration freeradius2-mod-expr freeradius2-mod-files f
reeradius2-mod-ldap freeradius2-mod-logintime freeradius2-mod-mschap freeradius2-mod-pap freeradius2-mod-passwd freeradius2-mod-preprocess freeradiu
s2-mod-radutmp freeradius2-mod-realm freeradius2-mod-sql freeradius2-mod-sql-mysql freeradius2-mod-sql-pgsql freeradi
us2-mod-sql-sqlite freeradius2-mod-sqlcounter freeradius2-mod-sqllog freeradius2-utils

可以酌情减掉不需要的部分,这次主要用到的有chap eap-mschapv2 eap-tls files这几个。

3.把全部的配置文件备份起来包括/etc/freeradius2/下面的几个.conf还有sites里面的那个default,通通移到别的地方,因为完全不需要这么臃肿的配置文件(而且我试过用了反而连不上这种糟糕的状况)。然后创建下面几个配置文件

radiusd.conf

prefix = /usr
exec_prefix = /usr
sysconfdir = /etc
localstatedir = /var
sbindir = /usr/sbin
logdir = ${localstatedir}/log/radius
raddbdir = /etc/freeradius2
dictionary = /usr/share/freeradius2/
db_dir = ${raddbdir}/db
libdir = /usr/lib/freeradius2
radacctdir = ${logdir}/radacct
confdir = ${raddbdir}
run_dir = ${localstatedir}/run
listen {
        ipaddr = *
        port = 0
        type = auth
}
thread pool {
        start_servers = 1
        max_servers = 4
        min_spare_servers = 1
        max_spare_servers = 3
        max_requests_per_server = 0
}
$INCLUDE  ${confdir}/clients.conf
modules {
        mschap {
                authtype = MS-CHAP
        }
        $INCLUDE ${confdir}/eap.conf
        mschapv2 {
        }
        files {
                usersfile = ${confdir}/users
                compat = no
        }
}
authorize {
        files
        mschap
        eap
}
authenticate {
        Auth-Type MS-CHAP {
                mschap
        }
        eap
}

clients.conf

client 127.0.0.1 {
        secret          = thisisafuckingsecrectpasswordyoudontknow
        shortname       = localhost
        nastype     = other     # localhost isn't usually a NAS...
}

eap.conf

eap {
        default_eap_type = peap
        timer_expire     = 60
        ignore_unknown_eap_types = no
        cisco_accounting_username_bug = no
        mschapv2 {
        }
        tls {
                rsa_key_length = 2048
                dh_key_length = 1024
                private_key_password = whatever
                private_key_file = ${raddbdir}/certs/radius.key
                certificate_file = ${raddbdir}/certs/radius.crt
                CA_file = ${raddbdir}/certs/radius.crt
                dh_file = ${raddbdir}/certs/dh
                fragment_size = 1024
        }
        peap {
                default_eap_type = mschapv2
        }
}

PS:记得创建证书和dh文件

openssl req -x509 -newkey rsa:2048 -keyout radius.key -out radius.crt -days 3650
openssl dhparam -out dh 1024

user

DEFAULT Group == "disabled", Auth-Type := Reject
 Reply-Message = "Your account has been disabled."
fruser Cleartext-Password := "fruser"
 Reply-Message = "Hello, %{User-Name}",
 Fall-Through = no

PS:如果后面还有其他的用户,Fall-Through就用yes,否则用no

配置文件都写好之后,用 radiusd -XX 来检查服务器是否能够正常工作。如果没问题的话就下一步,如果有问题……自己google吧。

3:修改openwrt的无线设置,选择EAP作为加密方式,就像下面这样

捕获

保存并应用,搞定收工。

这2天想着,家里设备都已经一大堆了,想想看能不能有个统一的管理,反正那台小主机闲着也是闲着,就用来挂下载似乎有点浪费,而且也没那么多东西可以下。

暂时来看,可以玩的有2个,一个是syslog,还有一个是snmp。

先从syslog下手。虽然Google得来的结果把我指向了一个叫做PRTG的这么一个东西,这个其实是个network monitor,跟syslog什么的没什么关系,这个晚点再写文章。

先是找到一个叫做splunk的东西,看起来超专业的,于是很明显我不会用,结果研究了一阵子之后,卸载了。

后来找到一个叫做syslog watcher的,界面简洁(lou)明了,很符合目前所需的要求,而且体积也小很多,于是果断一试。

惯例先上参考:

http://www.howtogeek.com/107069/how-to-remotely-collect-server-events-using-syslog/

https://aacable.wordpress.com/2011/11/29/howto-save-mikrotik-logs-to-remote-syslog-server/(GFWed注意)

安装过程很简单,直接同意并确认“我没看过这么一大串英文”之后安装好运行,然后点击左上角的那个collect,然后服务器端就配置完成,简单的简直丧心病狂。

syslog watcher

然后就是客户端的配置:

————————————DD-WRT————————————-

找到“服务”,然后在服务的页面找到syslogd的设定位置,启用并填上远端服务器的地址,然后保存,应用设置。搞定。

syslog1

————————————-OpenWRT————————————

openwrt也一样简单,系统-系统-日志,填上远程服务器的ip就ok。

syslog-openwrt保存并应用之后,在syslog服务器上暂时不会看到有输出,因为luci不会自动重启log服务,手动/etc/init.d/log restart或者通过luci来重启那个叫做“log”的服务就可以了。

——————————–RouterOS————————————————–

家里用着一只RouterBoard作为骨干路由,当然是少不了RouterOS,RouterOS的设定比另外2个繁琐一点,不过设定上也细致一点,算是各有个好啦。

browse.php找到system-logging,然后从窗口里找到actions页,双击remote来修改设定。

填上log服务器ip,勾上“BSD syslog”,syslog facility选择“local0”,ok确认设定后,切换回“rules”页面,然后将你想要的那些topics要送去remote。

于是所有的log都能在syslog watcher那里看到了。

突然发现很久都没折腾过路由了,手上一直上个世代的WZR-HP-AG300H一直服役的很好,有线千兆和150Mbps+300Mbps无线的组合基本上非常够用,文件服务已经转交到一只迷你主机上(给这货上了Windows再加个显示器结果变成了主力机器真是感觉伤不起)。而且这只AG300H还创造过uptime200+日的记录然后被一次停电终结了。

最近开始瞄中这个WZR-1750DHP,128MB的Flash+512MB的RAM+800Mhz的ARM双核感觉堪比那只闲置的RaspberryPi B,但是看到淘宝最低的报价都超过500还是让我一阵犹豫。结果没过多久就看到有家报价报380(当然是二手货),比我3年前入手AG300H(当然还是二手货)的时候还要便宜20,果断入手了。

到手之后发现店主很好心地帮忙把机器固件升到了最新的2.27,这是个非常坑爹的固件,我尝试使用网页刷DD-WRT的时候,告诉我,不能刷到版本比2.27低的固件。坑爹呢这是,我买回来就是要用第三方固件的啊!拿原厂固件这货有个毛用啊,这配置上傻瓜路由固件简直是天大的浪费啊。

在做了大量的Google之后,发现很多人有相同的问题,也有的人表示我这样照刷没问题啊怎么你刷就有问题呢。还有的说你找Buffalo的技术人员就可以啦,然后又有人说这个不行啦,太多人找他们了,然后他们也表示不能再给我们这样搞。找来找去都并没有找到什么靠谱的解决方案。

error_after_227_612

在一阵子不死心之后,我还是没找到刷固件的方法。然后我就想起了之前对AG300H的hack,TTL接口登陆真是个好东西。于是我开始琢磨怎么打开这货。

大概是这货还是比较新的东西,Google上的资料比较少而且需要仔细甄别,在研究了一个小时之后,我发现了这篇还有这篇,才找到了打开盖子的方法(真是纠结)。

给张正面特写(摘自网络,型号不是1750DHP)Opening-3大概是我手艺不精,反正我是和恩山上的那位大大一样,暴力KO了一堆卡扣才打开了盖子,还有中间CPU粘着的散热片是固定在盖子上了,开的时候慢慢来。

打开了之后,照着这篇TTL登陆到CFE然后强行刷掉了原厂固件之后,DD-WRT就搞起来了。

附上Google来的TTL定义wzr1750dhp_3_serial_929

半路上发生了一个诡异的情况,当我跳好TTL后,上电无法开机,只有在启动之后再插上杜邦线,才能正常使用,这令我百思不得其解,不过还是能用于是就先不管了。

不知是天性使然还是我和DD-WRT八字不合,用起来我表示DD-WRT这管理方式非常不习惯,想刷回Openwrt,但是刷回Openwrt之后看起来RC3还是跟wiki里面的RC2一样没有解决无线的问题。这……尼玛死,我要不要刷回DD呢,我现在非常纠结。

最近又给同学刷了一只路由,在设置wifi的时候突然来了兴致,不如用中文来做SSID吧~然后就干了,在luci上使用中文写了SSID,然后应用之后,发现luci的页面上能够正确的显示中文,但还到了windows上就变成了一串英文,然后用手机一搜,哟~中文哎。

显然是字符编码的问题了。

总所周知,windows使用的是GB的字符编码,而Linux一般使用的是UTF-8,除非你手动改成了GB。用Linux做底层的Android果然跟随了Linux的步伐,编码使用了UTF-8,而Openwrt的Luci也用的是UTF-8的编码,如此一来,便解释得通了。

用notepad++打开/etc/config/wireless,编码切换到GB,将SSID改成了中文,保存,然后重启WiFi,然后一搜:

中文SSID

果了个然,于是中文的SSID就出来了,别人看到都觉得很惊奇。这时候就可以给你的WiFi一个有趣的SSID,比如之前看到的“网络无法连接”,估计可以让相当一部分的人放弃连接你家WiFi的念头。

另外一件很有趣的事情就是,虽然使用了GB编码的SSID,但是Ubuntu却表示我能够正确的认出中文的SSID,并显示出来。UTF-8编码的中文SSID,Ubuntu同样能够正确地显示中文,这实在太不可思议了。

===========================接下来就是把密码给玩坏===============================

最初的时候,就尝试直接使用GB的编码来写中文密码。ok,windows说他能连上。但是Linux表示我们 UTF-8的编码没法通过密码验证。

问题就来了,怎么办呢?

把密码换成UTF-8如何?

然后Ubuntu就表示,嗯,我们没问题!

中文WiFi密码

啧……这可难办了,难道就没有两者都能兼容的办法么?

然后在来回切换编码的时候,我发现了一个问题,UTF-8转成GB之后是乱码,但是看起来却都是正确的中文字符……要不旧直接用这个乱码来试试连接吧……Windows说:没问题!然后就连上了。

GB编码下的SSID和密码
GB编码下的SSID和密码
UTF-8编码下的SSID和密码
UTF-8编码下的SSID和密码
乱码密码
乱码密码

看来连接是没有问题呢~

也就是说使用GB编码的SSID和UTF-8编码的中文密码是最优的组合~无论linux和windows都可以连接到。

最后就是客人的问题……

移动设备的话估计没什么问题,但是捧着运行着Windows的电脑过来的孩子……有的麻烦了呢……

==============================追加移动设备的研究================================

很可惜的是,android和IOS都可以认出UTF-8编码的SSID,但是无法认出GB编码的SSID,只能看到一串乱码,这个实在是太糟糕了。微软你赶紧投奔UTF-8的怀抱吧。

与此同时,测试了UTF-8编码的密码,Android和IOS都能够使用中文密码来连接,但是IOS在输入密码的时候,只能输入英文字符,所以,需要使用复制粘贴的方法,来完成密码的填写。Android的话,可以强制切换键盘来输入中文。

另外的就是,即使使用中文字符,也必遵循WPA2密码最少8个字符的原则,所以最短密码是八个中文字,而不是4个中文字。

等我以后能装OSX的之后再补上MAC的研究报告。

参考:http://www.openwrt.org.cn/bbs/forum.php?mod=viewthread&tid=1456

最近在另外一台机器上开了一个pptp的VPN,于是重操旧业,折腾起pptp来。
但是有个很蛋疼得问题是,电脑不知为何连不上。同时,iPod使用同一个路由,但是iPod却能连上。

于是研究了半天,后来才知道这个。

后来是用tcpdump在路由上抓包,才发现了这个问题。
顺便贴上以下记录

从wan抓到的包

11:04:10.898392 IP 10.1.12.41.1723 > 10.1.145.203.50116: Flags [S.], seq 450513921, ack 3307070933, win 5840, options [mss 1460,nop,nop,sackOK,nop,wscale 1], length 0
11:04:10.900618 IP 10.1.12.41.1723 > 10.1.145.203.50116: Flags [.], ack 157, win 3456, length 0
11:04:10.907780 IP 10.1.12.41.1723 > 10.1.145.203.50116: Flags [P.], seq 1:157, ack 157, win 3456, length 156: pptp CTRL_MSGTYPE=SCCRP PROTO_VER(1.0) RESULT_CODE(1) ERR_CODE(0) FRAME_CAP() BEARER_CAP() MAX_CHAN(1) FIRM_REV(1) HOSTNAME(local) VENDOR(linux)
11:04:10.911337 IP 10.1.12.41.1723 > 10.1.145.203.50116: Flags [P.], seq 157:189, ack 325, win 3992, length 32: pptp CTRL_MSGTYPE=OCRP CALL_ID(6016) PEER_CALL_ID(52009) RESULT_CODE(1) ERR_CODE(0) CAUSE_CODE(0) CONN_SPEED(100000000) RECV_WIN(64) PROC_DELAY(0) PHY_CHAN_ID(0)
11:04:10.936723 IP 10.1.12.41 > 10.1.145.203: GREv1, call 52009, seq 0, length 37: LCP, Conf-Request (0x01), id 1, length 23
11:04:10.955328 IP 10.1.12.41.1723 > 10.1.145.203.50116: Flags [.], ack 349, win 3992, length 0
11:04:13.956479 IP 10.1.12.41 > 10.1.145.203: GREv1, call 52009, seq 1, length 37: LCP, Conf-Request (0x01), id 1, length 23
11:04:16.963507 IP 10.1.12.41 > 10.1.145.203: GREv1, call 52009, seq 2, length 37: LCP, Conf-Request (0x01), id 1, length 23
11:04:19.972620 IP 10.1.12.41 > 10.1.145.203: GREv1, call 52009, seq 3, length 37: LCP, Conf-Request (0x01), id 1, length 23
11:04:22.982073 IP 10.1.12.41 > 10.1.145.203: GREv1, call 52009, seq 4, length 37: LCP, Conf-Request (0x01), id 1, length 23
11:04:25.990972 IP 10.1.12.41 > 10.1.145.203: GREv1, call 52009, seq 5, length 37: LCP, Conf-Request (0x01), id 1, length 23
11:04:27.115016 IP 10.1.12.41.1723 > 10.1.145.203.50116: Flags [.], ack 373, win 3992, length 0
11:04:28.999748 IP 10.1.12.41 > 10.1.145.203: GREv1, call 52009, seq 6, length 37: LCP, Conf-Request (0x01), id 1, length 23
11:04:32.009025 IP 10.1.12.41 > 10.1.145.203: GREv1, call 52009, seq 7, length 37: LCP, Conf-Request (0x01), id 1, length 23
11:04:34.947339 IP 10.1.12.41.1723 > 10.1.145.203.50116: Flags [.], ack 389, win 3992, length 0
11:04:34.947441 IP 10.1.12.41.1723 > 10.1.145.203.50116: Flags [F.], seq 189, ack 389, win 3992, length 0
11:04:35.950801 IP 10.1.12.41.1723 > 10.1.145.203.50116: Flags [.], ack 390, win 3992, length 0

从lan抓到的包

11:08:17.425044 IP 10.1.14.156.1723 > 192.168.11.9.50131: Flags [S.], seq 1960838183, ack 194080576, win 5840, options [mss 1460,nop,nop,sackOK,nop,wscale 1], length 0
11:08:17.426306 IP 10.1.14.156.1723 > 192.168.11.9.50131: Flags [.], ack 157, win 2920, length 0
11:08:17.437070 IP 10.1.14.156.1723 > 192.168.11.9.50131: Flags [P.], seq 1:157, ack 157, win 2920, length 156: pptp CTRL_MSGTYPE=SCCRP PROTO_VER(1.0) RESULT_CODE(1) ERR_CODE(0) FRAME_CAP() BEARER_CAP() MAX_CHAN(1) FIRM_REV(1) HOSTNAME(local) VENDOR(linux)
11:08:17.444973 IP 10.1.14.156.1723 > 192.168.11.9.50131: Flags [P.], seq 157:189, ack 325, win 3456, length 32: pptp CTRL_MSGTYPE=OCRP CALL_ID(1408)PEER_CALL_ID(22594) RESULT_CODE(1) ERR_CODE(0) CAUSE_CODE(0) CONN_SPEED(100000000) RECV_WIN(64) PROC_DELAY(0) PHY_CHAN_ID(0)
11:08:17.488828 IP 10.1.14.156.1723 > 192.168.11.9.50131: Flags [.], ack 349, win 3456, length 0
11:08:17.494178 IP 10.1.14.156.1723 > 192.168.11.9.50131: Flags [.], ack 373, win 3456, length 0
11:08:41.767662 IP 10.1.14.156.1723 > 192.168.11.9.50131: Flags [.], ack 397, win 3456, length 0
11:08:41.880301 IP 10.1.14.156.1723 > 192.168.11.9.50131: Flags [.], ack 413, win 3456, length 0
11:08:41.882110 IP 10.1.14.156.1723 > 192.168.11.9.50131: Flags [F.], seq 189, ack 413, win 3456, length 0
11:08:42.871931 IP 10.1.14.156.1723 > 192.168.11.9.50131: Flags [.], ack 414, win 3456, length 0

发现有gre的包到了路由那里就没有转发过来了。于是上网查了一下:

解决办法是安装 kmod-gre kmod-ipt-conntrack-extra kmod-ipt-nat-extra iptables-mod-conntrack-extra
然后在防火墙中启用gre的转发

在iptables中打开gre的转发
在iptables中打开gre的转发

之后就能连上了。

按照惯例,先上参考:
http://www.right.com.cn/forum/thread-46811-1-1.html

嗯,因为在学校的话有内部网络,而内部网络里面有自己的dns服务器,于是就出现了许多奇奇怪怪的域名(私有)
比如说*.ustb这种域名(不知这顶级域名被注册了没有,啧啧啧啧)
于是就出现问题了,这种失手,dnsmasq的转发有时候会有问题(已经设置了转发到本地dns服务器,但是总是对本地域名解析失败,不知为何)
今天就又出现了类似的问题,一怒之下,上网一搜,ok,出来了,恩山的神人真多。

方法就是在
网络-接口-LAN 页面的下半部
里面有dns的设定,切换到高级选项页,下面有个空“dhcp-选项”
在里面填入

6,dns1,dns2

可以将指定的dns服务器推送给客户端。
参数里面的“6”由

dnsmasq --help dhcp

得到。

原文链接:http://scarygliders.net/2010/02/23/hacking-around-the-japanese-buffalo-wzr-hp-g300n/

修复自己的AG300H的时候又查询到了这篇文章,觉得真的有必要翻译过来(翻译的不好希望不要见怪)。也方便一下国人,感觉国内关于buffalo的文章好少啊。

[题外话]乱入一张Philipp Klaus童鞋的AG300H的TTL针脚定义图(需要登上长城技能),这也让我好找一番,在Google翻了良久才找到这么一张,果然还是国外的友人折腾的东西多啊,不过又是因为在picasa网络相册,又要出塞一番才能得到想要的东西。顺便鄙视一下百度,全球最大的中文搜索引擎,对中文以外的东西就完全是个渣渣啊。AG300H TTL针脚定义

~~~~~~~~~~~~~~~~~~~~~~~~下面才是正文(大量节选)~~~~~~~~~~~~~~~~~~~~~~~~~~

blah blah blah blah (原文中真的好多废话,看来作者是个爱表达自己感情的人) Continue reading

我觉得这次出问题很大原因是因为官方的源码有太多Bug(喂喂喂,一开头就这样喷别人好么?),导致系统无法启动。

原因之一就是我提交的一个ticket,很快就得到了回应,不过在我提交了详细的报告之后,这家伙丢下一句“看来shadow需要在libintl上添加一个基础需求来提供丢失的m4 marcos”之后就1个多月没有反应了,仔细看看,状态还是“需要响应”,真的一点火气都没有……

托他的福,本来打算在家里弄完的,结果拖到了来到学校之后。

不过在软路由上备份了全部软件包之后,发现本地的下载实在是相当之爽阿,比起以前龟速下载,一下就下载完成的感觉真舒坦。

现在只能用官方做好的固件然后自己安装全部的软件,当然,也没法chroot到debian了,嘛~现在折腾这个的热情也下来了,还是回归原始的好,简单点的nginx+pptpd+openvpn+transmission就足够用了,再考虑装上amule,下载机就完成了,可惜不能用mldonkey,那个方便好多呢~

准备入手一个32G的U盘,就将硬盘释放出来。

不过感觉官方固件真的稳定好多阿……这群家伙绝对是有私藏。

话说修复途中又找到那篇神级文章,搬过来自己的Blog上才行

这个缺陷的话其实是busybox弄出来的,之前的版本还是支持的,后来就突然看不到了,全部变成了“?”,看得我略纠结。

之后自己做过两个固件,在busybox的选项里面有补丁的支持,可以支持更多的字符,结果后来自己再做的时候,还是看不见中文,变成了一个“˿”

我就纠结了,我擦嘞,怎么变成这个样子……

最后觉得可能是支持的问题,支持的字符数本来就不足,于是稍微一狠心,将767改了,改成了126735(真的变大了很多啊),结果就成功了。

Busybox编译截图
Busybox编译截图

 

或许支持的字符少一点可以减少busybox的体积,但是支持性实在不好啊