Ubuntu 18.04 FTP服務器搭建


安裝

sudo apt-get install vsftpd

配置

sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bak
sudo vim /etc/vsftpd.conf

vsftpd.conf

anonymous_enable=NO

#讓本地賬號可以訪問
local_enable=YES #允許本地用戶登陸
write_enable=YES #寫權限
local_umask=022
Passive mode
pasv_enable=YES    ;允許被動模式
pasv_min_port=41000
pasv_max_port=42000

#流量控制
max_clients=100     ; 允許的最大連接數,定義為100,默認為0,表沒有限制
max_per_ip=5          ; 每個IP允許的連接數,0表沒有限制,需要運行於獨立模式方可
local_max_rate=200000 ;用戶寬帶限制 200k

#鎖定目錄
chroot_local_user=YES     ;禁止用戶離開主目錄
chroot_list_enable=NO
#chroot_list_enable=YES # 如果啟動這項功能,則所有列在chroot_list_file之中的使用者不能更改根目錄
#chroot_list_file=/etc/vsftpd/chroot_list  # 指定限制的用戶文件
allow_writeable_chroot=YES
#listen=YES  # ftp服務器將處於獨立啟動模式
local_root=/home/ftp  # 設置一個本地用戶登錄后進入到的目錄


# 其它
dirmessage_enable=YES
xferlog_enable=YES

# 允許虛擬用戶
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd_user_conf
pam_service_name=vsftpd.vu
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
anon_max_rate=50000  ;匿名用戶最大帶寬,單位為bps

root賬號登錄

1、vim /etc/ftpusers
2、注釋掉 root 用戶

添加用戶,分配權限

添加目錄

mkdir /home/ftp # 創建根目錄
mkdir /home/ftp/data # 創建子目錄
chmod -R 777 /home/ftp # 修改ftp這個目錄的權限

添加用戶
touch /etc/vsftpd/allowed_users # 創建一個文件allowed_users,添加完用戶有寫入改文件
useradd -d /home/ftp/data -s /sbin/nologin zhangxw # 添加訪問用戶
passwd zhangxw # 設置該用戶的密碼

刪除用戶
userdel zhangxw # 刪除ftp某個用戶

多用戶多權限FTP

chmod 755 /var/ftp # 更改根目錄訪問權限
#添加用戶 ftp_pub 並設置歸屬用戶組為 ftp-g 以及設置缺省目錄(FTP登陸目錄)
useradd -g ftp -d /home/ftp/user1 user1
passwd user1
chown user1:ftp /home/ftp/user1  # 更改文件所有者
mkdir /var/ftp/user1    # 創建目錄
chmod -R ug=rw,o= /var/ftp/user1  # 更改權限

常用命令

sudo service vsftpd start # 啟動
sudo service vsftpd status  # 查看vsftpd的狀態
sudo service vsftpd restart
ftp ip #登錄,例如ftp 1.1.1.1 
cd # 目錄切換
ls|dir #列出當下目錄中文件內容
quit|close|bye # 退出
get|mget 目的文件 下載位置 #下載文件,get下載單個文件,mget下載多個文件.*.*代表所有文件
put local_filt remote_fil # 上傳文件

Connect to FTP server

$ ftp ftp-server-ip
Connected to ubuntu-ftp.
220 (vsFTPd 3.0.3)
Name (ubuntu-ftp:lubos): ftpuser
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 0        0              12 Feb 15 08:34 FTP-TEST
-rw-r--r--    1 1001     1001         8980 Apr 20  2016 examples.desktop
226 Directory send OK.
ftp> 

Open Nautilus and click on Other Locations. Enter ftp://FTP-SERVER-HOSTNAME-OR-IP-ADDRESS and click Connect.

FTP 瀏覽器訪問地址:

ftp:ip

通過外網端口映射訪問FTP

首先了解,FTP使用兩個端口進行通信。一個作為控制端口(登陸用),一個作為數據傳輸端口。

主動模式:客戶端請求21 20兩個固定端口進行連接。所以如果要經過外網映射用主動模式通信的話除非把外網端口21映射為內網的21,外網的20映射為內網的20才行。

被動模式:客戶端連接到服務器21端口后,服務器返回一個任意>1024的端口給客戶端,客戶端連接此數據端口。

1)port方式:主動模式
port(主動)方式的連接過程是:
客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。
當需要傳送數據時,服務器從20端口向客戶端的空閑端口發送連接請求,建立一條數據鏈路來傳送數據。

2)pasv方式:被動模式
pasv(被動)方式的連接過程是:
客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。
當需要傳送數據時,客戶端向服務器的空閑端口發送連接請求,建立一條數據鏈路來傳送數據

問題:裝好VSFTP后,FTP不能使用,提示PASV模式失敗,嘗試PORT模式。

原因:iptables防火牆擋住了PASV的端口

解決:修改VSFTP配置文件,開放防火牆端口

1.打開VSFTP配置文件

vi /etc/vsftpd/vsftpd.conf

未尾添加:

pasv_enable=YES # 設置是否允許pasv模式
pasv_min_port=40000 # pasv使用的最小端口
pasv_max_port=40080 # pasv使用的最大端口
pasv_promiscuous=YES # 是否屏蔽對pasv進行安全檢查,(當有安全隧道時可禁用)

2.打開iptables文件

vi /etc/sysconfig/iptables

加入:

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 40000:40080 -j ACCEPT

第三方工具

使用Xftp工具。相信很多使用Linux服務的小伙伴都知道這個工具。具體的安裝、下載就不多說了,比較簡單。下面是它的使用。

打開這個工具,新建一個連接,具體的配置,如下圖所示,

參考地址

https://linuxconfig.org/how-to-setup-ftp-server-on-ubuntu-18-04-bionic-beaver-with-vsftpd 

通過外網端口映射訪問FTP 作者:Lubos Rendek原文鏈接:https://blog.csdn.net/geqiandebei/article/details/45886843

 https://blog.csdn.net/hajistark/article/details/82954777

https://www.cnblogs.com/spaceship9/archive/2013/06/27/3159243.html

作者:「zxw136511485」 原文鏈接:https://blog.csdn.net/zxw136511485/article/details/79460671

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM