ฉันมีเซิร์ฟเวอร์ Debian ที่ใช้ smbd (Debian 9.3, samba 4.5.12) และไคลเอนต์ Ubuntu 17.10 ที่ฉันติดตั้งแซมบ้าร่วมกันโดยใช้ gio mount
(ก่อนหน้านี้ gvfs-mount
) คำสั่ง: gio mount smb://server/storage
เนื่องจากทั้งเซิร์ฟเวอร์และไคลเอนต์มีความทันสมัยฉันจึงคาดหวังให้พวกเขาเจรจาการเมาท์กับ SMB3 หรือ SMB2 อย่างน้อยที่สุด แต่ถ้าฉันรัน smbstatus
บนเซิร์ฟเวอร์ที่เมานต์กำลังใช้ NT1 (ซึ่ง AFAIK คือ SMB1):
Samba version 4.5.12-Debian
PID Username Group Machine Protocol Version Encryption Signing
----------------------------------------------------------------------------------------------------------------------------------------
12164 darren darren 192.168.10.86 (ipv4:192.168.10.86:34052) NT1 - -
Service pid Machine Connected at Encryption Signing
---------------------------------------------------------------------------------------------
storage 12164 192.168.10.86 Thu Dec 21 22:49:30 2017 GMT - -
No locked files
ถ้าฉันเพิ่ม client min protocol = SMB3
เพื่อ smb.conf ฉันสามารถยืนยันได้ว่าการเปลี่ยนแปลงมีผลกับ testparm -v | grep protocol
:
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[printers]"
Processing section "[home]"
Processing section "[storage]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
client ipc max protocol = default
client ipc min protocol = default
client max protocol = default
client min protocol = SMB3
server max protocol = SMB3
server min protocol = LANMAN1
แต่การส่งออกของ smbstatus
เหมือนกันและการเมาท์ยังคงใช้ NT1 (ถอนการติดตั้งและประกอบใหม่) ฉันจะบังคับ gio mount
คำสั่งเพื่อใช้โปรโตคอลในภายหลังและทำไมมันไม่ทำงานโดยค่าเริ่มต้น?
นี่คือ smb.conf ของฉัน:
[printers]
guest ok=yes
comment=Attached printers
browseable=no
printable=yes
path=/var/spool/samba
use client driver=yes
[global]
log file=/var/log/samba/log.all
guest account=nobody
load printers=yes
obey pam restrictions=yes
socket options=TCP_NODELAY IPTOS_LOWDELAY
interfaces=br0
map to guest=Bad User
show add printer wizard=no
encrypt passwords=true
passdb backend=tdbsam
unix extensions=no
dns proxy=no
wide links=yes
printing=cups
server string=%h Miniserver
invalid users=root
workgroup = sharefamily
printcap name=cups
#syslog=0
security=user
preferred master=yes
max log size=1000
disable spoolss=Yes
bind interfaces only=yes
client min protocol = SMB3
[home]
hide dotfiles=yes
browseable=yes
writable=yes
admin users=darren
path=/home
write list=darren
hide files=/lost+found/
guest ok=no
create mask=0764
directory mask=0775
comment=Home Directories
hide special files=yes
public=no
[storage]
browseable=yes
inherit owner=yes
inherit permissions=yes
admin users=darren
write list=darren
path=/home/storage
hide files=/lost+found/
guest ok=no
comment=Common storage
read only=yes
hide special files=yes
public=no
ปรับปรุง
ไคลเอนต์อื่นที่ฉันทดสอบ (แอพ iPhone) ประสบความสำเร็จในการเจรจา SMB2 ดังนั้นจึงเป็นข้อ จำกัด ของ gvfs ฉันพบ คำถามที่เกี่ยวข้องนี้ ที่แนะนำว่ามัน จำกัด SMB1 เพื่อให้สามารถเรียกดูเครือข่ายโดยโฮสต์ จะลองวิธีแก้ปัญหาที่แนะนำและอัปเดตตามนั้น