Subscribe to
Posts
Comments

屬於 'Linux伺服器架設' 目錄中的文章

隨著 linux桌面功能日益進步發展,而其中各式各樣的設定視窗也隨著進多了許多,不像數年前那樣的簡單,雖然功能依然陽春,但是對於一般使用者或功能單純的伺服器的話,那Fedora 9中的防火牆(firewall)設定視窗還是可以一用的。而初學者也不必去理解那些難懂的 iptables 指令了。以下就簡單的介紹一下這個設定視窗的幾項主要的功能︰

設定視窗左邊選單顯示的「trusted service」︰點選這個選項會列出一些常用的伺服器及使用的 port ,如要開放的 port 就在方格上點選它即可,可供選擇的項目很多所以要針對自己的伺服器想要開放的服務去勾選。

設定視窗左邊選單顯示的「other ports」︰點選這個選項不會出現任何內容,它是為了補強上一個功能,因為有些 在「trusted service」中沒有顯示的 port,你可以在這裏開放它,例如 port 110這個 pop3 收信軟體常用的 port就必須要在這裏輸入後才能開放(如下圖所示)。

firewall-fc9-02.png

設定視窗左邊選單顯示的「masquerading」︰如下圖所示點選這個選項會出現目前電腦的網路卡代號(eth0、eth1),這個功能可以讓 linux 成為一台 ip 分享器,所以只要勾選連接到 internet 的那片網卡代號(eth0)就可以使內部區域網路(eth1)可以連上 internet 了。

firewall-fc9-04.png

設定視窗左邊選單顯示的「trusted interfaces」︰ 這個功能是設定信任的連接區域網路的網卡代號。

fc9-firewall.png

設定視窗左邊選單顯示的「port forwarding」︰在這裏我們可以指定由本電腦的某一個 port 接收到的資料會重新傳導另一台在區域網路的電腦,假如在區域網路中的電腦要用 bt 來上傳或下載資料,就必須要用這個功能去指定資料傳送的路徑,才不會被防火牆所阻擋了。

firewall-fc9-04.png

設定完成後可以點選位於視窗上方的「apply」及「reload」讓防火牆的新設定立即生效。

這次在Fedora 9中的防火牆設定視窗比起 Fedora core 5又改變了不少,下圖是設定信任裝置的頁面,在這裏要勾選連接區域網路的那片網路卡的代號就可以了,另外若不想在這個視窗設定防火牆的話,可以在下列文字檔中修改,不過可別二者交互替使用,因為使用視窗設定防火牆後就會將文字檔覆蓋掉。

/etc/sysconfig/iptables

fc9-firewall.png

誤用了 Router 的後果。

最近旅館人員一直在反應網路無法上網的問題,發生問題的特徵是要上網的電腦有時可以有時不可以找到正確的DHCP 這個伺服器,經過工頭花了數天的追查才發現原因是要我誤用了下圖這個 Dlink 的 Wired Router 來當 Hub 所引起的問題。

原來要用 Wired Router 來當 hub用並不是不可以,但是必須要將這個 Dlink 的 Wired Router 中的DHCP 服務項目給取消掉,否則就會發生一個區域網路中有二個DHCP 伺服器,要是二個DHCP 伺服器都是提供正確的 IP 的話倒也相輔相成,問題工頭這二個DHCP 伺服器各吹各個調,以至於要上網的電腦有時可以有時不可以找到正確的DHCP 這個伺服器。

所以這個問題在工頭將 Wired Router 移除後就解決了。

emr2310-01.jpg

emr2310-02.jpg

原本提供給 sendmail郵件伺服器使用的帳號是與 linux的使用者帳是相同的,但是有些網路管理者認為給郵件伺服器的使用者這樣的權力太大對 linux電腦的安全上有疑慮,所以我們可設定只提供給sendmail郵件伺服器使用的帳號。

在Fedora core 6 中設定只提供給sendmail郵件伺服器使用的帳號,只需下列幾個步驟就可以了︰

STEP 1:先點選螢幕桌面上方的選單來開啟下圖「使用者管理員」的視窗,並點選視窗上「新增使用者」的按鈕︰

系統-> 管理 -> 使用者與群組

newuser00.png
STEP 2:在「新增使用者」視窗上填入「使用者名稱」、「全名」、「密碼」、「密碼確認」,並且在「登入的Shell」點選

/sbin/nologin

這一項才可以設定這個帳號只提供給sendmail郵件伺服器使用。確認輸入內容無誤後用滑鼠去點選「確定」。

