Samba 錯誤:reply_trans:無效的 trans 參數

Samba 錯誤:reply_trans:無效的 trans 參數

我正在嘗試在我的 ubuntu 18.04 伺服器上透過 samba 啟用資料夾共用;

我已經做了什麼:

  1. 編輯 /etc/samba/smb.conf 如下
[global]
workgroup = WORKGROUP
interfaces = lo eth0
server role = standalone server
server string = Samba Server %v
security = user
map to guest = bad user
name resolve order = bcast host
dns proxy = no
bind interfaces only = yes
log file = /var/log/samba/smb.log
max log size = 10000

[Public]
   path = /samba/share
   writable = yes
   guest ok = yes
   guest only = yes
   read only = no
   create mode = 0777
   directory mode = 0777
   force user = nobody
  1. 使用此結果運行 testparm
Load smb config files from /etc/samba/smb.conf rlimit_max: increasing
rlimit_max (1024) to minimum Windows limit (16384) Processing section
"[Public]" Loaded services file OK. Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters [global]
    bind interfaces only = Yes
    dns proxy = No
    interfaces = lo eth0
    log file = /var/log/samba/smb.log
    map to guest = Bad User
    max log size = 10000
    name resolve order = bcast host
    security = USER
    server role = standalone server
    server string = Samba Server %v
    idmap config * : backend = tdb


[Public]
    create mask = 0777
    directory mask = 0777
    force user = nobody
    guest ok = Yes
    guest only = Yes
    path = /samba/share
    read only = No
  1. 重新啟動 smbd.service
  2. 嘗試透過 Windows 登入; Windows 無法存取 \SERVERNAME\...
  3. 查看錯誤日誌
[2019/06/23 21:05:54.565424,  0]
../lib/util/become_daemon.c:124(daemon_ready)   STATUS=daemon 'smbd'
finished starting up and ready to serve connections [2019/06/23
21:06:34.482176,  0] ../source3/smbd/ipc.c:843(reply_trans)  
reply_trans: invalid trans parameters

我已經研究了大約 5 天,有人知道發生了什麼事嗎?如何解決這個問題?我只需要一份公共共享和另一份用於限制存取。

答案1

僅綁定介面 = 是

介面 = lo eth0

您告訴 samba 僅使用某些接口,但您指定的接口 ( eth0 ) 在 Ubuntu 18.04 中不存在。這是一種不同的形式。

除非您有理由指定任何內容並且寧願讓 samba 自己解決這個問題,否則我會從 smb.conf 中刪除這兩行並重新啟動 smbd:

sudo service smbd restart

如果您確實想指定某個接口,請使用此命令來查找其真實名稱:

nmcli device show | grep DEVICE

答案2

Windows 現在使用 WSD(Web 服務發現?),它不包含在 Ubuntu 19.04 中可用的各種 Samba 中。

github上有一個實現WSD的項目,用Python編寫。可以在以下位置找到:https://github.com/christgau/wsdd或直接下載至https://raw.githubusercontent.com/christgau/wsdd/master/src/wsdd.py

使用此功能的部分技巧是您需要透過防火牆啟用幾個連接埠:

需要開啟連接埠 5357/tcp 和 3702/udp 才能執行 wsdd。

wsdd 可以從命令列運行,或者您可以建立一個 systemd 服務來運行它。

這是 Samba 開發的一個活躍(可能)領域,有關它的一些資訊可以在以下位置找到:https://www.ixsystems.com/community/resources/how-to-kill-off-smb1-netbios-wins-and-still-have-windows-network-neighbourhood-better-than-ever.106/目前在 Arch 用戶儲存庫中可用,顯然還有其他一些發行版。 AskUbuntu 中也提到了這一點使 samba 共享在 Windows「網路」中可見

作為服務啟動

我為 wsdd 建立了一個 systemd 服務單元文件,/lib/systemd/system/wsdd.service 內容是

[Unit]
Description=WSDD Network Service
BindsTo=smbd.service
After=smbd.service

[Service]
Type=simple
RemainAfterExit=yes
ExecStart=/usr/bin/wsdd
#ExecReload=/user/bin/wsdd

[Install]
WantedBy=multi-user.target

然後我轉移wsdd.py/usr/bin/wsdd,並將其權限修改為555(讀取和執行)。

最後,sudo systemctl enable wsdd.service重新啟動 - 我的 Ubuntu 系統現在對我的 Win10 電腦可見。

相關內容