發新話題

限制FTP 伺服器使用者的傳輸速率及連線數量

限制FTP 伺服器使用者的傳輸速率及連線數量

如何限制使用者的傳輸速率
VSFTPD 登入的帳號主要可分為擁有帳號的使用者及匿名登入的使用者, 如果您希望在傳輸檔案時, 讓擁有帳號的使用者享有較快的傳輸速率, 便可以針對匿名使用者及擁有帳號的使用者, 設定不同的傳輸速率, 分別說明如下。

設定匿名使用者的傳輸速率
要限制匿名使用者的傳輸速率, 請編輯 /etc/vsftpd/vsftpd.conf 檔案, 自行加入以下項目:


...
anon_max_rate=5000 ←加上此行, 設定匿名使用者的傳輸速度上限為每秒 5 KB,此處的單位為 bytes

TIP:VSFTPD 預設並不會限制匿名使用者的傳輸速度。

設定完成後, 請重新啟動 VSFTPD。我們以匿名方式登入 FTP 伺服器, 並使用 ncftp 來下載檔案, 看看傳輸的速率是否在限定值內。由於此版 Linux 並未包含 ncftp 這套軟體, 因此我們必須自行從網路上安裝, 請如下操作:
[root@free ~]# rpm -ivh ftp://rpmfind.net/linux/fedora/extras/5/
i386/ncftp-3.1.9-4.fc5.i386.rpm

安裝完後,我們就可以用ncftp登入到伺服器:
[root@free ~]# ncftp 192.168.0.136←筆者採用 NcFTP 登入 FTP 伺服 器, 以便能看到傳輸的速率
NcFTP 3.1.9 (Mar 24, 2005) by Mike Gleason (httt://www.NcFTP.com/contact/).
...
Logged in to 192.168.0.136.
ncftp / > cd upload
Directory successfully changed.
ncftp /upload > get backup.tar.bz2
backup.tar.bz2: ETA: 76:34 0.69/ 27.21 MB 5.07 kB/s←傳輸速率約在 4.7 ~ 5.14 KB/s 之間

設定擁有帳號使用者的傳輸速率
要限制擁有帳號使用者的傳輸速率, 請開啟 /etc/vsftpd/vsftpd.conf 檔案, 自行加入以下項目:
...
local_max_rate=80000←加上此行, 設定擁有帳號使用者的傳輸速度上限為 每秒 80 KB,此處的單位為 bytes

TIP:VSFTPD 預設並不會限制擁有帳號使用者的傳輸速度。

針對個別使用者設定不同的傳輸速率
除了上述限制外, 您還可以針對特定使用者, 來設定傳輸速率。例如 randy 及 tony 上傳了許多軟體套件, 對您的 FTP 站貢獻良多, 您就可以提升他們兩人的傳輸速率;而 fox 卻只知下載, 未曾提供任何資源, 您便可以降低他的傳輸速率。方法很簡單, 我們以設定 tony 的傳輸速率為例作說明, 請先開啟 /etc/vsftpd/vsftpd.conf 檔案, 加入以下項目:
...
user_config_dir=/etc/vsftpd/userconfig←加入此行, 指定儲存個人設定值的目錄為 /etc/vsftpd/userconfig

由於 VSFTPD 預設並未建立 /etc/vsftpd/userconfig 目錄, 所以請再執行以下指令建立 /etc/vsftpd/userconfig 目錄:
[root@ftp ~]# mkdir /etc/vsftpd/userconfig←建立 /etc/vsftpd/userconfig 目錄
[root@ftp ~]# cd /etc/vsftpd/userconfig←切換到該目錄

然後請建立一個名為 tony 的檔案, 並在該檔案中加入以下參數:
local_max_rate=150000←設定 tony 的傳輸速率為每秒 150 KB

TIP:在設定傳輸速率時, 您還需考量到主機連外的頻寬。若網路的頻寬不足, 卻將傳輸速率設的太高, 則會無法達到設定值而失去限速的意義。

設定完成後, 請執行 /etc/rc.d/init.d/vsftpd restart 重新啟動 VSFTPD 即可。

限制 FTP 伺服器的連線數量

設定了傳輸速率, 若同時登入的使用者過多, 還是會拖垮頻寬, 因此, 連線的控管就非常重要了。在 VSFTPD 中, 我們可以設定 FTP 伺服器的最大連線數, 也可以針對每個 IP 的連線數作限制。

設定 FTP 伺服器的最大連線數
若您的 FTP 站時常更新軟體套件, 應該會吸引不少使用者下載檔案, 為避免過多的使用者同時下載檔案, 降低連線品質, 您便可以限制 FTP 伺服器的最大連線數。請開啟 /etc/vsftpd/vsftpd.conf 檔案:
max_clients=50←請自行加上此行, 筆者限制 FTP 最多只允許 50 個連線, 若超過則會被拒絕。預設不會限制最大連線數

設定每個 IP 位址的最大連線數
時間就是金錢, 隨著頻寬的增加, 許多使用者都會利用類似 FlashGet 的下載程式, 除了支援續傳外, 還可一次執行多個下載程序。對使用者來說, 當然是又快又方便, 可是對管理者來說, 一個 IP 同時執行多個下載程序, 相對地增加了伺服器及網路的負擔, 因此我們還可以針對每個 IP 位址限制適當的連線數。請開啟 /etc/vsftpd/vsftpd.conf 檔案:
max_per_ip=2 ←自行加上此行, 筆者限制一個 IP 最多只允許 2 個連線, 若 超過則會被拒絕。預設不會限制每個 IP 位址的最大連線數。

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。