newuser00.png
STEP 3:回到下圖「使用者與群組」的視窗中會發現多出一個剛剛才輸入設定的新的帳號,這樣就表示完成了新增一個只提供給 sendmail郵件伺服器使用的帳號。

newuser00.png

只要9個步驟自己架設一個郵件伺服器,你就不必要受限免費信箱小小空間的氣了.在此介紹最常見的sendmail這個軟體吧!

1. 修改sendmail設定檔: # vi /etc/mail/sendmail.mc

dnl TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
dnl define(`confAUTH_MECHANISMS’, `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA’)

將他修改成底下這樣:

TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
define(`confAUTH_MECHANISMS’, `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA’)

2. 製作sendmail設定檔:

# m4 sendmail.mc > sendmail.cf

3. 修改 /etc/rc.d/rc.local開機執行檔

加入這一行 /usr/sbin/saslauthd -a shadow

4. 啟動saslauthd指令:

因為在 Fedora Core 5中似乎不會自動去啟動 saslauthd 這個服務,所以只好自己來了。

# /etc/rc.d/init.d/saslauthd start


saslauthd.png
5. 啟動sendmail指令:

# /etc/rc.d/init.d/sendmail restart

6. 啟動POP3指令:

先去修改 /etc/dovecot.conf 文字檔

加入這一行 protocols = pop3


saslauthd.png
 
再來以下列指令去啟動 dovecot 這個服務,這樣就啟動POP3了。

# /etc/rc.d/init.d/dovecot restart

7. 檢查服務是否啟動:

# netstat -tl

8. 檢查防火牆是否開放pop3及smtp的Port 25及port 110:

# vi /etc/sysconfig/iptables

9. 設定主機名稱:

# vi /etc/mail/local-host-names

加入你自己的為郵件主機名稱.例如:kujaku.idv.tw

只要上列8個步驟就將sendmail郵件伺服器架設完成了.

而你的電子信箱是:你的在Fedora Core中使用者名稱@郵件主機名稱
而使用電子信箱密碼則是你的在Fedora Core中的登入密碼.

為了讓公司網站能讓網頁能上傳到網站伺服器上,所以我必須要架設在 Linux Fedora Core 4 中架設FTP伺服器,讓公司的網頁設計人員能夠自行透夠FTP伺服器上傳網頁資料到伺服器上.在這裏可以使用 vsftp 這個軟體來架設FTP伺服器.STEP 1 :當我們在安裝 Linux Fedora Core 4 時,若選擇完整安裝時,那 vsftp這個軟體也會一起安裝好.若是安裝 Linux Fedora Core 4 時沒有選到 FTP伺服器這個選項,可以拿出 Fedora Core 4 的光碟片再將 vsftp這個軟體安裝好.

STEP 2 :啟動vsftp指令:

# /etc/rc.d/init.d/vsftpd start

STEP 3 :修改防火牆的設定: 我們使用Fedora Core 4中視窗模示下附的”安全等級”此功能,(如下圖示),其中有”FTP”此項目可勾選用以開放port 20,就可以了.


pop_firewalls.jpg
STEP 4: 輸入下列指令來修改vsftpd.conf設定檔:

# vi /etc/vsftpd/vsftpd.conf

下列是工頭認為比較重要的設定:

anonymous_enable=NO 此設定可以不讓使用者以 anonymous 登入我們的 vsftpd 主機!

chroot_local_user=Yes 此設定可以讓使用者登入後只能在預設的使用者的家目錄中瀏覽及存取.

完成以上設定後,我們可以開一個新的帳號 test 給網頁設計人員,讓他們利用這個 test 帳號去經由 FTP伺服器來上傳網頁資料,在此必須要將此帳號的家目錄設定在 WWW伺服器的 /var/www/html目錄之中.
vsftp-test.png

在「讓 Linux Fedora Core 4 能夠成為發送影音串流資料的伺服器(streaming server).」 一文中工頭己經提到在 xwindow 的環境中啟動VLC media player這個軟體來發送影音串流資料,但是讓伺服器經常保持 xwindow 啟動的狀態下,實在並不是什麼好主意,所以我們可以利用 SSH 遠端登入來啟動影音串流資料的伺服器(streaming server).

STEP 1:首先您必須先確定您的 SSH 遠端登入 的功能正常,且啟動中.(工頭不在此說明,請參見其它有關 SSH 遠端登入 的文章.)

STEP 2:再來於 xwindow 的環境下去啟動VLC media player這個軟體,對它進行一些設定,使它能接受在文字模式下的指令而啟動 VLC media player這個軟體來發送影音串流資料.

