V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mcfever
V2EX  ›  推广

SFTP 端口 是多少?为什么连接不上?一篇讲清楚

  •  
  •   mcfever · 8 天前 · 777 次点击

    SFTP 端口 是多少?为什么连接不上?一篇讲清楚

    image.png

    如果你最近在用服务器做文件传输,很可能已经用到了 SFTP 。

    很多人一开始都是直接在终端里输入一行命令:

    sftp [email protected]
    

    但结果却是:

    ssh: connect to host 192.168.1.100 port 22: Connection refused
    Connection closed
    

    这时候你大概率会开始怀疑:

    • 是不是端口不对?
    • SFTP 默认用哪个端口?
    • 为什么 SSH 能连,SFTP 却不行?

    于是你去搜索:

    sftp port
    

    这篇文章,就从这个最真实的使用场景出发,把问题一次讲清楚。


    一、先说结论:SFTP Port 是多少?

    SFTP 默认端口:22
    

    也就是说:

    sftp user@server
    

    本质上等价于:

    sftp -P 22 user@server
    

    二、一个非常常见的错误场景

    来看一个非常典型的问题。

    服务器配置如下:

    /etc/ssh/sshd_config
    
    Port 2222
    

    也就是说,这台服务器的 SSH 端口已经被改成了 2222 。

    但你在本地仍然使用:

    sftp [email protected]
    

    结果就是:

    Connection refused
    

    原因其实很简单:

    客户端默认连接 22
    但服务器实际监听的是 2222
    

    正确的写法应该是:

    sftp -P 2222 [email protected]
    

    三、为什么 SFTP 和 SSH 用同一个端口?

    很多人会误以为:

    SFTP = FTP (加密版)
    

    其实并不是。

    SFTP 的全称是:

    SSH File Transfer Protocol
    

    也就是说:

    SFTP 本质是 SSH 的一个子系统
    

    当你执行:

    sftp user@server
    

    实际发生的是:

    1. 建立 SSH 连接( 22 或指定端口)
    2. 启动 sftp 子系统
    3. 进入文件传输模式
    

    所以有一个非常关键的结论:

    只要 SSH 不通,SFTP 一定不通
    

    四、SFTP 连接不上,最常见的 3 个原因

    在实际排查中,问题基本都集中在这三类:

    1. 端口不正确

    最常见情况:

    服务器用的是 2222
    你用的是 22
    

    2. 防火墙 / 安全组拦截

    例如:

    • 云服务器安全组没有放行端口
    • 本地或服务器上的防火墙拦截

    表现出来就是:

    看起来像“连不上”,但其实请求根本没到服务端
    

    3. SSH / SFTP 配置问题

    包括:

    • sshd 服务没有启动
    • SFTP 子系统未启用
    • 配置文件异常

    例如:

    Subsystem sftp /usr/lib/openssh/sftp-server
    

    如果这一行被注释,SFTP 会直接不可用。


    五、为什么这个问题会频繁出现

    因为大多数人的使用路径是这样的:

    1. 拿到服务器
    2. 想上传文件
    3. 搜“怎么传文件”
    4. FTP / SFTP / SCP 混在一起
    

    一开始只有一台服务器时还好:

    sftp root@server
    

    但当你开始有多台服务器:

    服务器 A:22 端口
    服务器 B:2222 端口
    服务器 C:22000 端口
    

    你会逐渐变成这样:

    sftp -P 2222 root@serverB
    sftp -P 22000 root@serverC
    

    时间一长,就会出现:

    - 端口记不住
    - 命令容易输错
    - 每次都要重复输入
    

    六、一个更省心的方式

    很多人到这个阶段,会开始把这些连接信息“记录下来”,而不是每次手动输入。

    比如:

    - 主机地址
    - 端口
    - 用户名
    - 协议( SSH / SFTP )
    

    这样你就不需要再记:

    sftp -P 2222 root@xxx
    

    而是直接选择连接即可。


    七、总结

    SFTP 默认端口:22
    

    如果连接不上,优先检查:

    1. 端口是否正确(是否被修改)
    2. 防火墙是否放行
    3. SSH / SFTP 配置是否正常
    

    当服务器数量不多时,命令方式完全够用。

    但当连接逐渐变多,你会发现:

    真正麻烦的不是命令本身
    而是这些细节的管理
    

    我后来也是因为这个原因,把 SSH 、SFTP 、RDP 以及数据库连接统一管理起来。

    而一体化工具 DartShell 做的事情,其实就是把这些分散的连接和参数,变成一个可以统一管理的工作台。

    不用再记端口,也不用反复敲命令,直接连接就可以了。 产品链接: https://dartshell.com

    5 条回复    2026-03-17 11:00:23 +08:00
    villivateur
        1
    villivateur  
       8 天前
    你是如何做到把一句话就能解释清楚的事情,扩展到这么长的?
    Blake2Wang
        2
    Blake2Wang  
       8 天前
    @villivateur 哈哈哈哈,看来他这一篇广告文是很失败的,根本没人看到他最后的产品推广
    mcfever
        3
    mcfever  
    OP
       8 天前
    没事,大家开心就好,据说这里的文章能被 google 搜索到,总有新手需要的。
    lyusantu
        4
    lyusantu  
       8 天前
    上述所有问题都已被 termius 完美解决,下载链接: https://termius.com/download
    jisxu
        5
    jisxu  
       8 天前
    ai 味道拉满了。。。。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   4569 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 00:11 · PVG 08:11 · LAX 17:11 · JFK 20:11
    ♥ Do have faith in what you're doing.