Linux——FTP服务器搭建及访问

2023-11-04

FTP是文件传输协议的英文简称,其用于Internet上的控制文件的双向传输,同时,他也是一个应用程序,基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件,互联网上提供文件存储进而访问服务的计算机,他们依照是FTP协议提供服务! 支持FTP协议的服务器就是FTP服务器。
FTP协议提供存储和传输服务的一套协议,完成“下载”和“上传”,即用户可以通过客户机(自己的主机)程序向远程主机上传(下载)文件。

重点一、安装vsftp服务器软件,并启动
vsftpd是Linux下的一款小巧轻快、安全易用的FTP服务器软件,是受各个Linux发行版推崇的FTP服务器软件。
【安装方式】
法一、yum安装:
yum install -y vsftpd

出现如下图形即代表安装成功在这里插入图片描述
法二、镜像文件下载 rpm安装
====》使用挂载光盘的方式进行下载

  1. 更改Linux系统的挂载镜像文件(.iso文件)
  2. 使用mount命令进行挂载.iso文件(等同于挂载在光盘)
    ==》mount /dev/cdrom /mnt/cdrom
  3. 进入/mnt/cdrom 目录,进行访问即可

【安装命令】:
rpm -ivh rpm安装包

安装rpm包后,以当前主机(虚拟机)为IP地址的ftp服务器搭建完成。
在windows端或者其他客户机上与ftp服务器中间测试联通性
===》ping IP地址
【注意】:一定要在windows端测试联通性

① 常用ftp执行命令详解:

(1)登录ftp服务器:ftp IP地址
(2)单文件上传:put 文件名
(3)多文件上传:put 文件名(常与通配符 * 一起使用)
(4)单文件下载:get 文件名
(5)多文件下载:get 文件名(常与通配符 * 一起使用)
(6)指定目录:lcd [绝对路径]

两种含义:
文件上传时,指定文件的来源
文件下载时,指定文件的去向(目的地)

(7)切换目录:cd
(8)关闭/开启提示:prompt off

② ftp服务配置文件参数详解

配置文件路径: /etc/vsftpd/vdftpd.conf

配置文件选项含义:【加粗的为常用项】

(1)anonymous_enable=YES 是否允许匿名登录(YES/NO ),默认值为YES 。
(2)local_enable=YES
若启动该功能,允许本机使用者(即本地Linux系统帐户)登录,默认值为YES 。
(3)write_enable=YES
该选项可以控制FTP指令是否允许更改file system ,如STOR 、DELE 、RNFR 、RNTO 、MKD 、RMD 、APPE 以及SITE ,取值为YES 或NO 。预设YES 。一般情况下不建议打开该功能。
(4)local_umask=022(即目录访问权限级别)
本机登录者新增文档时的umask 数值,默认值为077 ,这里设置为022 (大部分ftpd 都设置为022 )。
(5)anon_upload_enable=YES
取值为YES/NO 。设置是否允许匿名用户上传文档的权限。需要先由FTP 用户创建一个可写的目录。
(6)anon_mkdir_write_enable=YES
取值为YES/NO 。设置是否允许匿名用户拥有创建新目录的权限。一般不建议放开该权限。
(7)dirmessage_enable=YES
取值为YES/NO 。如果启动该选项,当远程用户输入一个指定目录时,检查该目录下是否有.message 文件。如果有,显示该文件内容。通常这个文件放置欢迎词或该目录的说明。
(8)xferlog_enable=YES
取值为YES/NO 。如果启动,则上传与下载的信息被完整记录在xferlog_file 定义的文件中。
(9)connect_from_port_20=YES
取值为YES/NO。若为YES,则强制ftp_data 的数据传送使用端口 20。
(10)ftp_data_port 20
设置FTP数据传送所用的端口,默认值为20。
(11)11.listen_port 21
设置FTP Server使用的侦听端口,默认值为21。
(12)pasv_max_port 0
建立资料联机可用port 范围的上界,0表示任意,默认值为0。
(13)pasv_min_port 0
建立资料联机可以使用port 范围的下界,0 表示任意,默认值为0 。
(14)chown_uploads=YES
取值为YES/NO 。若设置为YES ,所有匿名上传数据的拥有者被更换为chown_username 中设定的使用者。这样的选项对于FTP 的安全及管理很有用。
(15)chown_username=whoever
定义匿名登录者上传文档时,该文档的拥有者将被置换的用户名称。
(16)xferlog_file=/var/log/vsftpd.log
定义日志文件(log file )的存放位置。
(17)xferlog_std_format=YES
将日志文件定义为标准ftpd xferlog 的格式。
(18)idle_session_timeout=600
空闲时间超时设定,单位为秒。如果超出该时间还没有数据传送或指令输入,则连接中断。
(19)data_connection_timeout=120
数据连接的超时设定,单位是秒。
(20)nopriv_user=ftpsecure
定义运行vsftpd的独立而非特权的系统用户。
(21)async_abor_enable=YES
取值为YES/NO。当设置为YES时,FTP服务器将认可异步ABOR请求。一般不推荐。
(22)ascii_upload_enable=YES
取值为YES/NO 。控制是否可用ASCII 模式上传。
(23)ascii_download_enable=YES
取值为YES/NO 。控制是否可用ASCII 模式下载。
(24)ftpd_banner=Welcome to blah FTP service
定制登录欢迎词。

