FreeBSD 內建有 FTP 伺服器的功能,如果要使用內建的 ftpd,不需要安裝,只要做好設定即可。
啟動 FTP 伺服器我們有二種方式啟動 ftpd,一種是使用 standalone daemon,另一種是使用 inetd。 inetd 是 UNIX 系統中一個強大的「超級伺服器」,我們可以使用它來管理許多系統服務,例如 telnet、ssh、ftp 等。大部份的系統服務都是使用 inetd 來啟動,使用它的好處在於可以統一管理各種服務,並經由它來設定服務規則,例如是否要阻擋某些 IP 來源等。不過,使用 inetd 的方式缺點是每次有連線需求時,inetd 的 daemon 必須依連線的種類去執行相對映的指令,所以速度比較慢。
另一個啟動FTP 的方式是使用standalone daemon,也就是直接執行FTP daemon,當它接收到新的聯機時,就fork() 出來處理,這種方式聯機建立的速度較快,比較適合專門的FTP 伺服器。
使用 inetd我們先來介紹如何使用 inetd 的方式啟動 FTP 伺服器。首先,請編輯 /etc/inetd.conf,將 ftp 設定開頭的 # 移除:
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l<br>
ftp stream tcp6 nowait root /usr/libexec/ftpd ftpd -l
接下來,我們必須使用下列指令重跑 inetd:
# kill -1 `cat /var/run/inetd.pid`
(該命令基於已經運行了inetd)如果沒有運行ftp伺服器,則Alt F2裡輸入: inetd 現在您就可以開始使用 FreeBSD 的 FTP 服務。
!/bin/sh<br>
ftpd_program="/usr/libexec/ftpd"<br>
ftpd_flags="-D -l"<br>
case $1 in<br>
start)<br>
echo "Starting FTPD"<br>
$ftpd_program $ftpd_flags<br>
;;<br>
stop)<br>
echo "Stopping FTPD"<br>
killall ftpd<br>
;;<br>
restart)<br>
$0 stop<br>
sleep 1<br>
$0 start<br>
;;<br>
esac
編輯完後,我們必須將該檔案變成可執行:
# chmod 755 /usr/local/etc/rc.d/ftpd<br>#
接下來,您就可以使用下列指令啟動 FTPD 了:<br>
# /usr/local/etc/rc.d/ftpd start 或<br>
# service ftpd start
#
如果您要停止 FTPD 服務,請使用下列指令:
# /usr/local/etc/rc.d/ftpd stop
當我們連線到一個 FTP 站台時,我們可以看到兩個歡迎訊息,一個是登入前的訊息,另一個是登入後的訊息。以下列訊息為例:
ftp localhost Trying ::1...<br>
Connected to localhost.alexwang.com.<br>
220- Welcome to My FTP Server.<br>
220-<br>
220- This is a welcome message<br>
220-<br>
220- Nice to see you.<br>
220 vmware.alexwang.com FTP server (Version 6.00LS) ready.<br>
Name (localhost:alex):<br>
331 Password required for alex.<br>
Password:<br>
230- This is the message of the day.<br>
230-<br>
230- It will be shown after user login.<br>
230 User alex logged in.<br>
Remote system type is UNIX.<br>
Using binary mode to transfer files.<br>
ftp>
開頭為 220- 的就是登入前的訊息,我們稱它為歡迎訊息。以 230- 為開頭的是登入後的訊息,我們稱它為本日訊息 (Message of the day)。這二種訊息我們都可以自行設定。如果您要設定的是登入前的訊息,請新增一個檔案 /etc/ftpwelcome,並將您的訊息寫入該檔案中。以下為上述範例中的訊息內容:
Welcome to My FTP Server.<br>
This is a welcome message<br>
Nice to see you.
#
您不需要寫 220- 等數據,FTP 伺服器會自動幫您加上這種程式碼。而登入後的訊息是存放在 /etc/ftpmotd,您可以編輯該檔以進行設定。
以上是FreeBSD 設定FTP服務的詳細內容。更多資訊請關注PHP中文網其他相關文章!