我使用主机A的IIS创建了一个FTP服务,然后在主机B启动了一个Nginx服务,然后使用C主机通过B转发请求访问到A的FTP。
FTP服务器限制了数据端口的区间。
nginx.conf增加了全区间端口的监听。
结果:
21命令端口转发成功,FTPClient可以链接成功,并且成功创建文件夹。
但是数据端口转发失败,listFiles()获取不到文件,retrieveFile,storeFile都失败
nginx.conf:
stream {
upstream ftp {
hash $remote_addr consistent;
server 172.20.10.2:21 ;
}
server {
listen 8080;
proxy_connect_timeout 300s;
proxy_timeout 300s;
proxy_pass ftp;
}
upstream ftp1 {
hash $remote_addr consistent;
server 172.20.10.2:50000 ;
}
server {
listen 50000;
proxy_connect_timeout 300s;
proxy_timeout 300s;
proxy_pass ftp1;
}
upstream ftp2 {
hash $remote_addr consistent;
server 172.20.10.2:50001 ;
}
server {
listen 50001;
proxy_connect_timeout 300s;
proxy_timeout 300s;
proxy_pass ftp2;
}
…
upstream ftp1000 {
hash $remote_addr consistent;
server 172.20.10.2:50999 ;
}
server {
listen 50999 ;
proxy_connect_timeout 300s;
proxy_timeout 300s;
proxy_pass ftp2;
}
}
Nginx 转发FTP请求
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- xyjincan 2022-03-22 10:51关注
应该你还需要再加一个端口
默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。
但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 基于卷积神经网络的声纹识别
- ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
- ¥100 为什么这个恒流源电路不能恒流?
- ¥15 有偿求跨组件数据流路径图
- ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
- ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
- ¥15 CSAPPattacklab
- ¥15 一直显示正在等待HID—ISP
- ¥15 Python turtle 画图
- ¥15 stm32开发clion时遇到的编译问题