(25)deny_email_enable=YES
若启动该项功能,可以指定一个文件/etc/vsftpd.banner_emails ,其中包含电子邮件地址列表。若用户用匿名登录,系统将要求输入邮件地址;如果输入的邮件地址在该文档中,则不允许链接。该功能主要用于防范DoS 攻击。
(26)banned_email_file=/etc/vsftpd.banned_emails
文件vsftpd.banned_emails 的存放位置。
(27)chroot_list_enable=YES 【设置用户列表是否访问到上层目录,设置访问权限】
取值为YES/NO 。如果启动该项功能,所有本机使用者登录均可进到根目录之外的目录,列在/etc/vsftpd.chroot_list 中的使用者除外。
【存在于该文件中的用户,不可以访问上级目录,即设置了访问权限;其他用户则访问权限全开放】
(28)chroot_list_file=/etc/vsftpd.chroot_list
文件vsftpd.chroot_list 的存放位置。

==》这个文件默认在/etc下不存在,需要用户自己创建
(29)ls_recurse_enable=YES
取值为YES/NO 。若启动该项功能,允许登录用户者使用ls -R 指令。
(30)pam_service_name=vsftpd
定义PAM 使用的名称。
(31)userlist_enable=YES 【设置登录权限】
取值为YES/NO 。若启动该项功能,则读取/etc/vsftpd.user_list 中的用户名。该项功能可以在询问密码前就出现失败信息,而不需要检验密码的程序。默认值为关闭。

(32)userlist_deny=YES
取值为YES/NO 。该选项只有在userlist_enable 启动时才有效。如果将该选项设置为YES ,则在etc/vsftpd.user_list 中的用户无法登录;若设置为NO ,则只有在 /etc/vsftpd.user_list 中的用户才能登录。该项功能可以在询问密码前就出现错误信息,而不需要检验密码的程序。

(33)listen=YES
取值为YES/NO 。指定是否设置为STANDALONE 模式。若是希望vsftpd 工作在xinetd 模式下,必须设置为NO 。
(34)max_clients=100
最大支持链接数为100 个。
(35)max_per_ip=5
每个IP 最多能支持5 个链接。
(36)tcp_wrappers=YES
取值为YES/NO 。如果设置为YES ,则将vsftpd 与tcp wrapper 结合,即可以在/etc/hosts.allow 与 /etc/hosts.deny 中定义可联机或是拒绝的源地址。

