ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

ubuntu安装局域网域名解析服务

2021-06-28 16:04:35  阅读:289  来源: 互联网

标签:samba nmbd -- 域名解析 局域网 ubuntu avahi name


方案1 : samba

简介

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

在此我们仅使用samba的nmbd服务,即名字解析和浏览服务

安装apt install samba

apt install samba

配置

启动配置

安装samba后,可以通过安装信息看到,samba的开机启动服务配置文件为

/lib/systemd/system/samba-ad-dc.service
/lib/systemd/system/nmbd.service
/lib/systemd/system/smbd.service

本来我想的是使用命令行启动,但是我看了下service文件,发现samba的三个守护进程是相互独立的,所以对于nmbd 守护进程的配置,还是使用系统默认的方式

  • 设置开机启动
systemctl enable nmbd
  • 启动nmdb
systemctl start nmbd
  • 重新启动nmbd
systemctl restart nmbd
  • 查看nmbd的状态
systemctl status nmbd

nmbd配置

samba的默认配置文件位于/etc/samba/smb.conf,netbios name字段用于设置设备在网络上的名称

[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of
   workgroup = WORKGROUP
 
# netbios name should be device name or dns name or hostname
    netbios name = isrv-1000

设置完后需要重启nmbd

验证

Linux:

~# nmblookup isrv-1000
192.168.20.130 isrv-1000<00>

Windows: in cmd.exe

C:\Users\xxxx> ping isrv-1000

正在 Ping isrv-1000 [192.168.20.130] 具有 32 字节的数据:
来自 192.168.20.130 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.20.130 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.20.130 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.20.130 的回复: 字节=32 时间<1ms TTL=64

192.168.20.130 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

方案2 : Avahi

Avahi是一个采用DNS Service Discovery(DNS SD,RFC 6763中单独指定的Zeroconf技术)和Multicast DNS(mDNS,协议发布为RFC 6762) 鉴别技术来进行网络零配置,可以配合DNS使用,在局域网络中没有DNS服务器时,可替代DNS

Avahi的功能是针对Zeroconf 技术和mDNS规范,samba则是NETBIOS规范的实现
Avahi被广泛的使用,很多网络服务程序的依赖,包括samba在内,我在近期的几个分布式编解码的方案中都有发现这个程序,用于设备发现和设备网络的自动配置

目前Windows系统中仅有win10支持Avahi,所以仅能在win10下进行域名解析,这里提出这个方案仅作为未来的替换方案,或可作为分布式系统中节点的设备发现和网络配置方案

安装

sudo apt-get install avahi-daemon avahi-utils

使用

在Linux中

# 启动daemon
>>> avahi-daemon 

# 设置名字
>>> avahi-set-host-name -v zhangbin-ubuntu
Server version: avahi 0.6.32-rc; Host name: alex-ubuntu.local
Host name successfully changed to zhangbin-ubuntu.local

在Windows10中测试

C:\Users\zb>ping zhangbin-ubuntu.local

正在 Ping zhangbin-ubuntu.local [fe80::250:56ff:fe27:5f94%19] 具有 32 字节的数据:
来自 fe80::250:56ff:fe27:5f94%19 的回复: 时间<1ms
来自 fe80::250:56ff:fe27:5f94%19 的回复: 时间<1ms
来自 fe80::250:56ff:fe27:5f94%19 的回复: 时间<1ms
来自 fe80::250:56ff:fe27:5f94%19 的回复: 时间<1ms

fe80::250:56ff:fe27:5f94%19 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

在Windows10中的浏览器中测试(在此用curl代替),我在ubuntu上用node启动了一个http服务器,在Windows中使用http://zhangbin-ubuntu.local:8888/ 进行访问

$ curl -i http://zhangbin-ubuntu.local:8888/
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    33    0    33    0     0     12      0 --:--:--  0:00:02 --:--:--    12HTTP/1.1 200 OK
Content-Type: text/plain
charset: utf-8
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: PUT,POST,GET,DELETE,OPTIONS
Date: Wed, 04 Nov 2020 09:58:47 GMT
Connection: keep-alive
Transfer-Encoding: chunked

{"id":"0036",name:"jack",arg:123}

测试时使用的node脚本

>>> cat test.js 
/*
* @Author: zb
* @Date:   2020-11-04 15:17:03
* @Last Modified by:   zb
* @Last Modified time: 2020-11-04 15:17:21
*/
var http = require("http");

function onRequest(request, response){
      console.log("Request received.");
      var str='{"id":"0036",name:"jack",arg:123}';
      response.writeHead(200,{"Content-Type":'text/plain','charset':'utf-8','Access-Control-Allow-Origin':'*','Access-Control-Allow-Methods':'PUT,POST,GET,DELETE,OPTIONS'});
      //response.writeHead(200,{"Content-Type":'application/json','Access-Control-Allow-Origin':'*','Access-Control-Allow-Methods':'PUT,POST,GET,DELETE,OPTIONS'});
      //response.write("Hello World 8888\n");
      response.write(str);
      response.end();
}

http.createServer(onRequest).listen(8888);

avahi其他

>>> avahi-resolve-host-name -h
avahi-resolve-host-name [options] [-n] <host name ...>
avahi-resolve-host-name [options] -a <address ... >

    -h --help            Show this help
    -V --version         Show version
    -n --name            Resolve host name
    -a --address         Resolve address
    -v --verbose         Enable verbose mode
    -6                   Lookup IPv6 address
    -4                   Lookup IPv4 address

一个设备存在多个网卡或者虚拟网卡时,优先返回

标签:samba,nmbd,--,域名解析,局域网,ubuntu,avahi,name
来源: https://blog.csdn.net/qq_24276421/article/details/118305694

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有