STEP 3:進入「偏好設定」,點選「Interface」,再點選「一般」,更改「介面模組」由原本「預設」改選成「Remote Control Interface」.而在「額外介面模組」這一項內也要勾選「Remote Control Interface」.如下圖所示.

vlc-pref
STEP 4:關閉VLC media player這個軟體.STEP 5:在另外一台電腦利用 SSH 遠端登入 的功能,登入到之前我們己經安裝VLC media player這個軟體的電腦.在命令列中輸入下列指令,去啟動 VLC media player這個軟體來發送影音串流資料.

vlc pvr:// :pvr-device=”/dev/video0″ :pvr-norm=0 :pvr-frequency=-1 :pvr-bitrate=-1 –sout ‘#transcode{vcodec=DIV3,vb=300,scale=1,acodec=mp3,ab=90,channels=2} :duplicate{dst=std{access=mmsh,mux=ts,url=192.168.1.2:1234}}’

STEP 6:此時我們即可使用 IE 輸入 mms://192.168.1.2:1234 來收看由 VLC media player這個軟體來發送影音串流資料.

vlc-open-03.jpg

要 讓 Linux Fedora Core 4 能夠成為發送影音串流資料的伺服器(streaming server),首先必須要有軟體來發送影音串流資料,工頭選用了VLC media player這個軟體,WinTv-PVR150 電視卡,來擔任這個重任.如何安裝請參看下列文章.

在 Linux Fedora Core 4 中安裝 WinTv-PVR150 電視卡.

在 Linux Fedora Core 4 中安裝VLC多媒體播放器(VLC media player).

在進行下列步驟時請先確認您己經完成了上列VLC media player這個軟體,WinTv-PVR150 電視卡的安裝,我們就可以使用VLC media player這個軟體來進行發送影音串流資料了.

STEP 1 :在xwindow的環境中,啟動VLC media player.

STEP 2 :進入「開啟檔案」的視窗中,選擇「PVR」這一個分頁.確定 DEVICE 這一項是 /dev/video0,並將「串流輸出」這一個選項打勾.

vlc-open.png
STEP 3 :完成上列動作後用滑鼠按「設定…」.進入「串流輸出」的設定視窗.按照下圖內容去設定,完成後用滑鼠按「確定」回到「開啟檔案」的視窗中,再用滑鼠 按「確定」.即可在xwindow的環境中,啟動VLC media player的發送影音串流資料功能.

vlc-open-02.png
STEP 4 :到另外一台 windows XP 的電腦,啟動 IE 輸入先前在 vlc 內設定的網址及port編號後即可利用 windows media player 去收看由影音串流資料的伺服器(streaming server)所發送出來的電視節目.
vlc-open-03.png
vlc_player_01
如果您要選台,可以利用以下的選台的指令.在ssh遠端登入的功能中去使用它.其中 c3 代表第3頻道.而 /dev/video0 代表 WinTv-PVR150 電視卡.

ivtv-tune -c3 -d/dev/video0

ivtv-01.jpg

相關文章:

利用 SSH 遠端登入來啟動影音串流資料的伺服器(streaming server).

這次工頭將「利用 Linux 中的 tc 指令以cbq來進行網路頻寬的管理-上傳篇」來補上,以免落了個「為德不卒」之名.

之前工頭談到了使用 cbq.init 這個軟體來進行網路頻寬的管理,其實這個軟體其實也是使用了 tc 這個指令在進行網路頻寬的管理的.所以我們為了能更加深入了解 linux,這次工頭就來談談在 Linux Fedora Core 4 的環境中去使用 tc 這一個指令去做上傳的頻寬分配.如果只是單純的想限要限制在NAT server 後面的 LAN (192.168.1.0/24)的網路頻寬,事實上只要4行 tc 指令及配合 iptables 內的設定,不必 cbq.init 這個軟體就能完成對上傳做頻寬分配了.

假設的網路環境圖

nat-network
假設對 INTERNET 的網路連接的網卡為 eth1,那4行的 tc 指令如下:

iptables -t mangle -A FORWARD -o eth1 -s 192.168.1.0/24 -j MARK –set-mark 20

tc qdisc add dev eth1 root handle 1 cbq bandwidth 100Mbit avpkt 1000 cell 8

tc class add dev eth1 parent 1: classid 1:3 cbq bandwidth 100Mbit rate 60Kbit weight 6Kbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded

