linux安装ftp服务器
1 2 3 4 5 | ftp的安装一般用yum直接在线安装; yum install -y vsftpd 不行就update yum update |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | 1 . 查看ftp状态 systemctl status vsftpd.service # 启动ftp systemctl start vsftpd.service # 查看下ftp的默认端口 21 ,发现能正常启动 ss -anp | grep 21 # 因为还没配置好,先关闭ftp systemctl start vsftpd.service 2 . ftp的配置文件/etc/vsftpd/vsftpd.conf ftp安装好后,配置文件在/etc/vsftpd/vsftpd.conf,利用vim ,修改配置文件。 #打开配置文件 vim /etc/vsftpd/vsftpd.conf #显示行号 :set nu #修改配置 12 行 不允许匿名访问(不登录默认访问某目录/var/ftp),要用户名和密码 anonymous_enable=NO #修改配置 83 行 允许ascii文件上传 ascii_upload_enable=YES #修改配置 84 行 允许ascii文件下载 ascii_download_enable=YES #修改配置 87 行 ftpd_banner=Welcome to blah FTP service. #修改配置 101 , 102 , 104 行 将用户限制在为其配置的主目录 chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list #添加下列内容到vsftpd.conf末尾 use_localtime=YES # 监听端口 listen_port= 21 idle_session_timeout= 300 # 设置启用虚拟用户功能 guest_enable=YES # 制定宿主用户名(我们后续需要为我们的系统增加该用户) guest_username=ftpuser # 制定虚拟用户配置文件放置文件夹(需要我们自己建立) user_config_dir=/etc/vsftpd/vuser_conf # 允许写 allow_writeable_chroot=YES data_connection_timeout= 1 virtual_use_local_privs=YES pasv_min_port= 40000 pasv_max_port= 40010 accept_timeout= 5 connect_timeout= 1 # wq!保存 |
1 | 3 ftp的账号、组、目录配置 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # 新建一个ftpuser组 groupadd ftpuser # 新建一个ftpuser账号,并且该账号不需要登录服务器,设定家目录在 /home/vsftpd useradd -g ftpuser -M -d /home/vsftpd -s /sbin/nologin ftpuser # 设置用户 ftpuser 的密码 passwd ftpuser # 把 /home/vsftpd 的所有权给ftpuser.root chown -R ftpuser:ftpuser /home/vsftpd # 在家目录下先创建两个文件夹,作为后续ftp账号的默认目录 mkdir -p /home/vsftpd/ftp-user1 /home/vsftpd/ftp-user2 # 设置目录权限为 755 chmod 755 -R /home/vsftpd |
1 | 4 ftp的登录用户和密码设置 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # 进入/etc/vsftpd/目录 cd /etc/vsftpd/ # 创建用户密码信息文件 vim vuser_passwd #编辑如下内容,创建虚拟账户信息,奇数行为用户名,偶数行为密码 ftp-user1 123456 ftp-user2 123456 # wq!保存退出 # 生成虚拟用户数据文件 db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db # 将该目录的权限改成 600 chmod 600 /etc/vsftpd/vuser_passwd.db |
1 | 5 编辑pam认证文件 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # 查看系统位数 getconf LONG_BIT # 备份pam认证文件 mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak # 新建pam认证文件 vim /etc/pam.d/vsftpd # 根据自己的操作系统选 2 行,不要全部都填写哟 # 注:db=/etc/vsftpd/vuser_passwd 中的vuser_passwd 是你生成的虚拟用户的db文件,这里不要加扩展名。 # 系统为 32 位: auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account required pam_userdb.so db=/etc/vsftpd/vuser_passwd # 系统为 64 位: auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd # wq!保存内容 |
1 | 6 创建虚拟用户配置目录 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #创建上述配置文件中配置的虚拟用户文件夹,一定要对应章节 3.2 配置文件的user_config_dir=/etc/vsftpd/vuser_conf mkdir -p /etc/vsftpd/vuser_conf #切换进入 /etc/vsftpd/vuser_conf cd /etc/vsftpd/vuser_conf #创建虚拟用户配置文件,文件名称要与虚拟用户名称相同,这里我们配置两个虚拟用户就创建两个配置文件 touch ftp-user1 ftp-user2 #编辑ftp-user1 vim ftp-user1 #写入以下内容 local_root=/home/vsftpd/ftp-user1 write_enable=YES anon_umask= 022 anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES #wq! 保存退出 #编辑ftp-user2 vim ftp-user2 #写入以下内容 local_root=/home/vsftpd/ftp-use2 write_enable=YES anon_umask= 022 anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES # wq! 保存退出 |
1 | 7 创建chroot_list |
1 2 3 4 5 6 7 8 9 10 11 | # 进入目录/etc/vsftpd cd /etc/vsftpd #创建使当前配置的虚拟用户允许访问的文件列表 vim chroot_list #写入虚拟用户名 ftp-user1 ftp-user2 # wq! 保存退出 |
1 | 8 防火墙,SELinux等配置 |
1 | 简单粗暴型,如果允许的话,直接关闭防火墙和SELinux, |
1 2 3 4 5 6 7 8 9 10 | #打开SELINUX配置文件 vim /etc/selinux/config #修改配置参数 #注释 SELINUX=enforcing #增加 SELINUX=disabled #wq!保存完,需要重启! systemctl stop firewalld.service |
1 | 也可以针对性的关闭防火墙和SELinux对ftp的限制。 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # SELINUX不对vsftp不做任何限制 setsebool -P ftpd_full_access on # 防火墙设置 IPtables 的设置方式: vi /etc/sysconfig/iptables #编辑iptables文件,添加如下内容,开启 21 端口 -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 40000 : 40010 -j ACCEPT #firewall 的设置方式,以下指令 firewall-cmd --zone= public --add-service=ftp --permanent firewall-cmd --zone= public --add-port= 21 /tcp --permanent firewall-cmd --zone= public --add-port= 40000 - 40010 /tcp --permanent |
1 | . 9 查看ftp状态、重启、停止、设置开机启动 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #启动 systemctl start vsftpd.service #重启 systemctl restart vsftpd.service #停止 systemctl stop vsftpd.service #查看状态 systemctl status vsftpd.service #设置开机启动 systemctl enable vsftpd.service |
1 | 10 测试ftp连接 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # 查看ftp的状态,必须要是 active (running) [root @node1 home]# systemctl status vsftpd.service ● vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled) Active: active (running) since 日 2022 - 03 - 27 22 : 26 : 43 CST; 1h 13min ago Process: 10312 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status= 0 /SUCCESS) Main PID: 10313 (vsftpd) Tasks: 3 CGroup: /system.slice/vsftpd.service ├─ 10313 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf ├─ 10387 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf └─ 10389 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf # 查看ftp的进程和端口,发现正在以PID= 10313 的进程,port= 21 在运行着 [root @node1 home]# netstat -anp | grep ftp tcp6 0 0 ::: 21 :::* LISTEN 10313 /vsftpd tcp6 0 0 192.168 . 78.130 : 21 192.168 . 78.1 : 62662 ESTABLISHED 10387 /vsftpd unix 2 [ ] DGRAM 111814 10313 /vsftpd unix 3 [ ] STREAM CONNECTED 111966 10389 /vsftpd unix 3 [ ] STREAM CONNECTED 111965 10387 /vsftpd |
1 | 先在windows的命令行telnet下端口,指令为telnet 192.168 . 0.109 21 ,网络通的话会跳转返回 220 Welcome to blah FTP service.。 |
1 | 先在window命令行测试下是否能正常访问ftp,输入指令ftp 192.168 . 0.109 ,然后输入章节 3.4 ftp的登录用户和密码设置中的用户名ftp-user1和密码XXXX,直到弹出 230 Login successful才算登录成功。 |
1 2 3 4 | 遇到的问题: ftp上传问题 553 create 要注意把对应文件夹权限改为 777 tenlent 既不是内部也不是外部命令 就看下win下程序应用,启动telent进行打开 |
本文来自博客园,作者:余生请多指教ANT,转载请注明原文链接:https://www.cnblogs.com/wangbiaohistory/p/17396107.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
2019-05-12 及上一篇linux安装mysql的说明
2019-05-12 centos6.10下安装mysql8.0.16root密码修改的坑
2019-05-12 linux》centos6.1.环境下发送邮件设置