Ubuntu

fstab 中的 CIFS 掛載在 IP 上成功,在 /etc/hosts 中寫入的主機名上失敗

  • September 3, 2021

我想知道為什麼我的 Ubuntu Server 14.04 LTS 無法從 fstab 解析主機名。我嘗試安裝以下條目:

//NAS-5h2-20/backuppc/  /mnt/backuppc   cifs   auto,user=THEUSER,password=THEPASSWORD,cifsacl,uid=109      0       0

安裝失敗並出現錯誤

mount: wrong fs type, bad option, bad superblock on //NAS-5h1-15/backuppc,
  missing codepage or helper program, or other error
  (for several filesystems (e.g. nfs, cifs) you might
  need a /sbin/mount.<type> helper program)
  In some cases useful info is found in syslog - try
  dmesg | tail  or so

和系統日誌條目:

Unable to determine destination address.

但是,如果我將主機名NAS-5h2-20交換為其 IP 192.168.1.29,這就像一個魅力。但是,出於可移植性的原因,我想在 fstab 中按主機名映射掛載。

/etc/hosts的內容是(除其他外):

192.168.1.28    NAS-5h1-15
192.168.1.29    NAS-5h2-20
192.168.1.30    NAS-6h1-04

這些主機名未向本地 DNS 伺服器註冊。它的目的是在某些情況下能夠將不同的 IP(伺服器集群/工作站)用於 DNS 和伺服器內部使用,因此我無法將它們註冊到 DNS。

也沒有問題

ping NAS-5h2-20

.

因此,我敢肯定,這是一個解析器問題。但是,我無法弄清楚,在哪裡。我查看 nsswitch.conf,沒有什麼特別之處:

passwd:         compat
group:          compat
shadow:         compat
hosts:          files dns
networks:       files
protocols:      db files
services:       db files
ethers:         db files
rpc:            db files
netgroup:       nis

/etc/resolv.conf看起來也不錯:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.1
search ourdomain.local

所以,問題: - 為什麼在這種特殊情況下解析器無法讀取或忽略主機文件?

  • DNS/WINS/其他一些解析方法是否硬編碼到 mount.cifs 中?

預設情況下,某些發行版上的 samba (cifs) 包不使用 hosts 文件來解析名稱。相反,它使用 NetBIOS 名稱來解析 IP。有兩種方法可以解決這個問題:

  • 將 samba 設置為使用 hosts 文件進行解析。

在您的 smb.conf 文件中,找到並修改或創建以下行:

   [global]
   name resolve order =  host lmhosts wins bcast

並重新啟動桑巴。這會將 samba 設置為使用標準主機名到 IP 地址解析,使用系統 /etc/hosts、NIS 或 DNS 查找來解析伺服器名稱。此外,machine-name.domainname在您的主機文件中添加為別名:

   192.168.1.28    machine-name    machine-name.domainname
  • 設置您嘗試連接的機器的 NetBIOS 名稱。

在您嘗試連接的機器上,在 smb.conf 文件中設置以下內容:

   netbios name = MachineName

並重新啟動桑巴。


理想情況下,您希望同時執行這兩項操作,但只需將 samba 設置為使用 hosts 文件即可。

參考資料: https ://www.samba.org/samba/docs/using_samba/ch07.html

引用自:https://serverfault.com/questions/609365