问题:
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文件来解决。
用gedit把命令按顺序写好,内容例如:
sudo mount.cifs //192.168.0.123/E盘 /mnt/123E -o username=myname, passwd=1234
sudo nautilus /mnt/123E
然后把文件改成.sh后缀(比如123E.sh)保存在一个目录下,右键,属性——权限——允许作为程序执行文件,打勾。需要的时候就在终端运行
./128E.sh
然后输入密码后就会直接打开这个目录了。