【注意】
修改vsftpd.conf 文件后,需要重新启动服务,vsftpd 才能使得修改生效。

【重启命令】
service vsftpd restart

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux——FTP服务器搭建及访问 的相关文章

  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud
  • 为什么 Linux 原始套接字的 RX 环大小限制为 4GB?

    背景 我试图mmap 我的原始套接字的 RX 环形缓冲区64 bitLinux 应用程序 我的环由 4096 个块组成 每个块大小为 1MB 总共 4GB 请注意 每个 1MB 块中可以有许多帧 如果您好奇 请参阅此文档了解背景信息 htt
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • 有没有一种快速方法可以从 Jar/war 中删除文件,而无需提取 jar 并重新创建它?

    所以我需要从 jar war 文件中删除一个文件 我希望有类似 jar d myjar jar file I donot need txt 的内容 但现在我能看到从 Linux 命令行执行此操作的唯一方法 不使用 WinRAR Winzip
  • FileOutputStream.close() 中的设备 ioctl 不合适

    我有一些代码可以使用以下命令将一些首选项保存到文件中FileOutputStream 这是我已经写了一千遍的标准代码 FileOutputStream out new FileOutputStream file try BufferedOu
  • linux下无法创建僵尸进程

    嗯 我有一个奇怪的问题 我无法在我的项目中创建僵尸进程 但我可以在其他文件中创建僵尸进程 有简单的说明 int main if fork 0 printf Some instructions n else sleep 10 wait 0 r
  • docker 非 root 绑定安装权限,WITH --userns-remap

    all 尝试让绑定安装权限正常工作 我的目标是在容器中绑定安装卷 以便 a 容器不以 root 用户身份运行入口点 二 docker daemon 配置了 userns remap 这样容器 主机上没有 root c 我可以绑定挂载和读 写
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下
  • 如何使用 Cloud Init 挂载未格式化的 EBS 卷

    Context 我正在使用https wiki jenkins io display JENKINS Amazon EC2 Plugin https wiki jenkins io display JENKINS Amazon EC2 Pl
  • 在centos中安装sqlite3 dev和其他包

    我正在尝试使用 cpanel 在 centos 机器上安装 sqlite dev 和其他库 以便能够编译应用程序 我对 debian 比 centos 更熟悉 我知道我需要的库是 libsqlite3 dev libkrb5 dev lib
  • tcpdump 是否受 iptables 过滤影响?

    如果我的开发机器有iptables规则到FORWARD一些数据包 这些数据包是否被 tcpdump 捕获 我有这个问题 因为我知道存在其他链称为INPUT如果数据包路由到 它会过滤发往应用程序的数据包FORWARD链 它会到达吗tcpdum
  • 就分页分段内存而言的程序寿命

    我对 x86 Linux 机器中的分段和分页过程有一个令人困惑的概念 如果有人能澄清从开始到结束所涉及的所有步骤 我们将很高兴 x86 使用分页分段内存技术进行内存管理 任何人都可以解释一下从可执行的 elf 格式文件从硬盘加载到主内存到它
  • Linux 上的 Pervasive ODBC 错误 [01000][unixODBC][驱动程序管理器]无法打开 lib '/usr/local/psql/lib/odbcci.so':找不到文件

    我正在尝试让 Pervasive v10 客户端 ODBC 在 Centos 6 上运行 据我所知 没有 64 位 ODBC 客户端 因此我必须使用 32 位客户端 我终于成功安装了它 但尝试使用时出现以下错误 isql v mydsn 0
  • 静态方法的 Java 内存模型

    我来自操作系统和 C 语言背景 在代码编译时 世界很简单 需要处理和理解堆栈 堆文本部分等 当我开始学习 Java 时 我确实了解 JVM 和垃圾收集器 我对静态方法感到很有趣 根据我的理解 类的所有实例都会在堆中创建 然后被清理 但是 对
  • Mac OS X 上的 /proc/self/cmdline / GetCommandLine 等效项是什么?

    如何在不使用 argc argv 的情况下访问 Mac OS X 上的命令行 在 Linux 上 我会简单地阅读 proc self cmdline or use GetCommandLine在 Windows 上 但我找不到 Mac OS
  • 使用 python 脚本更改 shell 中的工作目录

    我想实现一个用户态命令 它将采用其参数之一 路径 并将目录更改为该目录 程序完成后 我希望 shell 位于该目录中 所以我想实施cd命令 但需要外部程序 可以在 python 脚本中完成还是我必须编写 bash 包装器 Example t
  • 我什么时候应该编写 Linux 内核模块?

    有些人出于某种原因想要将 Linux 中的代码从用户空间移动到内核空间 很多时候 原因似乎是代码应该具有特别高的优先级 或者只是 内核空间更快 这对我来说似乎很奇怪 我什么时候应该考虑编写内核模块 有一套标准吗 我怎样才能激励将代码保存在
  • cdc_acm:无法设置 dtr/rts - 无法与 USB cdc 设备通信

    我试图使用 pic24fj128gb206 枚举 usb cdc 设备 设备似乎已正确枚举 但是当我将设备连接到 Linux PC 时 我从内核收到以下警告消息 cdc acm 1 8 1 6 7 1 0 failed to set dtr
  • ansible unarchive 模块如何查找 tar 二进制文件?

    我正在尝试执行一个 ansible 剧本 该剧本的任务是利用unarchive模块 因为我是在 OSX 上执行此操作 所以我需要使用它gnu tar 而不是bsd tar通常与 OSX 一起提供 因为BSD tar 不受官方支持 https

