解决vsftp或者pure-ftp服务端同时存在内网,外网。客户端命令无法执行问题
连接方式为:被动模式,报错227
---> PASV
227 Entering Passive Mode (192,168,100,29,132,103)
-------------------------
问题详情如下
root@ruibaitest ~]# ftp -d 222.175.101.A 10021
Connected to 222.175.101.A (222.175.101.A).
220 Welcome to blah FTP service.
Name (222.175.101.A:root): ftpuser01
---> USER ftpuser01
331 Please specify the password.
Password:
---> PASS XXXX
230 Login successful.
---> SYST
215 UNIX Type: L8
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
---> PASV
227 Entering Passive Mode (192,168,100,29,39,36).
ftp: connect: 拒绝连接
网络描述,服务器有内网网卡,外网则通过华为云路由器转发,服务器上没有外网网卡
问题描述:内网ftp可用,外网怎么连都不行。
解决方法
注释掉默认设置
将listen_ipv6=YES改为
#listen_ipv6=YES
启用
listen=YES
修改pasv_address= 222.175.101.A (外网地址)
重启即可
pure-ftp则添加
ForcePassiveIP 222.175.101.A,重启即可
贴出部分配置说名:
listen=YES #开启IPv4监听
listen_ipv6=NO #关闭IPV6监听
chroot_local_user=YES
chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list
pam_service_name=vsftpd #如果前面/etc/pam.d/vsftpd没有改文件名,就不修改
virtual_use_local_privs=YES #虚拟用户使用本地用户的权限
guest_enable=YES #开启虚拟用户 guest_username=virtusers #指定虚拟用户的宿主用户user_config_dir=/etc/vsftpd/vuser_conf #指定虚拟用户配置文件 pasv_enable=YES #开启被动模式 pasv_min_port=30100 #被动模式最小端口,本示例设置为30100 pasv_max_port=30200 #被动模式最大端口,本示例设置为30200 pasv_address=X.X.X.X #被动模式的IP地址,VPC环境下需要设置为服务器公网地址
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通