ubuntu篇---配置FTP服务,本机和docker安装

ubuntu篇---配置FTP服务

  • 一、本机安装
    • [1.1 安装FTP服务器软件](#1.1 安装FTP服务器软件)
    • [1.2 配置FTP服务](#1.2 配置FTP服务)
  • 二、docker安装(我用的这个)
    • [2.1 创建 目录](#2.1 创建 目录)
    • [2.2 启动脚本](#2.2 启动脚本)
    • [2.3 访问](#2.3 访问)
    • [2.4 如何创建一个新的用户](#2.4 如何创建一个新的用户)
    • [2.5 测试](#2.5 测试)
    • [2.6 使用](#2.6 使用)

一、本机安装

1.1 安装FTP服务器软件

  • ubuntu安装vsftp
python 复制代码
sudo apt install vsftpd
  • 查看安装后的版本
python 复制代码
vsftpd --version

1.2 配置FTP服务

  • 为FTP添加用户ftpuser,并设置用户的密码
python 复制代码
sudo useradd -m ftp
sudo passwd uftp
  • 创建ftp的根目录

#这里再/home/uftp/下创建一个ftpdir作为ftp的根目录

  • 配置vsftpd.conf文件
python 复制代码
sudo vim /etc/vsftpd.conf
python 复制代码
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_enable=YES
userlist_deny=NO

local_root=/home/uftp
  • 启动ftp服务
python 复制代码
 sudo service vsftpd start
python 复制代码
sudo service vsftpd status
sudo service vsftpd restart

二、docker安装(我用的这个)

2.1 创建 目录

python 复制代码
mkdir -p /docker/vsftp

2.2 启动脚本

python 复制代码
#!/bin/bash
 
docker run \
--name vsftpd \
-p 20:20 -p 21:21 -p 33361-33365:33361-33365 \
-v ./vsftp/ftpfile:/home/vsftpd \
-e FTP_USER=admin \
-e FTP_PASS=!Admin123 \
-e PASV_ADDRESS=127.0.0.1 \
-e PASV_MIN_PORT=33361 \
-e PASV_MAX_PORT=33365 \
--restart=always \
-d fauria/vsftpd

2.3 访问

python 复制代码
ftp://127.0.0.1        账密 admin/!Admin123

2.4 如何创建一个新的用户

python 复制代码
docker exec -it vsftpd /bin/bash
 
vi /etc/vsftpd/virtual_users.txt
 
# 这里的 admin 用户跟密码是安装的时候创建的
# 这里创建一个新用户
admin
!Admin123
uftp
123456

 
# 保存数据库
/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
 
 
# 设置新用户家目录
mkdir -p /home/vsftpd/uftp
 
# 改变目录权限
chown ftp:ftp /home/vsftpd/uftp/


docker容器中vsftpd修改账号密码

进入容器,直接编辑 /etc/vsftpd/virtual_users.txt,添加用户、修改密码即可

2.5 测试

python 复制代码
ftp 127.0.0.1

2.6 使用

1、连接服务器

格式:ftp [hostname| ip-address]

python 复制代码
ftp 192.168.x.xx

2、下载文件
get

格式:get [remote-file] [local-file]

将文件从远端主机中传送至本地主机中。

如要获取远程服务器上/usr/your/1.htm,则

python 复制代码
ftp> get /usr/your/1.htm 1.htm (回车)

mget

格式:mget [remote-files]

从远端主机接收一批文件至本地主机。

如要获取服务器上/usr/your/下的所有文件,则

python 复制代码
ftp> cd /usr/your/
ftp> mget . (回车)

3、上传文件
put

格式:put local-file [remote-file]

将本地一个文件传送至远端主机中。

如要把本地的1.htm传送到远端主机/usr/your,并改名为2.htm

python 复制代码
ftp> put 1.htm /usr/your/2.htm (回车)

mput

格式:mput local-files

将本地主机中一批文件传送至远端主机。

如要把本地当前目录下所有html文件上传到服务器/usr/your/ 下

python 复制代码
ftp> cd /usr/your (回车)
ftp> mput *.htm (回车)

4、断开连接
bye:中断与服务器的连接。

python 复制代码
ftp> bye (回车)

另外的用法:

python 复制代码
在shell命令行下输入:

    ftp 192.168.x.xx

    根据提示输入正确的用户名和密码即可

常用操作命令(,号不是命令内容)

FTP>open  [ftpservername],和指定的远程Linux FTP服务器连接

FTP>user  [username]  [password],使用指定远程Linux FTP服务器的用户登录

FTP>pwd,显示远程Linux FTP服务器上的当前路径文章地址https://www.yii666.com/blog/144054.html

FTP>ls,列出远程Linux FTP服务器上当前路径下的目录和文件

FTP>dir,列出远程Linux FTP服务器上当前路径下的目录和文件(同上)

FTP>mkdir  [foldname],在远程Linux FTP服务器上当前路径下建立指定目录

FTP>rmdir  [foldname],删除远程Linux FTP服务器上当前路径下的指定目录

FTP>cd  [foldname],更改远程Linux FTP服务器上的工作目录

FTP>delete  [filename],删除远程Linux FTP服务器上指定的文件

FTP>rename  [filename]  [newfilename],重命名远程Linux FTP服务器上指定的文件

FTP>close,从远程Linux FTP服务器断开但保留FTP命令参数提示网址:yii666.com<文章来源地址:https://www.yii666.com/blog/144054.html

FTP>disconnect,从远程Linux FTP服务器断开但保留FTP命令参数提示(同上)

FTP>bye,结束和远程Linux FTP服务器的连接

FTP>quit,结束和远程Linux FTP服务器的连接(同上)

FTP>!,直接从远程Linux FTP服务器进入到本地shell中

FTP>exit,(接上步)从本地shell环境中返回到远程Linux FTP服务器环境下

FTP>!ls,列出本地机器上当前路径下的目录和文件

FTP>lcd  [foldname],更改本地机器的工作目录

FTP>?,显示ftp命令说明网址:yii666.com

FTP>help,显示ftp命令说明(同上)

PS:最好将要进行传输的文件或文件夹的权限设置成775 或777

参考:

相关推荐
HONG_YANG10 分钟前
2025 热门的 Web 化容器部署工具对比:Portainer VS Websoft9
docker
绵绵细雨中的乡音2 小时前
网络基础知识
linux·网络
Peter·Pan爱编程2 小时前
Docker在Linux中安装与使用教程
linux·docker·eureka
kunge20133 小时前
Ubuntu22.04 安装virtualbox7.1
linux·virtualbox
清溪5493 小时前
DVWA中级
linux
Sadsvit4 小时前
源码编译安装LAMP架构并部署WordPress(CentOS 7)
linux·运维·服务器·架构·centos
xiaok4 小时前
为什么 lsof 显示多个 nginx 都在 “使用 443”?
linux
苦学编程的谢4 小时前
Linux
linux·运维·服务器
G_H_S_3_4 小时前
【网络运维】Linux 文本处理利器:sed 命令
linux·运维·网络·操作文本
Linux运维技术栈5 小时前
多系统 Node.js 环境自动化部署脚本:从 Ubuntu 到 CentOS,再到版本自由定制
linux·ubuntu·centos·node.js·自动化