在centos6上裝Synapse

裝了Matrix家的Synapse就可以使用Riot.im聊天了,好處是服務器是自己的,客戶端是開源的。

首先跟着官方文檔,安裝依賴。此時需要注意centos6自帶的sqlite版本太低,而且插件FTS4也未啟用。參考Install Python and Sqlite from Source安裝sqlite和python2.7即可。

#安裝sqlite3.12並開啟FTS4
mkdir ~/tmp/compile&&mkdir ~/tmp/opt&&cd ~/tmp/compile
wget https://www.sqlite.org/2016/sqlite-autoconf-3120200.tar.gz
tar xf ./sqlite-autoconf-3120200.tar.gz
cd sqlite-autoconf-3120200
./configure --prefix=/home/42/opt/sqlite/sqlite3 --disable-static --enable-fts5 --enable-json1 CFLAGS="-g -O2 -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_FTS4=1 -DSQLITE_ENABLE_RTREE=1"
make
make install
mkdir ~/bin
ln -s ~/opt/sqlite/sqlite3/bin/sqlite3 ~/bin/sqlite
#到這裡就安裝好了,執行sqlite即可看到版本為3.12
#執行pragma compile_options;可見FTS4已開啟
#.quit推出sqlite
#安裝使用sqlite3.12的python2.7
wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tar.xz
xz -d Python-2.7.14.tar.xz&&tar -xvf Python-2.7.14.tar
cd Python-2.7.14
LD_RUN_PATH=$HOME/opt/sqlite/sqlite3/lib ./configure LDFLAGS="-L$HOME/opt/sqlite/sqlite3/lib" CPPFLAGS="-I $HOME/opt/sqlite/sqlite3/include"
LD_RUN_PATH=$HOME/opt/sqlite/sqlite3/lib make
LD_RUN_PATH=$HOME/opt/sqlite/sqlite3/lib make install

使用virtualenv生成一個Synapse專用的虛擬環境。安裝Synapse時還會遇到Twisted版本過低,在虛擬環境下這樣操作一下:

wget https://twistedmatrix.com/Releases/Twisted/17.1/Twisted-17.1.0.tar.bz2
tar -jxvf Twisted-17.1.0.tar.bz2
cd Twisted-17.1.0
python setup.py install 
cd ..

配置nginx前置代理的時候,用letsencrypt的centbot各種失敗,最後還是用回ssl for free的笨方法。

最後跟着官方教程增加用戶,然後在Riot.im里勾上自定義服務器就可以聊天了。也可以參考下Run your end-to-end encrypted chat server using Matrix and Riot

Android我從F-droid下載的客戶端,沒有gcm,所以在後台時檢查消息的頻率可以自行設置,我設置的5分鐘,默認10分鐘。網頁端打開的時候有一點點慢,打開後就沒問題了。Fedora可以安裝taw/Riot的源,即

sudo dnf copr enable taw/Riot 
sudo dnf install -y riot --refresh

ssh connecting

記錄下ssh連接服務器的幾種方式:

linux to linux

直接打開終端,以帳號密碼方式登錄,如下:

ssh -l root -p 2016 123.159.181.162

如果厭倦了每次都要輸密碼,可以通過證書方式登錄,還能增加安全性。設置方法可以參考SSH Passwordless Login Using SSH Keygen in 5 Easy StepsSSH/OpenSSH/Keys,寫的很詳細。

android to linux

ConnectBot是一款簡單、強大、開放原始碼的SSH用戶端。增強鍵盤中方向鍵和Ctrl、Tab等鍵用起來很方便。而且它還能連local,就當作一個本地的Terminal了。

另一個選擇是JuiceSSH。其實呢從個方面(更強大的鍵盤和更便利的剪切板操作)我都覺得JuiceSSH比ConnectBot厲害,但是我還是要在一開始推薦一下開源軟件。

Termux是安卓下的另一個選擇,它不僅可以作為ssh client還可以作為ssh server哦。

windows to linux

其實比putty厲害的軟件也有很多,但我只用過putty。

ios to linux

能用錢解決的問題都不是問題😉

Spy Monitor

Spy Monitor是個很有用的安卓應用,可以查看當前手機的網絡連接,並且不需要root權限。地圖模式下,顯示與當前手機有連接的遠程服務器所在地,可以看到微信有時在深圳,有時在上海,OperaMini的服務器確實是在中國,但OperaMoile則在冰島等等,挺有意思的。右邊列表模式能查看當前的活動鏈接以及鏈接的詳細,咦,我已經把"冰箱"用XPrivacy禁用了網絡,怎麼還有鏈接,而且還是連到ASHBURN, US,看來要去檢查下。

