V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
logan66
V2EX  ›  程序员

ftp 的连接下载文件超时问题求答疑

  •  
  •   logan66 · 2023-08-09 10:57:18 +08:00 · 590 次点击
    这是一个创建于 505 天前的主题,其中的信息可能已经有所发展或是发生改变。

    关于 ftp 的连接我们生产的服务器链接在下载文件会报超时,go 引入的包为 github.com/jlaffaye/ftp 生产网络访问是走 NAT 到具体内网节点的,现在 ftp 用到的应该是被动模式 PASV; 是 NAT 需要设置什么规则或者节点的安全组设置什么的? 还是说华为云服务器这边有什么限制?

    • 测试用到的 go 脚本: 1691549178290.png

    • 得到的对方服务器的响应 1691549378717.png

    • 在我本地电脑去跑是正常的,能够连接上以及下载得到具体的文件; 1691549618876.png

    logan66
        1
    logan66  
    OP
       2023-08-09 15:55:08 +08:00
    找到问题了,实际是 nat 的 snat 设置规则问题,我们设置了一个 snat 规则有 4 个公网 ip;
    我们一台服务器作为 ftp 客户端,在被动模式下,我们与外网 ftp 服务端 21 端口建立连接的是其中 1 个公网 ip;
    之后我们去请求文件下载的是其他随机的 1 个公网 ip;然后就一直连接不上的,直到超时;

    解决方案:
    保证建立连接和请求数据都是一个公网 ip 即可;
    操作 nat 增加一条 snat 规则,一个公网 ip 与内网 ip 绑定;
    如 网段为:192.168.0.186/32 对应公网为:164.76.156.161
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1006 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:35 · PVG 05:35 · LAX 13:35 · JFK 16:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.