https://www.linuxidc.com/Linux/2017-03/142253.htmlinux
sudo apt-get install winbind ,
sudo apt-get install libnss-winbind libpam-winbindubuntu
最近裝了兩臺Linux虛擬機分別CentOS7和Ubuntu 14.04,都裝了samba服務,文件共享都正常,虛擬機上互聯網也正常,能以ping 通局域網的ip,卻都ping不通主機名,其餘電腦(Windows/Linux)都能ping 通這兩臺虛擬機的主機名。centos
最終找到緣由:沒有安裝winbind,也沒有配置/etc/nsswitch.confssh
下面分別說明CentOS7和Ubuntu 14.04/16.04下的步驟。centos7
安裝windbindspa
sudo yum install samba-winbind-clients3d
修改/etc/nsswitch.confserver
sudo vi /etc/nsswitch.confhtm
修改hosts,以下圖加上wins
blog
修改/etc/samba/smb.conf
sudo vi /etc/samba/smb.conf
CentOS7安裝的是samba4,在samba4中 security的share 和 server 選項已被棄用,
必須使用user,並加上 map to guest = bad user,
不然會致使,其餘主機沒法經過主機名訪問本機
而且在ping 其餘主機時,ping會警告:
WARNING: Ignoring invalid value ‘share’ for parameter ‘security’
安裝windbind
sudo apt-get install winbind
修改hosts,以下圖加上wins
sudo vi /etc/nsswitch.conf
再次ping主機名,成功。
若是其餘主機不能ping通本機主機名,請檢查是否安裝了防火牆,以及防火牆是否開啓,以及防火牆規則中是開啓了相關端口
sudo ufw status numbered // 檢查防火牆狀態(顯示規則編號)
sudo ufw allow samba // 容許全部的外部IP訪問本機的samba端口
sudo ufw allow ssh // 容許全部的外部IP訪問本機的samba端口(22)
下面是個人ubuntu14虛擬機上防火牆的配置
Ubuntu 14.04安裝winbind時還會自動安裝libnss-winbind,libpam-winbind,libwbclient0,以下圖:
可是在Ubuntu 16.04下,安裝winbind好像不會自動安裝上面的組件,因此安裝winbind後若是仍是不能ping 主機名,還要手工安裝libnss-winbind libpam-winbind
sudo apt-get install winbind ,
sudo apt-get install libnss-winbind libpam-winbind
其餘操做與Ubuntu 14.04下相同。