centos下可以用nethogs查看當前網絡鏈接。

windows下可以用NetWorx中的端口狀態查看當前網絡鏈接。

pdftotext 與 split

pdftotext是一個簡單的很多linux發行版都自帶的小工具,可以把pdf轉換成txt文本。它沒有使用ORC,所以只能轉換文本的pdf。可以通過設置起始坐標和截取的高度寬度來避開pdf文檔中的header和頁碼,命令如下:

pdftotext -x 50 -y 100 -H 550 -W 400 -nopgbrk -eol unix source.pdf

split是一個分割小工具,可以把大文件切成幾個小文件。下面這條命令將temp.txt分割成10KB一個的文件,並且不打斷原有的行(這個功能很好,我試過不用這個參數,結果漢字被硬生生分開到了兩個文件)。分割後的文件命名如temp_1.txt。

split -C 10KB -d temp.txt temp_

使用Fiddler抓取App Store的包

首先說明,如果想把App Store的https鏈接全都解密,那麼所用蘋果設備需要越獄,否則只能解密部分https鏈接。

Fiddler是一個非常好用的抓包工具,比Wireshark不知到簡單到哪裡去了,非常適合對網絡協議不熟悉的使用者。安裝完成後,打開Fiddler,右上角有個Online,鼠標放上去後會彈出網絡信息,最後一行便是本機的IP。在蘋果設備上的WiFi設定中配置proxy為運行Fiddler的IP,端口默認是8888。這樣所有的流量就顯示在Fiddler窗口中了。Fiddle的設置在Tools》Teleric Fiddler Options中。

如果要查看https流量,需要在代理端和蘋果設備各安裝一個證書。由於要對蘋果設備解密https,所以還需要安裝一個證書生成器插件CertMaker for iOS and Android,安裝完成後重啟Fiddler。在設置的HTTPS選項卡中勾選Decrypt HTTPS traffic,在右邊Actions里選擇Trust root centificate,然後根據提示就完成了在代理端根證書安裝。用蘋果設備訪問http://你的代理IP:8888,最下面有一個FiddlerRoot centificate的鏈接,點擊後根據提示就完成了蘋果設備的證書安裝。此時你打開Safari訪問https的網站,就能看到解密的數據了。

但是此時如果切換apple id帳號,或者在app store下載軟件都會失敗,原因是apple的這些軟件運用了CertPinning技術。大意就是apple的這些軟件只接受自己的證書,其他證書一概不信任。這時就只有越獄的手機有辦法了,那就是使用SSL Kill Switch 2。由於手頭沒有越獄手機,如果有機會完成測試就再補充。


幾天后的進一步測試並沒有取得成功。使用的是iOS9.3.1的iPhone,使用盤古進行的越獄。此次越獄版本似乎不是很完善,表現在當我要裝一個命令行軟件的時候雖然安裝成功但是無法啟動,還有就是每次重啟都會失去越獄。按照Cydia的說明通過ssh可以順利進入iPhone,然後按照SSL Kill Switch 2的說明完成了安裝,但是Setting里並沒有出現啟用的開關。後來還嘗試修改wifi的mac地址,無論是nvram還是ifconfig都失敗了,可能是由於蘋果對系統的加強吧。

PHP Development Tools——Eclipse

之前用NetBeans寫PHP倒也沒什麼問題,最近看到PSR-2的代碼編寫規範,覺得很好,但是NetBeans好像沒有找到設置的地方。搜了下PHP Development Tools (PDT)直接支持PSR-2。Sublime Text 2的編碼主題比較舒服,PDT也是有的,Sublime Text 2 theme for PDT下載。推薦下載EPF格式,然後在eclipse中File/Import/General/Preferences導入即可。爲了遵循PSR的代碼書寫規範,還需在Window/Preferences中進行如下設置:

  1. PHP/Code Style/Formatter/Active profile設置爲PSR-2。
  2. General/Workspace/New text file line delimiter設置爲Other:Unix。
  3. General/Editors/Text Editors勾選Show line margin,值設爲80。

安卓電話錄音軟件Automatic Call Recorder

Automatic Call Recorder

以前用HTC安卓2.3的時候找過電話錄音軟件,基本都是錄的外放的聲音,聽筒的人聲極小。而這款Automatic Call Recorder是有很多錄音線路可供選擇的,前面的都失敗後纔會選擇揚聲器模式。我在Sony Z上全部默認設置,錄下的聲音有電流聲干擾,但人聲還挺清晰,已經能作爲一個普通的電話錄音軟件來使用。有空再事實其他音源。