Tag Archive for 'debian'

在Debian下快速合併多個tiff檔並轉成pdf格式

前幾天朋友傳了一大個壓縮檔給我,打開後發現是一本極度實用的工具書,但是讓人困擾的是每一個頁面都是掃描後的tiff檔案,所以造成閱讀上的極度不便,而且也非常浪費磁碟空間,突然想起之前曾經將單一個tiff檔案轉換成pdf的經驗,所以稍微摸索了一下,總算研究出來作法。

Continue reading ‘在Debian下快速合併多個tiff檔並轉成pdf格式’

mencoder轉影片給IPod Touch觀賞之全攻略

*** Note *** 本篇的作法轉出來的檔案也可以順利的在IPhone上面播放

IPod Touch除了聽歌功能強悍外,影音撥放的能力也是吸引我的重點,大小適中的螢幕適合在通勤或出門等朋友時拿出來看看影片打發時間,可惜IPod Touch承襲著Apple Inc.一貫的風格,只能撥放MPEG4以及x264的編碼,對於大多數的電影採取的xvid、DivX或是日劇常用的rmvb都不支援,必須經過轉換才可以正常撥放,Windows上面有一堆簡單方便且免費的軟體可以使用,但是我實在不想要浪費自己電腦的資源和電費來做這種浪費時間的事情,於是腦筋就動到某台身在遠方卻有8個核心可以使用的強大機器,用遠端的運算資源,電費也是別人家付,多划算阿!!! 畢竟在這經濟不景氣的年代,說要好好善用資源啊!!! XD

Continue reading ‘mencoder轉影片給IPod Touch觀賞之全攻略’

好用的curlftpfs

常常在開發網頁程式時,我們會在自己習慣的平台上面寫完及測試後後,再丟上去真正運轉的機器運行,最常見的方法便是用ftp client上傳,但如果更新較為頻繁,這個動作做多了還是會不太耐煩,總希望可以直接mount遠方的ftp目錄當作是自己的一個目錄來使用,如此一來,只需要使用常用的cp、rm這類的指令便可以達到操作遠端ftp目錄下的檔案的功能。

幸運的是,在Debian下面有個方便的套件叫做curlftpfs,這軟體使用的底層便是大名鼎鼎的FUSE,搭配著cURL Library組合而成,讓我們可以很方便的在Debian下直接mount遠方的ftp資料夾。

安裝及使用方法如下:

  1. apt-get install curlftpfs (安裝curlftpfs)
  2. curlftpfs -o iocharset=big5,codepage=utf8,ipv4,user=帳號:密碼 ftp://xxx.xxx.xxx.xxx 本地目錄
    iocharset指的是本機端所使用的編碼
    codepage指的是ftp那端所使用的編碼
    密碼不可以包含空白

如果你不希望你的密碼暴露出來,可以僅使用user=帳號,如此一來程式會要求你輸入密碼後再繼續執行。最後,假若你希望能在每次開機後,自動mount遠端某個ftp目錄,請編輯/etc/fstab加上一行

curlftpfs#xxx.xxx.xxx.xxx /mount的目錄 fuse rw,iocharset=big5,codepage=utf8,ipv4,user=帳號:密碼,user,noauto 0 0

記得更改一下/etc/fstab的權限,否則就全部的人都可以看到你的帳號密碼了。

aria2c – Linux下的多線程下載軟體

很多朋友轉換到Linux下的時候,再下載大型檔案時,往往會遭遇到網路速度緩慢,想要使用在Windows上面像是flashget這類的多線程軟體,來加速下載。這裡推薦一個好用的小軟體 – aria2c,不但能夠多線程下載檔案,也能夠拿來下載bittorrent的檔案(有支援DHT),不過下載bittorrent還是建議使用rtorrent比較威猛剛強一點,這邊介紹在Debian下面如何安裝使用aria2c

在Debian下面安裝aria2c非常簡單:

apt-get install aria2c

多線程下載使用方法如下:

aira2c -s16 http://file.to.download/file.zip

-s 後面接的數字是線程數目,限制是1~16,應該可以滿足大多數人的需求,如果需要更高的數目,可以透過 -j 來增加。

如果你需要使用aria2c來下載bittorrent檔案,使用方法如下:

aria2c  –enable-dht  –listen-port=某個port –max-upload-limit=單一檔案上傳速度 –max-overall-upload-limit=全局上傳速度 –torrent-file=torrent檔案

上面簡單介紹了最常使用到的兩種功能,其他的細部設定請自行參酌aria2c的man page。

ip_conntrack: table full, dropping packet

之前架設一台vpn時, 由dmesg看到一個警告訊息

ip_conntrack: table full, dropping packet

google了一下發現似乎是個還蠻常見的問題,通常是NAT user過多或是同時建立太多tcp connection,導致table爆炸,因為Linux Kernel在NAT預設的tcp timeout是五天,難怪user多就爆炸。所以改法很簡單,就是把table加大,timeout縮短即可,要注意的是table所使用的memory為

ip_conntrack_max * 232 Bytes

所以要小心大小,不要改的太爽,加到超過你記憶體能夠負擔的能力,步驟如下:

首先查看一下table size以及timeout預設是多少:

cat /proc/sys/net/ipv4/ip_conntrack_max

cat /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established

上面兩行指令能告訴你,目前機器上的table大小及tcp timeout時間

改法有二, 選一個你喜歡的作法即可 :Q

方法一:

sysctl -w net.ipv4.ip_conntrack_max=131072 (or 任何妳喜歡且不會爆的值)

sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=600

(把這兩行寫到你的開機啟動檔裡面)

方法二:

編輯/etc/sysctl.conf, 加上下列兩行

net.ipv4.ip_conntrack_max=131072 (or 任何妳喜歡且不會爆的值)

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=600

這樣每次開機就會設定上去啦.

問題便可以因此解決。

高效率的iptables GEOIP模組

手邊有台vpn server上面用iptables跑policy routing,連往大陸地區就從特定interface出去,之前的做法是到apnic取得大陸地區最新的ip list後,再利用script一行一行餵進去iptables裡面,即使做過CIDR merge後,還是快要達到800筆record,每每上線使用者一多、或是流量變大時機器的loading就會增加,這種作法不用分析也大概猜得出來,iptables內部作rule match是採用list match,當rule量很大的時候,效能當然會變差。 Continue reading ‘高效率的iptables GEOIP模組’

使用MRTG觀察VPN(pptpd)上線人數

我的VPN伺服器是使用Poptop套件架設在Debian上,一旦有新的服務在手上,自然會好奇到底有多少人在使用,馬上浮現在腦海中的便是利用MRTG來做,實作起來也相當簡單,只需要編輯一個專屬的MRTG config檔以及自行撰寫一個shell script即可完成。 Continue reading ‘使用MRTG觀察VPN(pptpd)上線人數’

Debian Multi-WAN QoS Howto

[注意]

引用本文請完整引用並須於引用文章中列上本文章的完整連結

[前言]

某個的vpn設置的時候是希望滿足兩個條件: 1) 隨時可以使用內部ip存取經過ip認證的服務。(如: IEL) 2) 利用固定制ADSL的路由優勢存取原本需要繞遠路的網域 (如:連往對岸),增快存取速度。

[架構]

vpn structure

vpn structure

Continue reading ‘Debian Multi-WAN QoS Howto’