正式改用blog.netson-cn.com域名

正式改用blog.netson-cn.com域名,原來用的.net的域名會自動轉發過來。

.com域名的ssl也搞好了。

下一步計劃,是架個在綫書簽:D

又把奶瓶腿架起來了

之前就架了一個,後來因爲Twitter的API升級了,奶瓶腿就用不了,所以我就把它給関了。這兩天看見新版的奶瓶腿源代碼出來了,於是更新了一下。

由於源代碼是根據Apache來寫.htaccess的,我的HTTP服務是Nginx,它不認.htaccess文件,所以我得自己改。

根據Nginx的配置,一般是在/etc/nginx/sites-available/default文件裏面改,相關内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
server {
#listen root相關内容略過
location / {
root 硬盤路徑;
index index.php;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
}
}

location /oauthproxy {
if (!-e $request_filename) {
rewrite /. /oauthproxy/index.php last;
}
}
#php相關配置略。。
}

之前我只根據NetPutweets目錄下的.htaccess寫了/下面的rewrite,後來發現不能用proxy方式登錄,問了 @NetPuter 之後,才知道oauthproxy目錄下還有一個.htaccess,於是再加上location /oauthproxy ,就可以了。

PS:由於我用的是PHP5,所以原來的代碼會報一個warning,說沒有設時區之類的。我又不想改php.ini,所以在index.php的前面加了這麽一行:

(我的Linode服務器現在在東京了,所以是GMT-9)

準備把域名改爲netson-cn.com

訪問原來的域名會自動轉爲netson-cn.com。過一段時間另作他用,做一些好玩的東西:D(好吧,其實現在也沒有想到有什麽好玩的)

主要是剛好收到域名註冊商發過來的郵件說我的netson-cn.net快到期了,續費要$9.99。前兩台還收到另外一封郵件說夏季末打折,.net的域名折后價$6.99,.com域名折后價$7.99,於是就把.com也買下來吧~

反正也就是幾天的飯錢,能用一年呢。

把VPS搬到東京了。

前兩天Linode在東京開了新機房,不少中國人都紛紛把他們的VPS搬到東京去了,據説快不少……

我測試了一下,是不錯。於是就搬了……

比較失策的是搬之前沒有刪除一些日誌和備份文件,結果儘管以2M/s的速度搬,也搬了兩個多小時……

之前有攻略說搬之前可以先改好域名指向的IP讓它慢慢生效。我的測試結果表明,我的域名A紀錄修改生效的速度遠遠比VPS搬家快,幾乎是立即生效。真是悲哀啊,這完全説明從我的ISP到root中間沒有任何一個DNS願意緩存我的域名……

如果有車,還是要買個行車記錄儀……

貌似現在taobao上賣得也不貴,200~300就行了……

 

Iodine後續……

昨晚還是決定直接路由了,不浪費可憐的帶寬做什麽VPN、SSH了。

於是在iodine路由表裏面,將原來的網関加到eth0出口,如果DNS和網関不是同一個IP,也加上DNS的路由(為了做這個我試了半天,才搞明白Linux Shell的if語句是怎麽囘事)。最後將默認路由設到iodine的服務器網関上。

服務器那邊就再加一條轉發命令就可以了。

今天在MM宿舍實測了一下中國聯通的wifi,丟包率在50%左右,速度也不快。基本上只能應急。

PS:我昨天寫了半天的iodine服務器端的自動啓動腳本,然後決定符號連接到/etc/inid.d以及各啓動級別目錄下的時候,才驚訝地發現原來已經有了……但是沒有任何一個文檔說過這事……也沒有說如何配置……然後還是我自己調試了iodine服務器端的符號腳本才知道配置文件在哪裏應該怎麽配置……不過估計也是我不熟悉linux,應該大部分的配置都在“/etc/default/項目名”下面吧……

PSS:根據昨天貼出來的那個安卓版iodine的介紹,iodine這個名字還是蠻有意思的,首先iod可以是IP over DNS的縮寫,其次,iodine(碘)質子數是53,剛好是DNS的默認端口……

總算把Iodine的Android版搞定了

14號把Iodine的服務器架起來之後,就一直想讓手機也享受到這個東西(其實這纔是主要目的阿,否則就真的只能玩玩而已)。

結果搞了兩個晚上(工作日的白天我可是有好好在幹活的)加今天一整個白天,終于被我搞出來了,其中彎路無數……

