不能ping通主機名


https://www.linuxidc.com/Linux/2017-03/142253.htm

sudo apt-get install winbind , 
sudo apt-get install libnss-winbind libpam-winbind

 

最近裝了兩台Linux虛擬機分別CentOS7和Ubuntu 14.04,都裝了samba服務,文件共享都正常,虛擬機上互聯網也正常,能以ping 通局域網的ip,卻都ping不通主機名,其他電腦(Windows/Linux)都能ping 通這兩台虛擬機的主機名。

最終找到原因:沒有安裝winbind,也沒有配置/etc/nsswitch.conf

下面分別說明CentOS7和Ubuntu 14.04/16.04下的步驟。

CentOS 7

安裝windbind

sudo yum install samba-winbind-clients

修改/etc/nsswitch.conf

sudo vi /etc/nsswitch.conf

修改hosts,如下圖加上wins 
這里寫圖片描述

修改/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’

Ubuntu 14.04

安裝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 16.04

Ubuntu 14.04安裝winbind時還會自動安裝libnss-winbind,libpam-winbind,libwbclient0,如下圖: 

Ubuntu/CentOS7解決可以ping ip卻ping不通主機名

但是在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下相同。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM