Linux環境ftp搭建及問題總結
環境:centos 7.0
一、安裝軟件
vsftpd - 服務器端
rpm -qa |grep vsftpd
yum -y install vsftpd
ftp 客戶端登錄ftp服務器 或者lftp
yum -y install ftp
二、啟動服務
systemctl restart vsftpd
默認共享目錄為 /var/ftp/pub
三、配置ftp
默認配置文件目錄:/etc/vsftpd/
vsftpd.conf ——vsftpd的核心配置文件
ftpusers ——用戶登陸黑名單
user_list ——用戶登陸白名單:
userlist_deny=no只允許該文件下的用戶登陸
userlist_deny=yes(默認)不允許該文件下的用戶登陸
四、客戶端登錄
終端:ftp 172.20.100.161 -u ftpadmin
網頁:
升級配置:
設置ftp權限 -禁止匿名登錄
將配置文件中”anonymous_enable=YES “改為 “anonymous_enable=NO”
添加ftp賬號
useradd ftpadmin -s /sbin/nologin –d 家目錄(即該用戶的共享目錄) #創建本地禁止登錄用戶,如不存在需要創建並設置共享目錄相應權限
如: chmod -R o+w /var/www/html/
passwd ftpadmin #修改用戶密碼
配置文件常用說明:
anonymous_enable=NO #允許匿名用戶訪問
anon_upload_enable=YES #允許匿名用戶上傳文件並可以創建目錄
anon_mkdir_write_enable=YES
local_enable=YES # 允許本地用戶登錄
local_root=/var/www/html:設置本地用戶的根目錄為/var/www/html
chroot_list_enable=YES:激chroot 功能
chroot_list_file=/etc/vsftpd/chroot_list:設置鎖定用戶在根目錄中的列表文件。此文件存放要鎖定的用戶名 ,使用了chroot需建立/etc/vsftpd/chroot_list 文件,如添加team1 和team2 帳號
設置指定的用戶執行chroot,按照如下方法進行設置:
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
設置後,只有/etc/vsftpd.chroot_list文件中指定的用戶才能夠執行chroot命令。
在使用FTP服務的過程中,可以使該服務在非標準端口(非21端口)工作,不過要完成這項工作,須要使vsftpd服務器運行在獨立啟動方式下,而且要配置vsftpd的主配置文件/etc/vsftpd/vsftpd.conf,將listen_port=10003或者是其他端口號的選項加入該文件即可,然後要重新啟動vsftpd守護進程
常見問題解決:
報錯: vsftpd 530 login incorrect
1.密碼錯誤。
2.檢查/etc/vsftpd/vsftpd.conf配置
vim /etc/vsftpd/vsftpd.con
local_enable=YES
pam_service_name=vsftpd //這裏重要,有人說ubuntu是pam_service_name=ftp,可以試試
userlist_enable=YES
3.檢查/etc/pam.d/vsftpd
vim /etc/pam.d/vsftpd
註釋掉
#auth required pam_shells.so
最後無論哪種情況 重啟試試
sudo service vsftpd restart
基礎命令
進入想要連接的FTP站點後,用戶就可以進行相應的文件傳輸操作了,其中一些重要 的命令及相似的命令 如下:
1、HELP、、RHELP、REMOTEHELP
HELP顯示LOCAL端的命令說明,若不接受則顯示所有可用命令;
?相當於HELP,例如:?CD:
RHELP同HELP,只是它用來顯示REMOTE端的命令說明;
REMOTEHELP相當於RHELP。
2、ASC(ASCll)、bin(BINARY)、IMAGE、TYPE
ASCⅡ切換傳輸模式為文字模式(只能用來傳送DOC文件,因為是7-BIT);
BINARY切換傳輸模式為二進制模式(除文字文件外皆用此模式);
IMAGE相當於BINARY:
TYPE讓你更改或顯示傳輸模式。
3、BYE、QUIT
BYE退出FTP:
QUIT相當於BYE。
4、CD、CDUP、LCD、P~WD、 !
CD改變當前工作目錄,例如:CD\PUB;
CDUP回到上一層目錄,相當於你打CD..:
LCD讓你更改或顯示LOCAL端的工作目錄,例如:LCD\TMP;
PWD顯示的工作目錄(REMOTE端):
!讓你執行外殼命令,例如:!LS。
5、DELETE、MDELETE、RENAME
DELETE刪除REMOTE端的文件:
MDELETE批量刪除文件,需配合?或,*
RENAME更改REMOTE端的文件名。
6、GET、MGET、PUT、MPUT、RECV、SEND
GET下傳文件;
MGET批量下傳文件,需配合萬用字元,例如:MGET*.GZ;
PUT上傳文件;
MPUT批量上傳文件,需配合萬用字元;
RECV相當於GET(RECV為RECEIVE的簡寫):
SEND相當於PUT。
7、HASH、PROMPT、VERBOSE、STATUS、BELL
HASH切換#字號的出現,每一個#字號表示傳送了1024/8192BYTES:
PROMPT切換iNTERACTⅣEON/OFF;
VERBOSE切換所有文件傳輸過程的顯示;
STATUS顯示的一些參數:
BELL當指令做完時會發出叫聲。
8、LS、DIR、MLS、MDIR、MKDIR、RMDIR
LS有點像UNIX下的LS(LIST)命令:
DIR相當於LS-L(LIST-LONG);
MLS只是將遠端某目 錄下的文件存於LOCAL端的某文件裏;
MDIR相當於MLS;
MKDIR像DOS下的MD(創建子目錄)一樣:
RMDIR像DOS下的RD(刪除子目錄)一樣。
9、OPEN、CLOSE、DISCONNECT、USER
OPEN連接某個遠端FTP服務器;
CLOSE關閉連接; DISCONNECT相當於CLOSE;
USER再輸入一次用戶名和口令(有點像UNⅨ下的SU)
Linux環境ftp搭建及問題總結