Iodine的主葉有個連接:SupportedPlatforms,裏面赫然寫著:Android,並且連接到這裡。我很高興,把它下載下來,按照上面的腳本一條條手動執行(腳本的很多地方和我的手機環境不符,懶得一個個改了,還不如挑有用的執行)。首先踫到的一個坎是這麽一行: insmod tun.ko。這個tun.ko已經附帶在剛剛下好的包裏面了。好吧,查了查insmod是啥意思,然後一執行,說我下下來的tun.ko不能識別,好,死馬當作活馬騎,先跳過去看看。

然後終于到跑iodine客戶端了,根據腳本和在windows下的參數對照一跑,居然說我協議版本號不對,要我放棄(iodine you use protocol v 0x00000500, server uses v 0x00000502. giving up)……在Iodine的頁面上亂撞了一陣,幾乎每個連接都點開過之後,不得不決定:好吧,自己下源代碼來編譯算了……沒有辦法,誰叫我是程序員呢- -b。Android畢竟不是標準的Linux,再説了,就算是大的Linux發行版之間也沒有做到二進制兼容阿。但是要我在Windows環境下編譯一個Linux程序出來,光編譯環境就夠我搭一陣的。不管怎樣,還是把源代碼下下來了,發現怎麽也看不懂,也不知道該怎麽編譯。編譯腳本是我最頭痛的Make,而且看樣子既能編出windows版本來也能編出各種Linux版本……後來我還發現,Iodine的svn版本庫和我下下來的版本還不一樣,裏面多了個Android.mk文件。打開一看,還是我看不懂的make,不過有一個鏈接,進去后發現說得很詳細,如何搭建環境如何編譯……讓我最高興的是,文章最後附帶了一個編譯好的iodine安卓客戶端的連接!

這個新的iodine客戶端在我手機上跑得很順利,看起來也很正常。這下我手機上多了一個叫dns0的網卡,並且也拿到了正常的内網IP10.1.3.2,不過就是ping不通服務器網関(10.1.3.1)……我想trace一下,卻告訴我沒有tracert這個命令……於是我就想各種原因,是不是之前的tun.ko沒有跑起來的原因?於是上網搜,後來才發現原來我的rom本來就有tun.ko。然後又想,是不是DNS的原因?我nslookup了一下,發現nslookup失敗。DNS服務器沒有設。但是我ping各種域名又沒有問題。開始懷疑我的路由器是不是做了什麽手腳,於是手動在wifi設置界面設置DNS,還是不行。於是自己改/etc/resolv.conf,nslookup終于出來了,不過還是ping不通服務器内網網関。認真看了看後來那個客戶端腳本,他設的路由表的思路是這樣的:先把DNS主機指向原來的網関,然後把默認網関改爲内網網関。問題是我現在内網網関都ping不通啊,搜了一大圈后無意中發現原來linux下的trace命令是traceroute……趕緊trace,確認一個事實:去10.1.3.1的包,還是走了我的路由器網関192.168.1.1……於是各種搜,看看Andriod是怎麽設路由的……因爲我之前就發現Andriod的DNS是設在net.dns1和net.dns2屬性裏面的,並不用像普通的linux裏面設在/etc/resolv.conf裏面,那麽路由表也會是這樣麽?還是設在別的某個Andriod特有的文件裏面呢?其間熟悉了不少linux命令,但是還是一無所獲。也知道了一些事情,例如linux支持256張路由表啦,路由表的各種Flag是什麽意思啦等等。後來無意中看到GTalk裏面snnn同學在綫,聊了一下,他基本上確認是路由的問題,iodine本身應該沒有問題的,他有一句“会不会设置了多个默认路由?”我覺得應該是這樣,不過我當時一下子沒有完全反應過來。後來上網搜Linux雙網卡的各種配置,包括内外網的,電信網通綫路的。有的時候提到ip rule,之前我也搜到過這個,不過不是很明白,然後忽然想到,認真查了一下,我再看我手機的ip rule,如下:

1
2
3
4
5
#ip rule
0:           from all lookup local
3001:    from all lookup wifi
32766:  from all lookup main
32767:  from all lookup default

而用route命令改的路由表,事實上改的是main。於是我用ip route命令,把10.1.3.0/27的路由在wifi表裏面一改,就ok了……其實只要能連上我的服務器,能ssh,別的我就可以不管了。

爲了通用一些(好吧,是我的潔癖,事實上,按道理來説,除了wifi應該也不會有別的了),我決定不直接改wifi表,而是加了一張路由表,在/system/etc/iproute2/rt_tables文件最後加上一行:251 iodine

於是最後,我寫了兩個腳本:

