项目中需要用ftpproxy做ftp代理,由于是云服务器,所有的端口都要申请策略。公网ftp是被动模式,连接端口是:2021,传输端口是:10001-10059。ftpproxy代理2021,建立的传输端口随机。针对ftpproxy代理后的端口随机问题,可以修改源码:ftp.c文件,第800行:
get_interface_info(0, ch->inside.ipnum, sizeof(ch->inside.ipnum));
//原始代码。端口号随机
//ch->isock = bind_to_port(ch->inside.ipnum, 0);
//修改代码。指定端口保持和FTP服务器端口一致
ch->isock = bind_to_port(ch->inside.ipnum, ch->server.port);