ubuntu14/ubuntu16/centos7:解决可以ping ip却ping不通主机名
最近裝了兩臺linux虛擬機分別CentOS7和Ubuntu14,都裝了samba服務,文件共享都正常,虛擬機上互聯網也正常,能以ping 通局域網的ip,卻都ping不通主機名,其他電腦(windows/linux)都能ping 通這兩臺虛擬機的主機名。
最終找到原因:沒有安裝winbind,也沒有配置/etc/nsswitch.conf
下面分別說明CentOS7和Ubuntu14/16下的步驟。
CentOS7
安裝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’
Ubuntu14
安裝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虛擬機上防火墻的配置
Ubuntu16
ubuntu14安裝winbind時還會自動安裝libnss-winbind,libpam-winbind,libwbclient0,如下圖:
但是在ubuntu16下,安裝winbind好像不會自動安裝上面的組件,所以安裝winbind后如果還是不能ping 主機名,還要手工安裝libnss-winbind libpam-winbind
sudo apt-get install winbind ,
sudo apt-get install libnss-winbind libpam-winbind
其他操作與ubuntu14下相同
參考
《WARNING: Ignoring invalid value ‘share’ for parameter ‘security’ 》
《匿名無須交互輸入用戶名和密碼的samba配置方法(security = user)》
http://www.cnblogs.com/laipDIDI/articles/2213787.html
http://www.linuxidc.com/Linux/2011-03/32894.htm
http://blog.sina.com.cn/s/blog_51c7c7fa0100lig2.html
總結
以上是生活随笔為你收集整理的ubuntu14/ubuntu16/centos7:解决可以ping ip却ping不通主机名的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不用写软件,纯JS 实现QQ空间自动点赞
- 下一篇: ubuntu使用docker搭建xss挑