iod.sh:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
echo "Starting iodine client ..."
#Configuration
NS="abc.def.ghi"             #iodine的域名……
NSIP="173.255.214.56"  #服務器IP
PWD="password"            #在服務器跑iodined的時候設的密碼
TUN="10.1.3.1"                 #在服務器跑iodined的時候設的内網地址,之前用的172的,後來改爲10段的了
TUNNET="10.1.3.0/27" #iodined分配的内網網段。iodine默認就是27位子網
DNS=`getprop net.dns1`#默認的DNS
DEV="eth0"                       #默認網卡
GW=`ip route show | grep default.*$DEV | awk '{ print $3 }'`   #默認網関

echo "DNS Server: $DNS"
echo "Gateway $DEV: $GW"#Start iodine client

if iodine -r -P $PWD $NSIP $NS; then   #連接iodine

ip route add $DNS via $GW table iodine    #往iodine路由表加上DNS的路由
ip route add $TUNNET dev dns0 table iodine #往iodine路由表裏面加上内網網段的路由,都從dns0網卡走
ip rule add table iodine pref 2000 #把iodine路由表加進ip rule裏面……,優先級是2000,因爲wifi是3001,而VPN是2500,這個要在VPN的前面。
echo "Ready"
fi

停止Iodine就簡單多了:

iodstop.sh

1
2
3
4
5
6
echo "Stopping iodine client ..."
DNS=`getprop net.dns1`
killall iodine
ip route del $DNS table iodine
ip rule del table iodine
echo "Ready"

不過後來經過測試,發現用10.1.3.1連VPN,連上幾秒就斷,不知道爲什麽。可能是和IP有關。因爲設置VPN的時候,好幾個地方都要填VPS的公網IP的。可能這樣子設置就只能通過公網連了吧。

某些DNS菊花一緊……

那天看到云風的一篇博客《DNS 隧道》,一笑而過,收藏下來,打算有空試下。後來一直很忙,這事也就擱下不了了之了。

後來我發現中國移動送每個月20M的wifi,一直到年底,於是我每到一個地方就搜有沒有中國移動的wifi。中秋那幾天在MM宿舍裏面,習慣性打開wifi看看,沒有發現中國移動的,發現中國聯通的,而且沒有加密。連上去后發現不管上哪個網址都是自動跳轉到聯通的用戶密碼頁面,於是我就想起了這DNS隧道,開個終端ping了幾個網址,發現DNS是能正確解析的,這下還真有了實用價值- -b。好吧,如果中國聯通的DNS有感覺的話,現在肯定菊花一緊,背後涼颼颼的……

云風那篇博客只講了原理,沒有講實現方法,提到還有iodine這麽一個東西。我進去看了看,裏面有個連接“HowToSetup”,這篇文章底下還有個連接“Guide for debian server and win32 client”,這篇文章就詳細多了。後來我還發現這篇文章底下的評論還有中文,帶了一個連接,進去看看,果然是一個中國人寫的設置方法。於是我就對照著看……

首先註冊域名,搞一個A紀錄,然後再搞一個NS紀錄。這很簡單。我註冊了一個免費的.co.cc的域名,因爲我不想隨便亂用我的netson-cn.net。

然後往服務器的安裝源列表/etc/apt/sources.list文件裏面加一個源:deb http://ftp.debian.org/debian sid main

然後就是安裝iodine了:

1
2
#apt-get update
#apt-get -t natty install iodine

裝完之後把新加的源去掉,畢竟sid的源還是少用為妙。

然後就可以跑了:

1
iodined -c -f 10.0.0.1 -P yourpasswordhere iodine.yourdomain.com

其中,10.0.0.1可以隨便換一個内網IP,我架的VPN好像用的是這個IP,所以我實際上換了個172開頭的,中間兩個數都不是0的IP。yourpasswordhere隨便搞一個字符串儅密碼,iodine.yourdomain.com填剛剛設置的域名NS紀錄。

跑起來有可能會說找不到tun設備,那就建立一個好了:

1
2
mkdir /dev/net
mknod /dev/net/tun c 10 200

運行的結果應該是類似這樣的:

1
2
3
4
5
Opened dns0
Setting IP of dns0 to 内網IP
Setting MTU of dns0 to 1130
Opened UDP socket
Listening to dns for domain 域名NS紀錄

這樣子就OK了。可以搞客戶端了。

Windows客戶端要兩個軟件,一個是OpenVpn,只需要裝其中的“TAP Virtual Ethernet Adapter”,別的不需要。另外就是iodine的客戶端程序了,在這裡可以下載。

