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

 

posted @ 2019-07-22 12:00  逐梦客!  阅读(3500)  评论(0编辑  收藏  举报