当前位置: 首页 > article >正文

银河麒麟桌面操作系统搭建FTP服务器

一、操作环境

服务端:银河麒麟桌面操作系统V10

客户端:银河麒麟桌面操作系统V10

二、服务器配置

说明:以下命令均在终端执行。鼠标点击桌面右键,在终端中打开。

操作步骤:

(一)安装vsftpd软件

sudo apt-get install vsftpd

系统会提示输入密码,请输入开机密码。

如下图所示,表示vsftpd安装成功。但是,作者在安装的时候遇到了一个错误:有不满足的依赖关系。解决方法放在了文末。

(二)设置开机启动

sudo systemctl enable vsftpd

(三)启动FTP服务

systemctl start vsftpd

查看其运行状态

systemctl status vsftpd

(四)创建FTP用户

创建用户名:ftpadmin

sudo useradd -d /home/ht/ftp/ftp_root -m ftpadmin

useradd命令的-d-m参数分别用于指定用户的主

目录和自动创建该目录。如果创建失败,则自行在对应目录创建文件夹。

设置用户名密码:ftp123456

sudo passwd ftpadmin

之后就输入密码ftp123456即可。

设置文件目录权限。

sudo chmod -R 777 /home/ht/ftp/ftp_root

(五)修改配置文件

sudo pluma /etc/vsftpd.conf

按下面内容进行修改:

listen=NO # 阻止 vsftpd 在独立模式下运行
listen_ipv6=YES # vsftpd 将监听 ipv6 而不是 IPv4,您可以根据您的网络情况设置
anonymous_enable=NO # 关闭匿名登录
local_enable=YES # 允许本地用户登录
write_enable=YES # 启用可以修改文件的 FTP 命令
local_umask=022 # 本地用户创建文件的 umask 值
dirmessage_enable=YES # 当用户第一次进入新目录时显示提示消息
xferlog_enable=YES # 一个存有详细的上传和下载信息的日志文件
connect_from_port_20=YES # 在服务器上针对 PORT 类型的连接使用端口 20(FTP 数据)
xferlog_std_format=YES # 保持标准日志文件格式
pam_service_name=ftp # vsftpd 将使用的 PAM 验证设备的名字

最后一个行的pam_service_name=ftp是重点,V10系统的值是ftp,SP1的值是vsftpd,不能出错。

在配置文件最后增加访问白名单参数,添加以下信息:

userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.allowed_users

保存退出文件。

(六)新建白名单列表

sudo pluma /etc/vsftpd.allowed_users

输入ftpadmin后保存退出。

(七)重启服务

systemctl restart vsftpd

三、客户端连接测试FTP服务器

1.打开浏览器,在地址栏输入:ftp://服务端IP

服务器端测试可以输入:ftp://localhost

出现如下登录窗口,说明FTP服务部署成功,可以用输入用户名和密码登录FTP。

2.除了用浏览器访问FTP服务器,还可以使用“FTP客户端”来访问。可以到软件商店搜索安装该软件。

3.在使用过程中,可以设置下载限速,以防止把带宽占满,影响使用。

4.若服务拒绝连接,可以尝试打开 安全中心 / 网络保护 / 应用程序联网,关闭。

四、解决安装错误

作者在安装时遇到一个错误:有不满足的依赖关系。这意味着我们安装的软件包需要其他特定的软件包作为依赖,而这些依赖没有在系统上正确安装或者更新到合适的版本。

按照以下步骤解决这个问题:

1.更新系统软件源:

sudo apt-get update

2.修复依赖关系:

sudo apt-get -f install

3.如果依然解决不了问题,继续执行以下命令:

安装缺失的依赖:

sudo apt-get install -f

清理不需要的包:

sudo apt-get autoremove
sudo apt-get autoclean


http://www.kler.cn/a/502230.html

相关文章:

  • 51单片机入门基础
  • springboot vue uniapp 仿小红书 1:1 还原 (含源码演示)
  • 【Python】Python与C的区别
  • qt-C++笔记之自定义继承类初始化时涉及到parents的初始化
  • c#版本、.net版本、visual studio版本之间的对应关系
  • Linux : Linux环境开发工具vim / gcc / makefile / gdb / git的使用
  • 热烈祝贺“钛然科技”选择使用订单日记
  • 国产信创3D- 中望3D Linux 2025发布,助力企业高效转型国产三维CAD
  • 【论文笔记】多个大规模数据集上的SOTA绝对位姿回归方法:Reloc3r
  • 基于springboot+vue的 嗨玩-旅游网站
  • 方法引用与lambda底层原理Java方法引用、lambda能被序列化么?
  • Vue 3前端与Python(Django)后端接口简单示例
  • 74.搜索二维矩阵 python
  • HTTP 常用方法解析
  • CES Asia 2025:科技盛宴即将开启,续写辉煌篇章
  • 快速、简单的2D-6D位姿估计:Gen6D算法复现 (pytorch 1.12.1 + cu113)
  • <C++> XlsxWriter写EXCEL
  • redis——无锁的原子操作Lua
  • IOS网络协议HTTP
  • 备战蓝桥杯:树的存储与遍历(dfs和bfs)
  • lerna使用指南
  • Android中的Service
  • Docker的CMD指令
  • VMware虚拟机安装Home Assistant智能家居平台并实现远程访问保姆级教程
  • Android切换语言不退出App
  • 一个可以把玩的针对WebSocket分段的处理方案