iodine的客戶端程序解壓就可以用,不用安裝。進入命令行提示符(如果是Win7要以管理員身份運行),然後到解壓后的文件夾的bin目錄底下運行:

1
iodine -f -P 剛才設置的密碼 VPS公網IP 域名NS紀錄

然後開一個新的命令行窗口應該就能ping通服務器那個内網地址了。然後SSH也可以,VPN也可以,socket5也可以……怎麽搞都行啦。

下一步就是看看客戶端是Linux的話要怎麽搞,爭取在我的手機上也能跑起來:D。

惡狠狠的話

今天看到個新聞,說《環球時報》為敏感的間諜案講課視頻在網上公開作辯解。(專家:金一南談敏感間諜案視頻根本不是洩密)不過評論也承認,“中國媒體過去沒報道,或者報道的“口徑”,跟金一南所說的不太一致。”

我上網搜了一下,這個應該是金一南少將推介他的那本《苦難輝煌》的講座的視頻。先是放在了國内的視頻網站上,後來被人轉到了Youtube上。MM聼過他的講座,後來好像也買了這本書給她爸爸看。

在Youtube上的視頻一共有17段,其中被懷疑“洩密”的是第14段。我看了看,不過我對間諜案後面的内容發生了興趣。

他說某次召開西藏、新疆地區維穩會議,有個當地的州書記說“……我在這個州裏,我已經完全建立了中共某某某州州委書記的威望,我不是為自己,我是建立‘中共某某某州州委書記’的威望,我走到哪,活佛老老實實地出來,給我獻哈達。那我們禮尚往來,他給我獻我給他獻,非常客氣,誰也不能搗亂,搗亂取消你的資格,已完全建立了中共某某某州州委書記在這個州的威望,在宗教界的威望……”

那位州書記是在抱怨他的一些信佛的上級、上上級太過於尊重活佛,讓他的工作很難做,而且他認爲一個共產黨員不應該信佛。金一南說這個,本來是想說黨員的信仰問題,但是我卻被這位州委書記惡狠狠的話嚇了一跳。什麽叫“威望”?而且還是“在宗教界的威望”!這明明是恐懼!一個小小的州委書記居然能取消一個活佛的資格?這州委書記到底干了些什麽?這個書記到底使了什麽坏才能讓喇嘛們活佛們這麽害怕他,去到哪裏活佛都“老老實實”出來獻哈達?一個不信仰宗教的人怎麽能在“宗教界”正常地“建立威望”呢?這麽搞,我一點也不奇怪爲什麽達賴喇嘛爲什麽要逃亡,爲什麽藏獨勢力這麽有市場。

PS: 17段視頻的連接(要繙墻)

  1. http://www.youtube.com/watch?v=_wmWz6gzmhk
  2. http://www.youtube.com/watch?v=EcWGA6pFJIg
  3. http://www.youtube.com/watch?v=h2txfVnPX2g
  4. http://www.youtube.com/watch?v=igLWn-Dp5cw
  5. http://www.youtube.com/watch?v=B5hK_9F8fNA
  6. http://www.youtube.com/watch?v=_-g4gocfHfA
  7. http://www.youtube.com/watch?v=dl1bW7sRWww
  8. http://www.youtube.com/watch?v=NPsopvYD9ss
  9. http://www.youtube.com/watch?v=zAdGwrOt6eU
  10. http://www.youtube.com/watch?v=H8ZYK41WdNI
  11. http://www.youtube.com/watch?v=W1W3zzzSfO8
  12. http://www.youtube.com/watch?v=2EDn4uP8X1Y
  13. http://www.youtube.com/watch?v=undGQMc4P8k
  14. http://www.youtube.com/watch?v=loQFL8z9-zk
  15. http://www.youtube.com/watch?v=TRth9YU3iZY
  16. http://www.youtube.com/watch?v=pxkfCwV7EDw
  17. http://www.youtube.com/watch?v=MGXKnSE8TYI

刷機記(HTC G7)

上兩個星期第一次刷機,用了兩個星期的CM之後,昨天把手機刷回HTC Sense了。

記錄一下。參考教程:http://www.hiapk.com/thread-928519-1-1.html

期間手機最好要超過50%的電量。

要準備的文件:

  1. reflash_package.exe。這個是用來Root的。
  2. alpharev.iso。這個是用來S-OFF的。它號稱是Ship S-OFF,不過昨天我用官方RUU恢復HBoot之後,發現重新S-ON了。所以個人覺得這個還是Dev S-OFF。
  3. UltraISOPortable軟件。我用這個軟件把alpharev.iso寫到U槃裏面,因爲S-OFF要用它啓動。當然用別的軟件刻成光盤也可以。
  4. 驅動。android-usb-driver。到處都有。