tc qdisc add dev eth1 parent 1:3 handle 3 tbf rate 60Kbit buffer 10Kb/8 limit 15Kb mtu 1500

tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 20 fw classid 1:3

將以上指令,複製到 /etc/rc.local 此檔案內,重新開機後即可生效.此時所有對 LAN (192.168.1.0/24)的網路的電腦下載速度均為60Kbit/sec.

以上的tc 指令說明如下:

tc qdisc add dev eth1 root handle 1 cbq bandwidth 100Mbit avpkt 1000 cell 8

這一行 tc 指令在宣告一個頂級的佇列戒律.

qdisc add : 新增加一個佇列戒律.

dev eth1 : 網路卡 eth1.

root : 宣告這個是一個頂級戒律.

handle 1 : 編號為1.

bandwidth 100Mbit : 網路頻寬為 100Mbit.

avpkt 1000 : 平均封包體積大約為 1000.

cell 8 : 封包間隔發送單位為8.

tc class add dev eth1 parent 1: classid 1:3 cbq bandwidth 100Mbit rate 60Kbit weight 6Kbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded

這一行 tc 指令在產生一個屬於佇列戒律1的 頂層類別 1:3.

class add parent 1: classid 1:2 : 產生一個屬於佇列戒律1的 頂層類別 1:3.

dev eth1 : 網路卡 eth1.

classid 1:3 : 指定這個新類別的編號名稱.

rate 60Kbit : 為實際限制的網路下載速度.

weight 6Kbit : 為一個微調參數.一般為rate值除以10去得出來的.

prio 5 : 為一優先級別值,一般設定為5.

allot 1514 : 為網卡的MTU值加上overhead.

maxburst 20 : 可接收衝突的最大封包數目.

bounded : 設定不可借用其它類別頻寬.

tc qdisc add dev eth1 parent 1:3 handle 3 tbf rate 60Kbit buffer 10Kb/8 limit 15Kb mtu 1500

這一行 tc 指令在利用 TBF 來處理頻寬管理.

tbf : 使用 TBF 來處理頻寬管理.

buffer 10Kb/8 : 最大可接收的位元組.一般在cbq.init預設值為10Kb/8.

limit 15Kb : 它是能被佇列的有效位元組長度.

mtu 1500 : 網卡的MTU值.

tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 20 fw classid 1:3

這一行 tc 指令在利用 fw 分類器來比對處理的封包.

protocol ip : 分類器所能接受的協定.

prio 100 : 為分類器的優先等級.

handle 20 fw : 為指定分類器 fw 的使用範圍為iptables make 20.

classid 1:3 : 過濾後的封包再送到類別1:3那邊去.

這次工頭將「利用 Linux 中的 tc 指令以cbq來進行網路頻寬的管理-上傳篇」來補上,以免落了個「為德不卒」之名.

之前工頭談到了使用 cbq.init 這個軟體來進行網路頻寬的管理,其實這個軟體其實也是使用了 tc 這個指令在進行網路頻寬的管理的.所以我們為了能更加深入了解 linux,這次工頭就來談談在 Linux Fedora Core 4 的環境中去使用 tc 這一個指令去做上傳的頻寬分配.如果只是單純的想限要限制在NAT server 後面的 LAN (192.168.1.0/24)的網路頻寬,事實上只要4行 tc 指令及配合 iptables 內的設定,不必 cbq.init 這個軟體就能完成對上傳做頻寬分配了.假設的網路環境圖

nat-network
假設對 INTERNET 的網路連接的網卡為 eth1,那4行的 tc 指令如下:

iptables -t mangle -A FORWARD -o eth1 -s 192.168.1.0/24 -j MARK –set-mark 20

tc qdisc add dev eth1 root handle 1 cbq bandwidth 100Mbit avpkt 1000 cell 8

tc class add dev eth1 parent 1: classid 1:3 cbq bandwidth 100Mbit rate 60Kbit weight 6Kbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded

tc qdisc add dev eth1 parent 1:3 handle 3 tbf rate 60Kbit buffer 10Kb/8 limit 15Kb mtu 1500

tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 20 fw classid 1:3

將以上指令,複製到 /etc/rc.local 此檔案內,重新開機後即可生效.此時所有對 LAN (192.168.1.0/24)的網路的電腦下載速度均為60Kbit/sec.

以上的tc 指令說明如下:

tc qdisc add dev eth1 root handle 1 cbq bandwidth 100Mbit avpkt 1000 cell 8

這一行 tc 指令在宣告一個頂級的佇列戒律.

