前言:本文是网友们的成果,也是这位新手实践探索的成果。我在CSDN、百度、B站等各大网站上进行了有限的搜索,但还没有看到完全适配的答案。
如果你也是国产笔记本的受益者,同时也在寻找安装和配置FTP服务器的方法,而Linux系统的基础还不扎实,那么你找对地方了。本案例已经在真机上稳定运行了1个月,依然稳定运行。
欢迎交流,基于国内笔记本更多其他软件工具的安装配置,提高办公效率。
目录
一、计算机基本信息
Galaxy Kylin 版本:kylinV10 版权所有 KylinOS
系统内核:
Linux4.4.131-20210120.kylin.desktop-generic-aarch64-with-Kylin-v10-juniper
CPU: Phytium, FT-2000/4 (64 bits, 4 core)
注意:用于验证对比操作环境的差异。只要我们是同行,通常没有区别,但一定是银河麒麟系列系统。我单位也有同心系统的国产笔记本(可能不适用)
二、安装 FTP
通常笔记本电脑会附带安装它。CTRL+ALT+T 打开终端。
1.进入vsftpd(还是没有安装结果)
显示如下信息,表示未安装。
根据提示,再次输入 sudoaptinstallvsftpd
输入用户密码(自己)
等待安装结束(一堆)——安装结束。
2.输入vsftpd(结果安装)
显示如下信息,表示程序已经存在(安装成功),缺少一个文件(下一步会进行文件配置)
别着急,可以再次输入vsftpd -v
显示如下信息,我的版本是3.0.3。表示3.0.3的vsftpd安装成功
注:“程序名”+“空格”+“-v”,可以查询程序的版本,基本所有程序通用。
三、配置FTP(1)更改VSFTPD配置文件(vsftpd.conf)1.找到vsftpd.conf文件
一般在系统盘的etc文件夹下,
注意:不同的操作系统会有一些差异,这个配置文件的名字是一样的。如果找不到,可以在系统盘中搜索,记住或者复制路径。
2.更改 vsftpd.conf 文件
在终端输入 vim/etc/vsftpd.conf
代码可以单步进入配置文件进行修改(如果没有vim,可以使用vi)
3.更改vsftpd.conf文件的参数
黑色的内容是为了解释,方便别人理解。红色内容是程序的参数。
配置文件的初始参数如下:(可略过)
听=否
listen_ipv6=是
匿名启用=否
local_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=是
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=否
经过自己摸索(网上各种教程和讲解)和需求(设置多个虚拟用户,为虚拟用户配置不同权限,适合局域网FTP),配置了如下参数(逐行解释),按步骤 i 进入编辑状态。
听=是
听地址=192.168.***.***
监听端口=5021
connect_from_port_20=是
#开始窃听IPV4地址
#窃听地址:自己笔记本电脑的IP地址
#窃听端口:默认为21,建议改大一点,让别人更难发现。
#确保数据端口为20。电路中以强电流控制弱电流是一种逻辑。21端口为信息端口,接受连接、登录、下线等各种控制信息。20端口是数据端口,上传和下载的文件都是通过这个端口传输的。
local_enable=YES
write_enable=YES
local_umask=022
#允许本地用户登录。设置的多个虚拟用户需要集中在一个本地用户中。
# 允许写入更改功能。
#本地用户的网段:022对应本地用户创建新目录和文件的权限755。网段级别对应权限级别(如有特殊需要可相应更改),使用默认值022即可.
anon_upload_enable=否
anon_mkdir_write_enable=否
#匿名用户上传文件:拒绝
#匿名用户创建更改文件:拒绝。我们处于虚拟用户模式,需要帐户和密码才能登录。
pasv_enable=YES
pasv_min_port=50210
pasv_max_port=50310
pasv_address=192.168.***.***
# 启动被动(PASV)模式。网上查询后,有主动和被动两种模式,其中被动模式比较适合。被动模式:客户端找到具有开放端口的服务器。主动模式:服务器正在寻找具有开放端口的客户端。网上解释:由于大部分客户端都在路由器旁边,没有独立的网段IP地址,服务器主动连接客户端太难了。在当今真实的互联网环境中,要完成任务几乎是不可能的。简单来说:一个单位的人联系另一个单位很容易(只要查地址),但一个单位的人找另一个单位的人很麻烦(你必须通过固定的先取单位行,再取人名。
#标语的最低一行是多少。
# 标语的最高线是客户可以连接的内容
#被动模式下,客户端查找服务器的地址。
dirmessage_enable=YES
#启动后,首次登录FTP时,系统会手动扫描目录,找到.message文件,并显示.message文件上的信息。如果没有,则不会显示,也没有效果。如果您想举行一个很酷的欢迎仪式,请进行一些研究。
use_localtime=YES
#启用当地时间。通常使用当地时间。在有国际业务和时差的地区,可以注意这个设置参数。
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/vsftpd.log
#启动日志功能,可以看到用户上传下载信息。
#启用标准日志格式。
#日志文件vsftpd.log的存放路径/var/log/vsftpd.log,喜欢存放在哪里,可以自定义。
tcp_wrappers=YES
#启用IP黑白名单。只有两个配置(允许、拒绝)文件:/etc/hosts.allow 和 /etc/hosts.deny
chown_uploads=否
#NO=禁止上传文件修改主机,YES=允许上传文件修改主机
idle_session_timeout=360000
data_connection_timeout=360000
#多少秒,信号口静默启动。我什至什么都不做,占用我的服务器资源,一脚踢开。
#超过多少秒,数据端口静默启动。下载的后半部分掉线了,停了一会儿下载,就开始了。
guest_enable=YES
来宾_用户名=vur
virtual_use_local_privs=YES
allow_writeable_chroot=YES
user_config_dir=/etc/vsftpd/vconf
#启动虚拟用户模式。
#设置的虚拟用户集中映射到vur本地用户。虚拟灵魂需要一个真实的载体。
#虚拟用户和本地用户可以拥有相同的权限。
#不允许虚拟用户离开自己的访问根目录。修改虚拟用户的配置文件可以满足不同的需求,比如不同的权限,不同的访问目录。
#vsftpd目录下专门构建的vconf目录,用于存放各个虚拟用户对应的配置文件。我们现在编辑的是主配置文件,虚拟用户配置文件是之前编辑的。
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
#用户将被限制在其用户的主目录中,不允许跳出。
#启用列表通行证系统。YES 启用白名单。NO 启动黑名单。chroot_local_user和chroot_list_enable的不同组合可以带来四种功能。1.列表中的用户受到限制。2.列表中的用户不受限制。3.列表之外的用户被限制。4.列表外的用户不受限制。
#vsftpd.chroot_list 列表文件的存储路径 /etc/vsftpd.chroot_list 也存放在你喜欢的任何地方。如果你没有这个文件,你必须创建一个同名的文件(TXT格式也可以,每行放一个用户名)。(我的笔记本的列表文件是空的,设置为孤独。而且不影响使用的安全,因为虚拟用户无法跳出FTP的根目录。)
ascii_upload_enable=YES
ascii_download_enable=YES
#允许以 ASCII 编码上传文件。
#允许以 ASCII 编码下载文件。
ls_recurse_enable=否
# 不允许使用命令“ls-R”。ls 是列出目录的命令,ls -R 是列出所有目录和所有文件的命令。对于一个小型的 FTP 服务器来说,上面有很多目录和很多文件。如果所有进来的人都要列出服务器上所有的目录和文件,最后只下载一个文件,服务器就会崩溃,你在玩我。
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
#认证机制
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=否
#上面三行参数没有改,实际使用也没有搞懂,所以不影响现有的需求。
utf8_filesystem=YES
#启用utf8编码模式。统一标准可以避免上传或下载文件的英文名称出现乱码。
(2)添加本地用户vur
在终端输入addusvur,根据提示输入相关信息(连续回车),创建本地用户vur。
注意:由于虚拟用户需要集中映射到本地用户,所以需要创建本地用户vur。vur这个名字比较常用(大家可以随意改,配置文件需要同步改),翻译过来也是virtual virtualuser。
(3)配置账号密码认证机制1.搭建FTP目录和账号密码文件
终端输入:cd /etc
#跳转到etc目录
mkdirvsftpd
#创建一个名为vsftpd的目录
cdvsftpd
#跳转到vsftpd目录
vimvur_list
#创建一个vur_list文件(txt)并打开进行编辑。取名为vur_list,方便管理和记忆。vur 是本地用户名c ftp下载文件到本地,_list 是列表文件的意思。
按 i 进入编辑模式。
第一行是虚拟用户1的账号,第二行是虚拟用户1的密码。
第三行是虚拟用户2的账号,第四行是虚拟用户2的密码。
往这边推
按ESC退出编辑模式,输入:wq,保存退出。
2. 将TXT文件转换为db库文件
将 vur_list 文本文件转换为 vur_list.db 数据库文件
使用 db_load 命令使用 HASH 算法从帐户密码文本文件 (vur_list) 生成 FTP 用户数据库文件 (vur_list.db)
在 vsftpd 目录下的终端中,输入:
db_load-T-thash-fvur_list.txtvur_list.db
没有安装 db_load 程序,没关系。
直接输入命令安装:aptinstalldb-util
3.授予数据库文件权限以防止其他用户查看密码。
以 root 身份使用 chmod 命令授权 vur_list.db。
chmod600 /etc/vsftpd/vur_list.db
600 表示没有其他人可以读取或写入
4.为 vsftpd 配置 PAM 认证文件。
在pam.d目录下(我的是在etc目录下),找到vsftpd,一般都是可以的。
vim/etc/pam.d/vsftpd
这个文件是一个内置的命令参数。现在需要用#注释掉所有命令行,然后输入以下参数。
authrequiredpam_userdb.sodb=/etc/vsftpd/vur_list
accountrequiredpam_userdb.sodb=/etc/vsftpd/vur_list
#你的vur_list.db在那里,路径连接在那里c ftp下载文件到本地,连接的时候需要去掉.db,因为这里的db=指定了文件类型。两种认证(auth、account)被激活
auth:主要接受用户名和密码,从而验证用户的密码,并负责设置用户的一些机密信息。
账号:主要检测账号是否允许登录系统,账号是否已经过期,账号登录是否有时间限制等。
:wq,保存退出
(图片未改动,以文字为准)
(4)为虚拟用户配置conf配置文件
在 /etc/vsftpd 目录中,创建 vconf 目录。应与主配置文件(user_config_dir=/etc/vsftpd/vconf)的一行参数一致。此处创建的配置用户配置文件的文件名必须与之前创建的用户名相同。
1.为 nyjbgs 用户创建配置文件
在终端/etc/vsftpd/vconf目录下,输入vimnyjbgs
#为用户1创建配置文件并打开编辑
配置内容如下:
local_umask=022
write_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_upload_enable=YES
anon_world_readable_only=否
local_root=/home/FTP
allow_writeable_chroot=YES
2.为 dayinji 用户创建个人资料
终端在/etc/vsftpd/vconf目录下,输入vimdayinji
#为用户1创建配置文件并打开编辑
配置内容如下:
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_world_readable_only=否
下载启用=否
local_root=/home/FTP
allow_writeable_chroot=YES
(5)设置FTP文件的访问权限。
要确保其他用户可以访问,请授予 rwxr-xr-x 权限:
chownvur:vur/home/FTP
chmod -R777 /home/FTP
三位数字分别对应所有者、群组、其他
三个有意义的权限是:0、5、7
0(没有任何权限)
5(读取和执行,基本权限)
7(读、写、执行,最高权限)
-R 表示对目录及其子目录进行授权操作。
四、其他FTP相关命令1.相关命令
systemctlenablevsftpd 打开
systemctlstartvsftpd 启动
systemctlstopvsftpd 停止
systemctlrestartvsftpd 重启
systemctlstatusvsftpd 查询状态
netstat-antup|grepftp 在端口中,查询 FTP 关键字,并以缩写形式显示。
2.开机时自动启动 vsftpd
修改/etc/rc.local(常用)
vim/etc/rc.local
关键是找到那里的rc.local文件,随便搜一下,我的运行环境在/etc目录下。中间的路径直接粘贴复制。
意思是所有的启动都启动后,执行下面的代码命令。
在exit0的上一行添加systemctlstartvsftpd,保存退出。
重启后直接查询启动状态,如果是激活的,说明设置成功。
3.服务器的防火墙
我们的笔记本电脑没有安装这个东西。
4.固定IP
如果您的笔记本电脑手动获取 IP 地址,您还需要自动设置 IP 地址。
与WIN系统相比,linux系统给了很多改变操作的权限,兼容性需要自己列出来。
就像踏入人体一样,有复杂的,也有简单的。重建的空间和潜力很大,可以学到很多东西。它可以调成真正属于你的操作系统。