搭建ftp服务器,由外网访问局域网,经过防火墙

安装rpm包
在这里插入图片描述
创建用户
useradd -d /home/ftp/ -s /sbin/nologin ftpuser

设置账户权限
chown -R ftpuser:ftpuser /home/ftp
chmod 777 /home/ftp
在这里插入图片描述

修改/etc/vsftpd/vsftpd.conf文件
local_enable=YES
write_enable=YES
local_umask=022 #本地用户上传文件的umask,上传文件默认权限644(666-022),上传文件夹默认权限755(777-022)
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_list_enable=YES #限制所有的用户均不能切换到其他目录。
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES #配置上防火墙和服务器配置将ipv6关闭,只能使用ipv4
listen_ipv6=NO

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
listen_port=1021 #修改命令传输端口21改为1021,被动模式用到。
allow_writeable_chroot=YES
port_enable=NO #关闭主动模式
pasv_enable=YES #开启被动模式
pasv_address=154.23.86.124 #为PASV模式的响应地址
pasv_addr_resolve=NO # 被动模式是否用设置好的的地址返回给客户端,如果是NO,则从链接的套接字中自己获取地址,如果为YES,则设置为下面这个地址
#pasv_promiscuous=YES #被动模式安全屏蔽开启
pasv_min_port=20000 #被动模式使用的数据端口
pasv_max_port=20001 #被动模式使用的数据端口

重启服务
Service vsftpd restart
#没有报错即正常启动。

遇到的问题
一、防火墙和路由器限制了ipv6,在监听端口上需要关闭ipv6,开启ipv4监听,如:
listen=YES
listen_ipv6=NO
否则报错,错误为500 Illegal PORT command. 425 Use PORT or PASV first.

二、windows的ftp默认是主动模式,从外网访问到局域网时会报错:
500 Illegal PORT command.
425 Use PORT or PASV first.
用同为linux服务器连接做ftp测试,或用工具测试如winscp工具,会更加方便

三、外网访问局域网只能使用被动模式,需要将ftp服务器搭建为被动模式。主动模式默认20(数据端口)和21(命令端口),端口可修改。被动模式默认命令端口21,数据端口不固定。目前配置为
listen_port=1021
pasv_min_port=20000
pasv_max_port=20001

四、vsftpd启动报错code=exited, status=2,下面是做了验证,才这样考虑,但不能成立,仅做参考:
1、配置文件/etc/vsftpd/vsftpd.conf的IPv4 ipv6 不能同时listen
1、修改的端口listen_port=2021必须在监听ip下面,eg:listen_port=1021必须在listen=YES上面。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值