Avahi-daemon 服務

一、概述

Avahi-daemon 是一個自動發現本地網路服務的系統,支持Zeroconf網路協議,它可以通過DNS-SD協議實現網路中各種服務的自動發現和解析,這樣在一個沒有DNS伺服器的網路中,可以輕鬆地共享文件、印表機、音頻設備等資源。

除了區域網內的服務發現功能之外,Avahi-daemon 也提供了分散式服務發現的功能,這使得在廣域網內部署基礎設施變得更加容易。

二、安裝

Avahi-daemon 的安裝非常簡單,我們可以通過以下命令來完成:

sudo apt-get install avahi-daemon avahi-utils

三、配置

默認情況下,Avahi-daemon 的配置文件位於 /etc/avahi/avahi-daemon.conf,我們可以通過編輯這個文件來配置 Avahi-daemon。

一些最常見的配置選項如下:

  • allow-interfaces:指定允許 Avahi-daemon 在哪些網卡介面上工作
  • publish-addresses:指定 Avahi-daemon 是否發布連接的 IP 地址作為站點信息
  • use-ipv4:指定是否啟用 IPv4
  • use-ipv6:指定是否啟用 IPv6

四、服務類型

在 Avahi-daemon 中,有很多不同類型的服務,其中使用最廣泛的服務類型如下:

  • ssh:用來訪問遠程主機
  • sftp-ssh:用來安全地傳輸文件
  • http:用來提供網路服務
  • ftp:用來傳輸文件
  • smb:用來共享文件和印表機
  • printer:用來分享印表機

五、發布服務

發布服務需要啟動應用程序並告訴 Avahi-daemon 要發布的服務類型和相關信息,以下是使用 Python 3 發布 HTTP 服務實例的示例:

# 引入 Avahi 服務套件
import dbus
import avahi

# 獲取系統上的 Avahi-daemon
bus = dbus.SystemBus()
server = dbus.Interface(bus.get_object(avahi.DBUS_NAME, avahi.DBUS_PATH_SERVER), avahi.Server)

# 添加服務到 Avahi-daemon
group = None
service_type = "http"
port = 80
name = "My HTTP Server"
domain = ""
host = socket.gethostbyname(socket.gethostname())
domain = domain.encode("latin-1")
name = name.encode("utf-8")
regtype = avahi.DBusString(service_type)
domain = avahi.DBusString(domain)
host = avahi.DBusString(host)
target = avahi.DBusString("%s.local" % name)
protocol = avahi.PROTO_UNSPEC

if not group:
    group = avahi.ServiceGroup(server, name, regtype, domain, protocol, 0)

group.AddService(avahi.IF_UNSPEC, protocol, 0, name, regtype, domain, host, avahi.uint16(port), avahi.string_array_to_txt_array(["path=/index.html"]), avahi.dict_to_txt_array({}))
group.Commit()

六、瀏覽服務

使用 Avahi-browse 命令可以瀏覽當前網路中的服務,例如,可以使用以下命令來查看所有的 HTTP 服務:

avahi-browse -t -r _http._tcp

原創文章,作者:HDFKH,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/361195.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
HDFKH的頭像HDFKH
上一篇 2025-02-24 00:34
下一篇 2025-02-24 00:34

相關推薦

  • Docker錯誤:response from daemon

    一、什麼是response from daemon錯誤 Docker是一個廣泛使用的容器化平台,但是在編寫Dockerfile和構建Docker鏡像時,經常會遇到response …

    編程 2025-02-24
  • 如何有效運用–daemon提升網站搜索曝光率

    一、什麼是daemon daemon是在後台運行的程序,它可以隨時接受輸入並處理任務。常見的daemon包括syslogd、httpd、sshd等等。這些程序在後台運行,隨時監聽著…

    編程 2025-01-09
  • 如何在Linux上部署守護進程(daemon)

    在Linux系統中,守護進程是一種後台運行的進程。它可以在系統啟動時自動啟動,並一直運行,直到系統關閉。在本文中,我們將詳細介紹如何在Linux上部署守護進程。 一、創建守護進程的…

    編程 2024-11-17
  • Daemon開發全解析

    一、Daemon Daemon是Linux系統上的常駐後台程序,它負責在系統啟動時啟動,在系統關閉時關閉,並通過與操作系統交互,使業務程序在後台保持運行狀態。 它是一種無界面程序,…

    編程 2024-10-04

發表回復

登錄後才能評論