海王  

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

posted on   海王  阅读(2540)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
 
点击右上角即可分享
微信分享提示