You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx搭建SFTP转FTP反向代理遇连接超时及SSL指令错误求助

问题分析与解决方案

核心问题:协议不兼容

SFTP(基于SSH的文件传输协议)和FTP是完全独立的应用层协议,两者的命令格式、数据传输逻辑完全不同。Nginx Stream模块仅做TCP层的流量转发,无法对应用层的协议进行转换,所以即使你解决了配置语法问题,备份服务器的SFTP请求也无法被NAS的FTP服务器识别处理,这是连接超时的根本原因。

配置语法错误修正

你遇到的unknown directive "ssl"错误,是因为Nginx Stream模块不支持ssl on;指令,要启用SSL,需在listen指令后直接添加ssl参数:

stream {
    server {
        # 直接在listen后加ssl开启SSL
        listen 22 ssl;

        ssl_certificate     /etc/nginx/ssl/selfsign_cert/self_cert.pem;
        ssl_certificate_key /etc/nginx/ssl/selfsign_cert/self_key.pem;

        proxy_pass 192.168.1.100:21;
    }
}

注意:确保你的Nginx编译时包含了--with-stream_ssl_module模块,否则无法使用Stream的SSL功能。

可行替代方案

方案1:使用协议转换代理工具

选择专门支持SFTP转FTP的代理工具,比如ssh-ftp-proxy,这类工具能在应用层解析SFTP命令,转换成对应的FTP请求转发给NAS服务器,完成协议适配。

方案2:在NAS上搭建SFTP服务

如果你的NAS系统支持(多数Linux-based NAS默认支持或可安装openssh-server),直接在NAS上开启SFTP服务,让备份服务器直接连接NAS的SFTP端口,省去代理中转的麻烦。

方案3:自定义中转服务

用Python、Go等语言编写轻量中转服务,监听SFTP端口,接收客户端的SFTP请求后,将操作转换为FTP命令与NAS交互,实现协议转换。

内容的提问来源于stack exchange,提问作者Ging3r

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 09:49:50