Fedora 33 现已支持华为手机的无线文件共享功能
最编程
2024-08-15 09:19:43
...
结论
华为分享有个共享至电脑的功能,使用samba协议。开启后,电脑可以通过网络访问到手机的文件系统。
华为手机无线共享文件至Linux系统有些波折。
例如我使用Fedora 33默认的文件管理器(nautilus)无法正常连接到手机的samba服务。
我使用muCommander能正常连接。
意外
但是smbclient无法正常连接,除非你修改smb.conf,添加“client min protocol = NT1”到global。
下面有四个命令:
- 修改smb.conf前,尝试使用smbclient访问手机
- 修改smb.conf,添加“client min protocol = NT1”
- 修改后再次尝试,默认用系统用户,和华为分享设定的用户不一样。
- smbclient指定用户,输错密码。
- 密码正确,获取分享的目录。但是华为分享上出现“1台设备正在访问本机”的信息,但是一闪而过。倒计时重新开始了。
1~ $ smbclient -L 192.168.10.172
protocol negotiation failed: NT_STATUS_CONNECTION_DISCONNECTED
2~ $ sudo gedit /etc/samba/smb.conf
[sudo] password for ydx:
** (gedit:3668): WARNING **: 16:13:41.359: AT-SPI: Could not obtain desktop path or name
** (gedit:3668): WARNING **: 16:13:41.365: atk-bridge: GetRegisteredEvents returned message with unknown signature
** (gedit:3668): WARNING **: 16:13:41.365: atk-bridge: get_device_events_reply: unknown signature
** (gedit:3668): WARNING **: 16:13:41.365: atk-bridge: get_device_events_reply: unknown signature
3~ $ smbclient -L 192.168.10.172
Enter wffger@FEDORAPROJECT.ORG's password:
Anonymous login successful
Sharename Type Comment
--------- ---- -------
Error returning browse list: NT_STATUS_ACCESS_DENIED
Reconnecting with SMB1 for workgroup listing.
Anonymous login successful
Server Comment
--------- -------
Workgroup Master
--------- -------
WORKGROUP
~4 $ smbclient -L 192.168.10.172 -U ydx
Enter WORKGROUP\ydx's password:
session setup failed: NT_STATUS_LOGON_FAILURE
5~ $ smbclient -L 192.168.10.172 -U ydx
Enter WORKGROUP\ydx's password:
Sharename Type Comment
--------- ---- -------
相册 Disk
内部存储 Disk
IPC$ IPC IPC Service (Samba on Android)
Reconnecting with SMB1 for workgroup listing.
Server Comment
--------- -------
Workgroup Master
--------- -------
WORKGROUP
~ $
猜测
我没有看过muCommander的源码。它的安装包大概40MB。无需修改smb.conf就可用连接手机。
系统自带的文件管理器和smbclient命令无法正常连上手机。
华为分享有缺陷。
samba有缺陷。
fedora更新了samba,但是华为分享重载服务的问题没有解决。应该是安卓的samba版本没有修复缺陷。
https://www.samba.org/samba/history/samba-4.13.5.html
BUG 14604: smbd: In conn_force_tdis_done() when forcing a connection closed force a full reload of services.
上一篇: TravelGrid: Personal Profile
下一篇: 奥特曼超人个人主页-进行重新表达