2010/10/21

[linux] 利用 autossh 和 proxychain 打造家庭辦公室

利用 ssh 製造 tunnel 讓我們可以"逃離公司 MIS 的魔掌" 的方法,我想大家早就會了。這點功夫,在軟體界這個小圈圈其實很容易散布開來的技術,我想還沒有人不會。

不過說到底, ssh tunnel 並不是一個很好的解決方式。因為 ssh tunnel 還是會遇到 connection timeout ﹑需要重連等等情況。遇到這些情況的時候,如果沒有去妥善的處理,又會造成麻煩(註1)。 另外,這個 ssh server 只會是我們的一個跳板,所以如果沒有 proxy 的功能,又會讓你在使用上造成麻煩(註2)。

解決之道在這邊:
1. AutoSSH 像下面這樣一行指令就可以確保這個 ssh tunnel 的連結一直維持運作。我的習慣是用 screen 在 foreground 跑,這樣我可以確切的知道它運作的情況。
 autossh -M 2345 -N -D 2222 remote 

2. ProxyChains 以下的設定檔可以讓我們接上原本只有 remote 可以接上的節點。真正要使用的指令,請參考下面 proxychains 指令的說明。
cat .proxychains/proxychains.conf
DynamicChain
tcp_read_time_out 15000
tcp_connect_time_out 10000
[ProxyList]
socks5 127.0.0.1 2222



2.1 ProxyChains 的指令其實很簡單。像上面提到的例子,我們想訪問公司內部的 web server 該怎麼做?在命令列上面打上:
proxychains firefox

這樣,開出來的 firefox 就會配置在 proxychains 的網路架構上。 (注意喔, firefox 如果已經開啟了,那新增加的行程,會回去原來的 firefox 裡面開一個 tab 而已,這樣就不會用到 proxychains 的配置)
想 ping 公司內部的 A 機器?
proxychains ping A

這樣,應該就有人看出來,其實用法就是在最前面加上 proxychains 而已。
(命令很長厚? 請愛用 alias ,像我都會用  alias psvn='proxychains svn'
alias px='proxychains'

這樣, svn 的訪問就很簡單, porxychains 的使用也縮短成只有 px 兩個字而已。

--
註1: 有人回說,那不是寫一個 shell , loop 去解決就好了嗎? ~ 呃,你一定沒遇過 ssh 被突然斷線的情況,突然斷線之後,原本的 connection 還沒那麼快斷勒,所以,你這時連上去,就會增一個 connection 的數量,最後網路情況如果很糟,你就會在你的 ssh server 上面看到一堆屍體跟沒有用的行程。
註2: 譬如說,我需要連結公司內部的 web service ,那光 ssh proxy socket server 以外,還需要 forward http 或 https 的部份,這樣設定起來就會... 不只是麻煩。

2010/10/14

[Linux] Grub2 的 Error : file not found

前言:Ubuntu 10.10 前幾天剛釋出,就迫不及待想去嘗鮮,所以用昇級的方式花了點時間(註1)昇上 10.10 。結果 10.10 的預設 kernel 不能用,會發生 kernel dump 。還好舊版的 kernel 還在,所以就點了舊版的 kernel 來用。

使用上到也還 okay ,只是跟原本 10.04 的 kernel 版本比起來,又舊了一點,(因為 source list 不一樣咩)
所以我就又把 10.04 的更新版,的 kernel ,拿來這台 10.10 的機器上安裝。

重點來了,結果安裝完畢,重開機, Grub 就跟我報: file not found。
然後停在 grub command line 了。

哇!!!怎辦?還沒玩過 grub2 說。 grub 的急救指令: help tab都派不上用場,看了 Ubuntu 官網上的說明了結果也還是不知道為什麼 set prefix , set root 之後,不能下 linux /boot/vmlinuz-(version) root=/dev/sdaXY ro ... (列 todo 吧 ...)

結論是:
我用了 "Reinstall Grub 的三個方法" 裡的第二個:

sudo grub-install --root-directory=/mnt/ /dev/sdX


這樣就解決了。
--
0. Grub 停在開機時怎麼辦:https://help.ubuntu.com/community/Grub2#Grub shows rescue prompt (and does not continue to boot)
1. Reinstall Grub 的三個方法: https://help.ubuntu.com/community/Grub2#Reinstalling%20from%20LiveCD

2010/10/08

[軟體] oxim 的 deb 包裝

之前 就有寫過 oxim 要怎麼在 ubuntu 上面安裝的方法了,不過,大概是還不夠詳細吧,所以還蠻容易讓人迷惑的。

所以就乾脆做了 deb 的包裝,底下可以下載我用 oxim 上面的 code 包的這個 deb ,這樣安裝應該會方便一點了。

oxim-filter的圖:

更新(2011-05-16):

應要求放到 別的載點 上面。

for ubuntu 10.10 的包:
http://dl.dropbox.com/u/1117561/10.10/oxim_1.4.4_i386.deb
http://dl.dropbox.com/u/1117561/10.10/oxim-filters_1.4.4-1_i386.deb
http://dl.dropbox.com/u/1117561/10.10/oxim-setup_1.4.4-1_i386.deb

for ubuntu 10.04 的包:
http://dl.dropbox.com/u/1117561/10.04/oxim_1.4.4_i386.deb
http://dl.dropbox.com/u/1117561/10.04/oxim-setup_1.4.4-1_i386.deb
http://dl.dropbox.com/u/1117561/10.04/oxim-filters_1.4.4-1_i386.deb

// oxim 的 source code 從 cvs 已經沒辦法 checkout 了。
// opendesktop 的 ftp 也下不了,所以另外找人家的 mirror 來用。

更新(2011-05-16):
11.04 的 deb
http://dl.dropbox.com/u/1117561/11.04/oxim_1.4.4_i386.deb
http://dl.dropbox.com/u/1117561/11.04/oxim-setup_1.4.4-1_i386.deb
http://dl.dropbox.com/u/1117561/11.04/oxim-filters_1.4.4-1_i386.deb

--
參考連結:
oxim 在 ubuntu 7.04 的安裝實錄
Debian新維護人員手冊 簡單打包 deb 的例子
OXIM 一鍵安裝
OXIM源碼的來源

[Windows] git-bash 底下的工具

因為工作轉到 Windows 平台上的關係,所以很多工具改到 Windows 上面運作,跟著在 TortoiseGit 底下使用 git-bash 來維護自己的專案原始碼。結果就是裝了前面提過的 auto-hotkey 使用熱鍵來提昇自己的平台操作速度; 但除了 hotkey...