qdisc add : 新增加一個佇列戒律.

dev eth1 : 網路卡 eth1.

root : 宣告這個是一個頂級戒律.

handle 1 : 編號為1.

bandwidth 100Mbit : 網路頻寬為 100Mbit.

avpkt 1000 : 平均封包體積大約為 1000.

cell 8 : 封包間隔發送單位為8.

tc class add dev eth1 parent 1: classid 1:3 cbq bandwidth 100Mbit rate 60Kbit weight 6Kbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded

這一行 tc 指令在產生一個屬於佇列戒律1的 頂層類別 1:3.

class add parent 1: classid 1:2 : 產生一個屬於佇列戒律1的 頂層類別 1:3.

dev eth1 : 網路卡 eth1.

classid 1:3 : 指定這個新類別的編號名稱.

rate 60Kbit : 為實際限制的網路下載速度.

weight 6Kbit : 為一個微調參數.一般為rate值除以10去得出來的.

prio 5 : 為一優先級別值,一般設定為5.

allot 1514 : 為網卡的MTU值加上overhead.

maxburst 20 : 可接收衝突的最大封包數目.

bounded : 設定不可借用其它類別頻寬.

tc qdisc add dev eth1 parent 1:3 handle 3 tbf rate 60Kbit buffer 10Kb/8 limit 15Kb mtu 1500

這一行 tc 指令在利用 TBF 來處理頻寬管理.

tbf : 使用 TBF 來處理頻寬管理.

buffer 10Kb/8 : 最大可接收的位元組.一般在cbq.init預設值為10Kb/8.

limit 15Kb : 它是能被佇列的有效位元組長度.

mtu 1500 : 網卡的MTU值.

tc filter add dev eth1 parent 1:0 protocol ip prio 200 handle 20 fw classid 1:3

這一行 tc 指令在利用 fw 分類器來比對處理的封包.

protocol ip : 分類器所能接受的協定.

prio 100 : 為分類器的優先等級.

handle 20 fw : 為指定分類器 fw 的使用範圍為iptables make 20.

classid 1:3 : 過濾後的封包再送到類別1:3那邊去.

工 頭這裏介紹在 Linux Fedora Core 4 的環境中去使用 htb.init-v0.8.5 這一個程式去做下載的頻寬分配.之前己經介紹過了使用 cbq.init 來進行 Linux網路頻寬的管理了,為何還要介紹用這一種工具來管理,原因是據說用 htb 來管理頻寬分配其速度方面會比 cbq 來得快,假如家中的電腦速度實在不怎麼樣的,不妨可參考參考使用 htb.init 來管理頻寬分配,或許能更為有效率也說不一定.

