我有一台用作服务器的旧 PC。它主要用于提供 Plex 和家庭照片/视频 - 仅连接三个 SATA 驱动器用于存储。该机器运行安装在 SATA A 上的 Ubuntu Server 22.04.2...个人文件位于 SATA B 和 C 上。它没有连接到显示器,因此我使用 PuTTy 从我的 Windows 11 PC 上管理它。
一年多来,一切都运行正常,直到上周,我失去了使用 Win11 机器上的“映射网络驱动器”功能安装 SATA A 或 B 的能力。我开始四处寻找,尝试使用在线论坛和 reddit 帖子进行自我诊断,但我陷入了困境。以下是我所知道的。
该/etc/samba/smb.conf
文件似乎设置正确。 testparm
转储此
user@optiserver990:~$ testparm
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Weak crypto is allowed
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
# Global parameters
[global]
auto services = global
bind interfaces only = Yes
client max protocol = SMB3
interfaces = lo eno1
log file = /var/log/samba/log.%m
logging = file
map to guest = Bad User
max log size = 1000
obey pam restrictions = Yes
pam password change = Yes
panic action = /usr/share/samba/panic-action %d
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
passwd program = /usr/bin/passwd %u
server role = standalone server
server string = %h server (Samba, Ubuntu)
unix password sync = Yes
usershare allow guests = Yes
idmap config * : backend = tdb
[printers]
browseable = No
comment = All Printers
create mask = 0700
path = /var/spool/samba
printable = Yes
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
[TERADRIVE]
path = /media/TERADRIVE
read only = No
[DECATERA]
path = /media/DECATERA
read only = No
[HOME]
comment = user's home directory on Optiserver990
path = /home/user
read only = No
我无法连接到任何已定义的“TERADRIVE”、“DECATERA”或“HOME”共享。当我通过 SSH 连接时,我可以使用smbclient
列出共享并得到此信息。
user@optiserver990:~$ smbclient -L 10.0.0.5
Password for [WORKGROUP\user]:
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
TERADRIVE Disk
DECATERA Disk
HOME Disk user's home directory on Optiserver990
IPC$ IPC IPC Service (optiserver990 server (Samba, Ubuntu))
SMB1 disabled -- no workgroup available
我注意到 SMB1 已禁用 -- 没有可用的工作组,所以我四处寻找,发现网上有很多人说可以通过“启用可选功能”在 Windows 客户端启用 SMB1 协议...但这并没有解决我的问题。其他人说要添加行来/etc/samba/smb.conf
设置各种最大和最小 SMB 协议版本。但这也没有解决我的问题。
有一件事我能我似乎能够使用它smbclient
来连接到共享。现在,这一切都是通过 PuTTy 进入服务器,所以也许我只是将服务器连接到它自己?
无论如何,这就是我得到的,我认为它至少验证了 Samba 已启动并配置正确。
user@optiserver990:~$ smbclient \\\\10.0.0.5\\DECATERA -m SMB3
Password for [WORKGROUP\user]:
Try "help" to get a list of possible commands.
smb: \> dir
. D 0 Sun Jul 2 10:08:41 2023
.. D 0 Mon Oct 17 14:16:51 2022
SABnzbd complete D 0 Fri Dec 15 19:54:02 2023
Movies D 0 Fri Nov 17 21:46:43 2023
TV-Shows D 0 Fri Oct 6 21:00:00 2023
HelloWorld.txt A 242 Wed May 17 22:52:05 2023
lost+found D 0 Mon Oct 17 14:24:57 2022
SABnzbd incomplete D 0 Fri Dec 15 19:54:02 2023
7751273184 blocks of size 1024. 4576001592 blocks available
如果我放弃该-m SMB3
选项,或者如果我通过,它也会起作用-m SMB2
。我试过了-m SMB1
,它说:
警告:忽略参数‘客户端最大协议’的无效值‘SMB1’。
当我通过这种方式连接时,它确实会显示为 Webmin 的 Samba 面板内的活动连接。
令人困惑的是,如果我通过了,smbstatus --shares
我什么也得不到。
user@optiserver990:~$ sudo smbstatus --shares
[sudo] password for user:
Service pid Machine Connected at Encryption Signing
---------------------------------------------------------------------------------------------
最后,我尝试从 Ubuntu 客户端进行连接,以隔离问题。它也没有起作用。
ubuntu@ubuntu:~$ smbclient -U user //10.0.0.5/TERADRIVE
Password for [WORKGROUP\user]:
do_connect: Connection to 10.0.0.5 failed (Error NT_STATUS_IO_TIMEOUT)
其余一切都运行良好 - 我可以使用其他机器连接到 Webmin、Sabnzbd 等程序。Plex 正在播放电影。SSH 正在运行。
我只是不可以从 Windows 客户端访问已安装的共享。我快要撞墙了!请帮忙
答案1
我也遇到过同样的情况,最后终于解决了。基本上,我必须在 Samba 服务器中强制使用 SMB3 协议:
protocol = SMB3
来源: https://snippets.pichler.network/docs/linux/#sharing-a-folder-with-the-windows-network-protocol