随机推荐

  • 解决vmware 本地连接时出错:地址仍未与网络终结点关联

    场景 使用vmware创建了server2008的虚拟机 使用的桥接模式 桥接模式是选择的自己的wifi网卡 虚拟机启动后发现无法联网 ipconfig查看 下图 发现ip地址段就不对 应该是192 168 1 尝试释放ip或者获取新的ip
  • python实现斐波拉契数列函数

    简单介绍一下 斐波拉契数列 斐波那契数列 Fibonacci sequence 又称黄金分割数列 因数学家莱昂纳多 斐波那契 Leonardoda Fibonacci 以兔子繁殖为例子而引入 故又称为 兔子数列 指的是这样一个数列 0 1
  • 企业架构LNMP学习笔记10

    1 Nginx版本 在实际的业务场景中 需要使用软件新版本的功能 特性 就需要对原有软件进行升级或重装系统 Nginx的版本需要升级迭代 那么如何进行升级呢 线上服务器如何升级 我们选择稳定版本 从nginx的1 14版本升级到nginx的
  • Git的简介和使用

    本文来自数据学习网 https www datalearner com 专注于机器学习方法 数据挖掘技术和编程技术 原文地址 https www datalearner com blog 1051521123408432 Git是一个版本控
  • IOException异常的处理方式

    首先看一段代码 这段代码有明显的IO异常 一般我们的做法是捕获异常 public static void main String args try 文件可能不存在 FileWriter fw new FileWriter W demo tx
  • 第5章 团队开发管理-测验题-作业

    1 在软件开发的各种资源中 D 是最重要的资源 A开发工具 B方法 C硬件环境 D人员 2 在攻克技术难题时 最佳的开发团队组织模型是 A A民主式结构 B主程序员式结构 C矩阵式结构 D以上所有选项都不是 3 在选择开发团队组织结构时应考
  • Java高级系列——异常(Exception)

    在解释Java中的异常时 首先我们来看一张图 上图是我们Java中 异常类的一个继承关系图 从图中我们可以看到Java标准库内构建的这些通用的异常 他们都是以Throwable为顶层父类 Throwable又派生出Error类和Except
  • 【idea】指定要排除拼写检查的单词

    问题 在使用idea的时候会自动检查我们的单词拼写是否错误 这是个方便又不方便的功能 因为我们有时候会使用一些特殊的命名 比如 AlipayConfig 那现在我们来修改一下设置 方法 1 鼠标悬停在该单词上 按 Alt enter组合键
  • mysql c3p0 参数_mysql Communications link failure,C3p0的参数详解

    MySQL默认一个连接空闲8小时候就会自动断开 而这时程序以为连接还能使用 然后在使用的时候就会出现Communications link failure异常 这时需要进行两步设置 有时候只设置MySQL就可以了 一 在MySQL的配置文件
  • Java开源的规则引擎 Drools 电商行业实战(含完整代码)

    前言 我所在项目组刚好接到一个领取优惠券需求 具体需求是用户领取的各种类型的优惠券 比如 代金券 折扣券 数量不能超过某个自定义数量 因考虑到领取限制数量是动态的 另外考虑到扩展性 满足将来业务规则的增长 不只是限制领取数需要新加其他条件
  • 2023年信号处理与机器学习国际研讨会(WSPML 2023)

    会议简介 Brief Introduction 2023年信号处理与机器学习国际研讨会 WSPML 2023 会议时间 2023年9月22 24日 召开地点 中国 杭州 大会官网 www wspml org 2023年信号处理与机器学习国际
  • 【目标检测适用】批量修改xml文件中的name字段

    前言 使用labelimg进行标注的时候 由于都是用的是默认的名称 有时候类的名字会出现拼写错误 比如我想要写的是 cow 结果打上去的是 cwo 一出错就错一片 这很常见 所以参考了 https www jianshu com p cf1
  • MySQL基础之DCL语句

    DCL Data Control Language 语句 数据控制语句 用途 控制数据库 表 字段 用户的访问权限和安全级别 常用关键字 grant revoke等 一般用于管理数据库和用户的权限 通过实用例子来学习grant 分配权限 和
  • vue禁止长按屏幕复制内容

    App vue 禁止长按屏幕复制内容 webkit touch callout none webkit user select none moz user select none ms user select none user selec
  • 【HTML】HTML面试知识梳理

    目录 DOCTYPE 文章类型 head标签 浏览器乱码的原因及解决 常用的meta标签与SEO script标签中defer和async的区别 src href区别 HTML5有哪些更新 语义化标签 媒体标签 表单 进度条 度量器 DOM
  • 刷脸支付降低实现数字商业的难度

    移动支付和银行卡支付没有办法确定使用者到底是谁 因为可以和家人等共同使用 刷脸支付可以确定消费实体是谁 定位到具体人确定数据标签 一位新零售从业者认为 刷脸支付除了提供更便捷的支付服务外 还可以提供更多的商业数据用于精细化经营 从垂直领域来
  • Java并发基础知识

    基础概念 什么是进程和线程 进程是程序运行资源分配的最小单位 是具有一定独立功能的程序关于某个数据集合上的一次运行活动 进程是系统进行资源分配和调度的一个独立单位 线程是 CPU 调度的最小单位 必须依赖于进程而存在 与同属一个进程的其 他
  • CUDA之矩阵乘法——globalmemory

    CUDA 矩阵乘法 使用global memory 报错 错误 17 error no instance of overloaded function cudaMalloc matches the argument list E Niki
  • Python requests实现图片上传接口自动化测试

    最近帮别人写个小需求 需要本地自动化截图 然后图片自动化上传到又拍云 实现自动截图非常简单 在这里就不详细介绍了 主要和大家写下 如何通过Python requests实现上传本地图片到又拍云服务器 话不多说 因为我们要使用requests
  • Linux——FTP服务器搭建及访问

    FTP是文件传输协议的英文简称 其用于Internet上的控制文件的双向传输 同时 他也是一个应用程序 基于不同的操作系统有不同的FTP应用程序 而所有这些应用程序都遵守同一种协议以传输文件 互联网上提供文件存储进而访问服务的计算机 他们依