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