Skip to content

文件管理器smb&ftb协议都有bug #13112

@beichu100

Description

@beichu100

SUMMARY | 问题概要

两个问题:gvfs 连 SMB 和 FTP 都有毛病

环境:

  • 系统:Deepin25
  • gvfs 版本:1.54.2
  • 服务端:华硕 RT-AX86U 路由器

问题一:SMB 共享名带空格就挂不上

我这台华硕路由器上的 SMB 共享名是 data (at data),里头有空格和括号。Windows 一点问题没有,但是 Linux 文件管理器(不管是 Deepin 自带的还是 Nautilus)就是连不上。

具体现象:

  • 地址栏输入 smb://192.168.50.1/,能看到共享列表,正确显示 data (at data) ← 这步是好的
  • 点进去,或者直接输入 smb://192.168.50.1/data (at data),弹出认证框,输完账号密码,转几圈,报错
  • 终端里用 smbclient 完全正常:
smbclient '//192.168.50.1/data (at data)' -U beichu
# 秒连,能读能写

gvfs 那边的报错:

gio list "smb://192.168.50.1/"                    # 能列出共享
gio mount "smb://192.168.50.1/data%20(at%20data)"  #  报错

具体错误是 g-io-error-quark: 挂载 Windows 共享失败:无效的参数 (0)

我试了 URL 编码、不编码、只用空格不用括号,全不行。list 没问题,一到 mount_enclosing_volume 就炸。smbclient 能用说明底层的 libsmbclient 是支持这种共享名的,在 gvfs 那层没处理好。

问题二:FTP 要求加密,gvfs 搞不定

同一个路由器开了 FTP 服务,文件管理器输 ftp://192.168.50.1/ 也连不上。一开始以为也是 bug,后来看了下协议交互:

220 Welcome to ASUS RT-AX86U FTP service.
USER beichu
530 Non-anonymous sessions must use encryption.

这玩意非匿名用户必须走 TLS 加密(也就是 FTP over TLS / FTPS),不接受明文密码。但 gvfs 的 FTP 后端貌似默认走明文,或者压根没正确处理 FTPS,反正文件管理器里连不上。

总结

两个服务在 Windows 下都正常,smbclient 和 lftp 这类命令行工具也能用,但文件管理器(gvfs)就是不行。SMB 那边是共享名带特殊字符就挂,FTP 这边是不支持 FTPS 加密连接。

SOFTWARE/OS VERSIONS | 软件/系统版本信息

- 系统:Deepin25
- gvfs 版本:1.54.2
- 服务端:华硕 RT-AX86U 路由器

PRE-REQUIREMENT | 预置条件

No response

STEPS TO REPRODUCE | 复现步骤

看正文

OBSERVED RESULT | 观察到的结果

No response

EXPECTED RESULT | 期望的结果

No response

ADDITIONAL INFORMATION | 额外补充

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions