vsftpd被动模式下端口映射外网无法访问的问题

在某些情况下,可能会把公司内网的ftp服务器通过防火墙或者其它类似技术映射出去,达到外网访问的目的。 假设你是被动模式, 而你只把内网ftp服务器的21端口映射出去是不行的(出现的情况是能够弹出输入用户和密码,你输入后没有反应了)

这是因为被动模式下,21端口是用来连接和验证, 而数据端口是随机的 (根据你ftp服务器的配置文件中指定), 只映射了21是没有的,所以还得把随机端口范围都映射出去,另外还得在vsftpd.conf进行配置.

解决: 在vsftpd.conf配置文件中

pasv_address=1.1.1.1  # 添加这个选项,1.1.1.1是你映射出去的外网地址,告诉ftp客户端回传的外网地址是这个
pasv_min_port=30000   # 被动模式下,随机端口最新到最大范围, 需把30000~30999这些端口范围映射出去
pasv_max_port=30999

在尝试下,应该就可以了,如果不行注意下linux的默认的防火墙配置, 也要放通相应的端口.

产生的问题: 虽然上面解决ftp映射的问题,但是存在的问题

1、 内网访问效率不高, 因为在配置文件中指定了 pasv_address 外网地址,告诉客户端从外网过来连接数据通道,相当于绕了一圈。

2、不太安全, 毕竟ftp服务器直接对外,如果实在要对外可以:1、拉专线打通(贵) 2、 如果只对指定用户开访,做好安全访问控制,仅允许指定的ip访问, 3、 通过vpn访问

posted @ 2019-03-04 01:12  opss  阅读(4006)  评论(0)    收藏  举报