首先是Root。

把手機綫連上電腦(如果是台式機最好連後面),選擇僅充電(鈎上下次不要問好了),打開USB調試。正常之後斷開連接。

運行reflash_package.exe。這個時候可以選它自帶的recovery,也可以順便把自己的recovery刷上去。

底下會提示“Waiting for device。。。。”,然後就可以接上手機了。一接上去reflash_package就會往手機裏面寫東西了……其間手機會重啓幾次。不過對手機注意眼看手勿動。一直到reflash_package底部出現“Done.”爲止。這個時候手機應該是進入了recovery了,選擇Reboot之類的選項吧。如果發現多了一個app圖標是小孩拿槍的就是Root好了。

然後就是S-OFF了。

手機先不連電腦。用做好的U槃啓動,按提示操作。然後會提示Waiting for your device。。。嗯。連上手機吧。如果順利,它就會問你是否真的要刷……輸入y后按回車就好。如果不順利,它會說你版本不對,按任意鍵或者等30秒自動関機云云。我也不知道應該怎麽辦,反正我再次開機啓動就好了。。。- -b

然後就等吧……其間一定不要関機不要掉電不要手機和電腦脫離,否則就磚了……之後就不用操作了。。。。幾分鈡就好。

嗯。S-OFF之後開機第一屏其實不好看。這裡有教程換掉。

需要準備的工具有:

  1. nbimg-1.1win32.zip。這個是用來把圖片生成img映像用的。
  2. Android SDK。最新的是r12版。

恩。首先準備好要刷的圖片。寬480像素,高800像素。將圖片存成24位BMP格式。放到nbimg所在目錄下面。

然後在命令行下面,進入nbimg所在那個目錄,運行: nbimg -F bmp文件名 -w 480 -h 800

如果成功,會生成bmp文件名.nb文件。將擴展名改爲.img,複製到SDK的tools目錄下。

命令行也進入tools目錄。手機進hboot下的Fastboot,連電腦。然後運行:fastboot flash splash1 img文件名

如果沒有意外,會顯示兩行OK。然後就可以了。

至於刷ROM、刷HBoot、刷recovery,都是進recovery選擇一個zip文件就ok了,相對要簡單很多。不過刷之前一定要看清楚要求,分區、recovery的版本、hboot的版本等等,就不多說了。

而官方的RUU刷幾,我在CM下面無論怎麽做都沒有成功,顯示170連接錯誤。後來進了HBoot還是Fastboot就可以了。據説一定要在XP下,我在Win7下倒是沒有試過。我昨天晚上在Win7下,不行;試著在XP下,也不行。於是進HBoot,終于可以了……

說說我刷過的幾個ROM吧……

上上星期我首先刷的是這個:《【安智网-冷落】V4.0放出 Desire G7 姜饼2.3.3 Sense3.0界面支持3D特效 开启A2SD ROOT》這個要求分區,要求recovery 3.0,這個的確漂亮,不過,實在太卡……

然後我就刷了這個《【熊出没~】精益求精 8月盛夏G7、G10最新Rom》這個裝好后我直接把搜狗輸入法給卸了,然後我很悲劇地發現不能輸入了……只好下了個Google輸入法。這個系統界面不是很漂亮,不過是3D的,而且,最重要的是:省電。我用了兩個星期。直到昨天。

昨天我先用官方的RUU_Bravo_Froyo_HKCSL_CHT_2.11.832.2_R_Radio_32.47.00.32U_5.10.05.23_release_145080_signed.exe刷回去,把Footprints的程序和數据都提取出來,然後重新Root、S-OFF。之後刷了這個《【破孩】【安卓首发】国行天气+官方sense2.3.3+sense2.1=稳定 顺滑 省电》這個是官方的2.3内核,從別的手機型號提取了Sense 2.1做的。

結果今天早上發現GPS搜不到衛星……把我嚇坏了。後來想想有可能是Radio的原因,下了個最新的G7 Radio,32.56.00.32U_5.17.05.23_Radio_Bravo,在窗口至少能搜到1顆星了……

我換回HTC Sense有幾個原因,一個是界面的問題,一個是天氣,Sense的天氣好看多了。還有就是輸入法,我還是很喜歡手寫輸入法。最後就是有Footprints……不過很悲劇的是我還沒有把Footprints加回去,這個下次再説……