我有一个Linux服务器,需要提供一些内部网的服务。 在networking环境中经常会有不熟悉使用笔记本电脑的用户,所以我想宣布他们可以直观地使用的服务。 理想情况下,当他们连接他们的机器到networking,他们会看到他们可以使用的服务,他们的操作系统将被通知可用的打印机等。
对于
最好的办法是什么? 我愿意接受任何build议,而不是在这里采用任何特定的技术。
对于我的特定应用程序,安全性不是什么大问题,但可以随意讨论任何build议的安全含义。
为了向苹果机器宣布Samba的股份,这里已经有了答案,但是我不认为avahi / Bonjour能够解决所有问题。 另外,我不是一个Windows用户,但是我想微软已经有一些类似的协议,可以和Windows客户端更好地协作。
最简单的方法可能是通过DHCP发布DNS和search域,并确保人们可以通过在浏览器中inputhelp来获得一个很好的文档页面。 在这个页面中,您可以列出您的资源以及如何从他们的机器访问它们。
那么你只需要确保人们知道这个…
您可以通过Bonjour将特定网页发布到Mac(Safari中的书签> Bonjour)和Bonjour(IE中的Bonjourbutton)的Windows中。 这个答案给出了一般的方法,添加一个<txt-record>来在网页服务器的根目录之下发布一个页面。 如果你喜欢的话,我可以详细说明一下。
你应该看看零configurationnetworking(zeroconf)的各种方法。
特别是,你会得到两个主要家庭(你应该能够并肩使用):
mDNS和DNS-DS,它们倾向于更好地与Linux和OSX客户端集成。 以这种方式宣传您的服务的一种方法是在您的服务器上设置Avahi(请参阅您已经链接的答案)。 Windows客户端应该能够看到这些设备,如果他们安装Bonjour(从苹果公司提供,并与Safari安装,据我所知),但Windows不支持这个开箱即用。
UPnP和SSDP 。 SSDP或多或less相当于DNS-DS。 这在Windows客户端上本机支持。 我不确定是否有任何事实上的Linux“标准”服务器(比如Avahi),但似乎已经集成在许多需要它的应用程序中(比如媒体服务器),所以你可能会发现有用的库从那里实施你所需要的。