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 上有一个用 Python 编写的实现 WSD 的项目。可以在以下网址找到: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 电脑上可见。

相关内容