雖 然目前網際網路的速度比起數年前可是大有進度,但是依然遠遠追不上應用方向需要的,尤其是在使用經由NAT server去連線上網的環境下,多人共用一個公共的固定IP.若其中有人在使用P2P軟體,上網連線遊戲,看網路電視等,佔去大量網路寬頻的應用時,則 其它人就必須忍受著龜速般的速度上網.為了防止這種少數人會佔據大幅上網頻寬的不公平情形,我們在NAT server中進行頻寬管理( Qos )應該是刻不容緩的事情.這是尚未設定 htb 的連線速度.很遜吧! 沒辦法加拿大的網路又貴又慢. XX(
cbq-before
STEP 1: 先去下列網頁下載 htb.init-v0.8.5 這個程式,它只是一個文字檔而,所以只有32KB而且.重點是它完全免費.

http://sourceforge.net/projects/htbinit/

STEP 2: 將 htb.init-v0.8.5 這個程式重新命名為 htb 然後將這個 htb 檔案複製到下列檔案夾中.

/sbin

STEP 3: 利用列指令去新增加一個名字叫 htb 資料夾在 /etc/sysconfig 之內.(用來放我們日後自己寫的頻寬管理的設定檔案.)

mkdir /etc/sysconfig/htb

STEP 4: 開始用使用在文字模式中用vi或其它文字編輯器去新增三個文字檔.

/etc/sysconfig/htb/eth0

/etc/sysconfig/htb/eth0-2.root

/etc/sysconfig/htb/eth0-2:30.dfl

/etc/sysconfig/htb/eth0 文字檔的內容為:

DEFAULT=30

R2Q=100

htb-eth0.png
/etc/sysconfig/htb/eth0-2.root 文字檔的內容為:

RATE=200Kbit

BURST=15k

htb-eth0-2.root.png
/etc/sysconfig/htb/eth0-2:30.dfl 文字檔的內容為:

RATE=200Kbit

CEIL=5Mbit

BURST=15k

LEAF=sfq

htb-eth0.png
文字檔內容的解釋:

RATE=200Kbit
這個200Kbit的數值就是規定日後各個內部網路的電腦的下載速度最高為200Kbit.

LEAF=sfq
這個敘述是指定htb.init利用 SFQ 來處理頻寬管理.

工頭的網路環境圖

nat-network
STEP 5: 輸入下列指令去啟動 htb 的服務.成功的話頻寬管理的設定就啟動了.完全不必去更動 NAT server 中 iptables 內的設定喔!

htb start

經過網路公司的測速網站去測下載速度,我們可以得知在內部網路(LAN)的電腦的下載速度己經被限制在約195Kbit到185Kbit左右.但NAT server這台電腦是完全不受 htb 的限制的.

htb-down
STEP 6: 輸入下列指令可查看 htb 的設定情形.

htb stats

STEP 7: 輸入下列指令可中止 htb 的服務.

htb stop

之前工頭談到了使用 cbq.init 這個軟體來進行網路頻寬的管理,其實這個軟體其實也是使用了 tc 這個指令在進行網路頻寬的管理的.所以我們為了能更加深入了解 linux,這次工頭就來談談在 Linux Fedora Core 4 的環境中去使用 tc 這一個指令去做下載的頻寬分配.

如果只是單純的想限要限制在NAT server 後面的 LAN (192.168.1.0/24)的網路頻寬,事實上只要4行 tc 指令,不必 cbq.init 這個軟體就能完成對下載做頻寬分配了.假設的網路環境圖
nat-network
假設對 LAN (192.168.1.0/24)的網路連接的網卡為 eth0,那4行的 tc 指令如下:

tc qdisc add dev eth0 root handle 1 cbq bandwidth 100Mbit avpkt 1000 cell 8

tc class add dev eth0 parent 1: classid 1:2 cbq bandwidth 100Mbit rate 300Kbit weight 30Kbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded

tc qdisc add dev eth0 parent 1:2 handle 2 tbf rate 300Kbit buffer 10Kb/8 limit 15Kb mtu 1500

tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip dst 192.168.1.0/24 classid 1:2

將以上指令,複製到 /etc/rc.local 此檔案內,重新開機後即可生效.此時所有對 LAN (192.168.1.0/24)的網路的電腦下載速度均為300Kbit/sec.

以上的tc 指令說明如下:

tc qdisc add dev eth0 root handle 1 cbq bandwidth 100Mbit avpkt 1000 cell 8

這一行 tc 指令在宣告一個頂級的佇列戒律.

qdisc add : 新增加一個佇列戒律.

dev eth0 : 網路卡 eth0.

root : 宣告這個是一個頂級戒律.

handle 1 : 編號為1.

bandwidth 100Mbit : 網路頻寬為 100Mbit.

avpkt 1000 : 平均封包體積大約為 1000.

cell 8 : 封包間隔發送單位為8.

tc class add dev eth0 parent 1: classid 1:2 cbq bandwidth 100Mbit rate 300Kbit weight 30Kbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded

這一行 tc 指令在產生一個屬於佇列戒律1的 頂層類別 1:2.

class add parent 1: classid 1:2 : 產生一個屬於佇列戒律1的 頂層類別 1:2.

dev eth0 : 網路卡 eth0.

classid 1:2 : 指定這個新類別的編號名稱.

rate 300Kbit : 為實際限制的網路下載速度.

weight 30Kbit : 為一個微調參數.一般為rate值除以10去得出來的.

prio 5 : 為一優先級別值,一般設定為5.

allot 1514 : 為網卡的MTU值加上overhead.

maxburst 20 : 可接收衝突的最大封包數目.

bounded : 設定不可借用其它類別頻寬.

tc qdisc add dev eth0 parent 1:2 handle 2 tbf rate 300Kbit buffer 10Kb/8 limit 15Kb mtu 1500

這一行 tc 指令在利用 TBF 來處理頻寬管理.

tbf : 使用 TBF 來處理頻寬管理.

buffer 10Kb/8 : 最大可接收的位元組.一般在cbq.init預設值為10Kb/8.

limit 15Kb : 它是能被佇列的有效位元組長度.

mtu 1500 : 網卡的MTU值.

tc filter add dev eth0 parent 1:0 protocol ip prio 100 u32 match ip dst 192.168.1.0/24 classid 1:2

這一行 tc 指令在利用 u32 分類器來比對處理的封包.

protocol ip : 分類器所能接受的協定.

prio 100 : 為分類器的優先等級.

u32 match ip dst 192.168.1.0/24 : 為指定分類器 u32 的使用範圍為何.

classid 1:2 : 過濾後的封包再送到類別1:2那邊去.

之前工頭己經介紹了如何利「用 cbq.init 來進行 Linux網路頻寬的下載管理」,但是為了防止少數人使用P2P軟體佔用那些少到不能再少上傳頻寬,所以針對有必須上傳頻寬來設定限制來防止這種少數人會佔據大幅上傳頻寬的不公平情形。

工頭這裏介紹在 Linux Fedora Core 4 的環境中去使用 cbq.init-v0.7.3 這一個程式去做上傳的頻寬分配.這是尚未設定 cbq 的連線速度.很遜吧! 沒辦法加拿大的網路又貴又慢. XX(
cbq-before
STEP 1: 先去下列網頁下載 cbq.init-v0.7.3 這個程式,它只是一個文字檔而,所以只有33KB而且.重點是它完全免費.

http://sourceforge.net/projects/cbqinit

STEP 2: 將 cbq.init-v0.7.3 這個程式重新命名為 cbq 然後將這個 cbq 檔案複製到下列檔案夾中.

/sbin

STEP 3: 利用列指令去新增加一個名字叫 cbq 資料夾在 /etc/sysconfig 之內.(用來放我們日後自己寫的頻寬管理的設定檔案.)

mkdir /etc/sysconfig/cbq

STEP 4: 開始用使用在文字模式中用vi或其它文字編輯器去新增一個文字檔.

/etc/sysconfig/cbq/cbq-0003.upload

這個檔案有命名規則,其規則就是 cbq-數字.備註,其中數字不可為0001.

文字檔的內容為:

DEVICE=eth1,100Mbit,10Mbit

RATE=60Kbit

WEIGHT=6Kbit

PRIO=5

MARK=20

cbq-0003.upload
文字檔內容的解釋:

DEVICE=eth1,100Mbit,10Mbit
eth1 這片網卡是NAT server 中接網際網路(INTERNET) 70.67.100.XXX 的網路卡(不要弄錯了你的電腦中接網際網路(INTERNET)的網卡編號不一定是eth1 ),此網路卡為100Mbit的網路卡,而那個10Mbit則是依cbq說明書中說依網路卡為100Mbit除以10所得出的答案填上.

RATE=60Kbit
這個60Kbit的數值就是規定日後各個內部網路的電腦的上傳速度最高為60Kbit.

WEIGHT=6Kbit
這個6Kbit的數值則是依 cbq說明書中說依RATE=60Kbit的60Kbit除以10所得出的答案填上.

PRIO=5
優先權,(數字越大,優先權越小),cbq 說明書說設定為5就可以了.

MARK=20
通知 iptables 的令去處理的標記.

工頭的網路環境圖

nat-network
STEP 5: 去更動 NAT server 中 iptables 內的設定, cbq.init 在 NAT server中對上傳設限時不能按照 cbq.init 說明去做,只能利用下列 iptables 的指令去配合 cbq.init 內的設定才能達成管制下載速度的任務.(這個方法是在 酷學園討論區 內看到的.工頭在此感謝先進無私的貢獻.)使用在文字模式中用vi或其它文字編輯器去新增一行文字在 /etc/rc.local 這個設定檔中.

iptables -t mangle -A FORWARD -o eth1 -s 192.168.1.0/24 -j MARK –set-mark 20

STEP 6: 重新開機,讓新的 iptables 的指令生效後,輸入下列指令去啟動 cbq 的服務.成功的話頻寬管理的設定就啟動了.

cbq start

cbq-start
經過網路公司的測速網站去測上傳速度,我們可以得知在內部網路(LAN)的電腦的上傳速度己經被限制在約65Kbit到60Kbit左右.但NAT server這台電腦是完全不受 cbq 的限制的.
cbq-before-up
輸入下列指令可查看 cbq 的設定情形.

cbq stats

輸入下列指令可中止 cbq 的服務.

cbq stop

雖 然目前網際網路的速度比起數年前可是大有進度,但是依然遠遠追不上應用方向需要的,尤其是在使用經由NAT server去連線上網的環境下,多人共用一個公共的固定IP.若其中有人在使用P2P軟體,上網連線遊戲,看網路電視等,佔去大量網路寬頻的應用時,則 其它人就必須忍受著龜速般的速度上網.為了防止這種少數人會佔據大幅上網頻寬的不公平情形,我們在NAT server中進行頻寬管理( Qos )應該是刻不容緩的事情.

工頭這裏介紹在 Linux Fedora Core 4 的環境中去使用 cbq.init-v0.7.3 這一個程式去做下載的頻寬分配.這是尚未設定 cbq 的連線速度.很遜吧! 沒辦法加拿大的網路又貴又慢. XX(
cbq-before
STEP 1: 先去下列網頁下載 cbq.init-v0.7.3 這個程式,它只是一個文字檔而,所以只有33KB而且.重點是它完全免費.

http://sourceforge.net/projects/cbqinit

STEP 2: 將 cbq.init-v0.7.3 這個程式重新命名為 cbq 然後將這個 cbq 檔案複製到下列檔案夾中.

/sbin

STEP 3: 利用列指令去新增加一個名字叫 cbq 資料夾在 /etc/sysconfig 之內.(用來放我們日後自己寫的頻寬管理的設定檔案.)

mkdir /etc/sysconfig/cbq

STEP 4: 開始用使用在文字模式中用vi或其它文字編輯器去新增一個文字檔.

/etc/sysconfig/cbq/cbq-0002.download

這個檔案有命名規則,其規則就是 cbq-數字.備註,其中數字不可為0001.

文字檔的內容為:

DEVICE=eth0,100Mbit,10Mbit

RATE=200Kbit

WEIGHT=20Kbit

PRIO=5

RULE=192.168.1.0/24

cbq-0002.download
文字檔內容的解釋:

DEVICE=eth0,100Mbit,10Mbit
eth0 這片網卡是NAT server 中接內部網路(LAN) 192.168.1.0/24 的網路卡(不要弄錯了你的電腦中接內部網路(LAN)的網卡編號不一定是eth0 ),此網路卡為100Mbit的網路卡,而那個10Mbit則是依cbq說明書中說依網路卡為100Mbit除以10所得出的答案填上.

RATE=200Kbit
這個200Kbit的數值就是規定日後各個內部網路的電腦的下載速度最高為200Kbit.

WEIGHT=20Kbit
這個20Kbit的數值則是依 cbq說明書中說依RATE=200Kbit的200Kbit除以10所得出的答案填上.

PRIO=5
優先權,(數字越大,優先權越小),cbq 說明書說設定為5就可以了.

RULE=192.168.1.0/24
設定頻寬管理的範圍.

工頭的網路環境圖

nat-network
STEP 5: 輸入下列指令去啟動 cbq 的服務.成功的話頻寬管理的設定就啟動了.完全不必去更動 NAT server 中 iptables 內的設定喔!

cbq start

cbq-start
經過網路公司的測速網站去測下載速度,我們可以得知在內部網路(LAN)的電腦的下載速度己經被限制在約195Kbit到185Kbit左右.但NAT server這台電腦是完全不受 cbq 的限制的.
cbq-down
STEP 6: 輸入下列指令可查看 cbq 的設定情形.

cbq stats

cbq-stats
STEP 7: 輸入下列指令可中止 cbq 的服務.

cbq stop

當 我們在安裝 Linux Fedora Core 4 時,一間始會先分割出一個大約是記憶體RAM二倍大空間的磁碟空間給 Swap 來使用,但是日後我們要加大記憶體才會發現當初規劃的 Swap 磁碟空間不足夠(比實體記憶體還要小.),此時我們可以依照下列方法增加一個 Swap 檔案來頂著用,而不必冒險去分割硬碟的磁區了.因為工頭今天買了一隻512MB的SDRAM,安裝後就會試試去新增 Swap 磁碟空間了.

STEP 1: 先決定您需要新增多大的 Swap 磁碟空間,來決定這個 Swap 檔案的大小為多少.例如:640MB

STEP 2: 以root的身份輸入下列指令.

dd if=/dev/zero of=/swapfile bs=1024 count=655360

STEP 3: 輸入以下指令來使swapfile這個檔案成為 Swap 檔案.

mkswap /swapfile

STEP 4: 啟動這個 Swap 檔案.

swapon /swapfile

STEP 5: 設定在開機時能自動啟動這個 Swap 檔案.使用vi 去編輯/etc/fstab 這個檔案,加入下列內容.

/swapfile   swap   swap   defaults  0  0

STEP 6: 使用top 這個指令去檢查看看 Swap 磁碟空間是否有如預期的增加了.

addswap

下一頁 »