問題:
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
然後輸入密碼後就會直接打開這個目錄了。