Ubuntu“从服务器获取共享列表失败”问题的解决方法

问题:

Ubuntu 18.04LTS 用smb方式连接服务器192.168.0.123失败,显示:“从服务器获取共享列表失败”,服务器192.168.0.123的操作系统为windows,且共享设置正常。

原因不明,之前的ubuntu 16.04没有这个问题,但是像deepin 15.8也存在这个问题。

 

假设:

IP地址:192.168.0.123

用户名:myname

密码:1234

共享目录名称:E盘

 

解决方法:

一、命令行下的smb连接

 

$ sudo su

#必须用root权限

 

smbclient -L //192.168.0.123 -U myname

#查询有哪些共享目录,需要输入用户密码

例如显示:

Sharename       Type      Comment

---------       ----      -------

IPC$            IPC       远程 IPC

Users           Disk      

E盘              Disk      

可以看到这里目录“E盘”,然后就可以挂载这个目录(或者说这个盘)

 

smbclient //192.168.0.123/E盘 -U myname

#进入这个目录,这时候会出现smb: \>

smb: \> help  #查询可以用的命令

比如smb: \> ls    #查询文件情况

 

这个命令可以解决在不清楚有什么共享目录时可以找到自己想要的那个目录的具体名称(比如本例中的E盘),这个名称对下一步很重要。

 

二、用桌面文件管理器打开

 

$ sudo apt install cifs-utils

#安装cifs-utils服务

 

$ sudo mkdir /mnt/123E

#创建一个挂载用的目录,要放在/mnt目录下,自己命名,比如123E

 

$ sudo mount.cifs //192.168.0.123/E盘 /mnt/123E -o username=myname, passwd=1234

#挂载到/mnt/123E目录,会出现输入密码要求

Password for myname@//192.168.0.123/E盘:  1234

请注意,username=XXX逗号后面是有空格的!

 

$ sudo nautilus /mnt/123E

 

用文件管理器打开这个目录(其他linux系统可以尝试用文件管理器,找到/mnt/123E,右键“以管理员权限打开”即可)。

 

三、以后简化

如果有多次需要,可以通过写sh文件和设置桌面快捷方式来解决。

1、Ubuntu下的快捷方式

(1)写运行挂载的sh,名字假设为123.sh

$ sudo apt install expect
#安装expect,接下来要自动录入密码时会用到这个expect包

$ gedit /home/XXX/123.sh
#假设在用户XXX的主目录下做一个sh文件,内容参考如下:

#!/usr/bin/expect
set timeout 30
spawn sudo mount.cifs //192.168.0.123/E盘 /mnt/123E -o username=myname, passwd=1234
expect “XXX 的密码:”
send “987654\r”
expect “E盘:”
send “1234\r”
spawn sudo nautilus /mnt/128E
expect “XXX 的密码:”
send “987654\r”
interact
exit

然后保存退出,在文件管理器找到123.sh,右键,属性——权限——允许作为程序执行文件,打勾。

补充说明一下,expect包是可以找到想要输入密码的部分,然后send发送密码过去,\r 相当于回车。

expect包的最基本语法就是:spawn 命令——expect “文字:”——send “密码\r”

每次遇到sudo命令都要send一次密码,不用sudo打开目录会出现只能读、不能写的问题。

(2)做一个桌面快捷方式

用gedit写一个.desktop文件

Type=Application
Terminal=true
Name=123服务器E盘
Icon=/usr/share/icons/gnome/256×256/status/connect_established.png
StartupNotify=true
Exec=sh /home/XXX/123.sh

保存到桌面,例如命名为123.desktop,右键,属性——权限——允许作为程序执行文件,打勾。
说明一下,Icon是图标,可以是ico、png文件,以后也可以在.desktop属性里面去修改,这里只是提供一个例子。

注意:Exec= 必须放在最后一行

2、其他Linux下可以尝试

用vim或者nano把命令按顺序写好,这里假设root用户的密码是987654,

内容如下:

echo 987654 | sudo -S su

mount.cifs //192.168.0.123/E盘 /mnt/123E -o username=myname, passwd=1234

nautilus /mnt/123E

然后把文件改成.sh后缀(比如123E.sh)保存在一个目录下,右键,属性——权限——允许作为程序执行文件,打勾。需要的时候就在终端运行

./123E.sh

此时就会自动弹出文件管理器并打开共享目录。

  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu 18.04在连接SMB共享服务器时出现超时的问题可能是由多个因素引起的。以下是一些可能的解决方法: 1. 检查网络连接:首先确保你的网络连接是稳定的,并且没有任何阻止SMB访问的防火墙规则。 2. 检查共享服务器设置:确保共享服务器已正确设置,并且您具有适当的权限来访问共享。 3. 确认SMB服务正在运行:验证SMB服务正在运行并正常工作。可以通过运行以下命令来检查SMB服务的状态: sudo systemctl status smbd 4. 更新Samba软件包:确认你使用的是最新的Samba软件包。可以通过运行以下命令来更新软件包: sudo apt update sudo apt upgrade 5. 检查SMB配置文件:检查SMB配置文件(/etc/samba/smb.conf)以确保所有设置正确。尤其是检查工作组和共享名称是否正确配置。 6. 检查主机名解析:确保你的主机名能够正确解析为IP地址。可以通过编辑/etc/hosts文件或者使用DNS服务器解决问题。 7. 禁用IPv6:如果你的网络不支持IPv6,可以尝试禁用IPv6以解决连接问题。可以通过编辑/etc/sysctl.conf文件来禁用IPv6功能。 8. 调整超时设置:如果仍然有超时问题,可以尝试增加SMB客户端的超时设置。可以在/etc/samba/smb.conf文件中的[global]部分添加以下行来调整超时设置: client max protocol = SMB3 client min protocol = SMB2 max protocol = SMB3 min protocol = SMB2 希望以上解决方法对您有所帮助。如果问题仍然存在,建议查阅更多关于Ubuntu 18.04中SMB连接问题的文档或寻求更专业的技术支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值