网络结构如下,仅一台服务器有公网ip,其余均为内部网络
需求:需要在内网搭建一台或多台ftp服务器(彼此独立),然后通过公主机端口转发来达到FTP数据传输
服务器介绍:
Server A(公主机),公网ip:123.123.123.123,内网ip:10.10.10.10
Server B (内机),内网ip:10.10.10.13
问题:按《Vsftp服务安装搭建,虚拟用户配置》搭建好后使用帐号连接发现可以连接ftp但却不能获得ftp文件列表
检查:检查公主机的iptables转发规则等,端口是否开启,均无错误,但缺少数据传输端口。
修改:通过查看vsftpd.conf配置文件发现默认数据传输端口为20(默认是不启用20的),直接修改以及nat此参数21020端口号,发现无任何作用。
最后查找配置发现vsftpd还有几个参数,添加后解决问题
pasv_addr_resolve # 允许vsftpd去欺骗客户
pasv_address # 切记,这个是公网IP,是从ftp客户端可以连接的# 允许vsftpd去欺骗客户
ftp_data_port=21020 # 默认的FTP数据连接端口是20,因为这个机器是在内部环境,所以需要修改此端口
具体配置文件如下
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 anon_umask=022 anon_upload_enable=NO anon_mkdir_write_enable=NO dirmessage_enable=YES xferlog_enable=YES chown_uploads=NO xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES nopriv_user=vsftpd async_abor_enable=YES ascii_upload_enable=YES ascii_download_enable=YES ftpd_banner=Welcome to KINGGOO.COM - FTP service. chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list port_promiscuous=yes pasv_addr_resolve=yes pasv_address=123.123.123.123 listen=YES listen_port=21021 ftp_data_port=21020 pasv_enable=YES pasv_min_port=21022 pasv_max_port=21030 pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES guest_enable=YES virtual_use_local_privs=YES user_config_dir=/etc/vsftpd/vsftpd_config
文章内无iptables抓发参数,如需要请留言
- THE END -
Category: Ftp
0 条评论。