Daemon
是否有一個工具/守護程序可以在後台自動填充 /etc/ethers 以便在需要時正確喚醒 lan hostname:mac 數據庫?
是否有可用的工具/守護程序在後台使用正確的主機名:mac 對自動填充 /etc/ethers,以便在需要時擁有最新的數據庫,例如在區域網路上喚醒 (wol)?也許某些東西不會“掃描”網路,但會隨意轉儲 arp 記憶體或其他東西?
謝謝
可以處理大部分情況的工具是
arpwatch
. 預設情況下(至少在 Debian 上)是它寫入/var/lib/arpwatch/arp.dat
. 每次arpwatch
停止時都會刷新和更新此文件。該文件包含以下形式的條目:
52:54:00:aa:bb:cc 192.168.1.2 1452252063 somehostname eth0
該
/etc/ethers
文件只需要 MAC 地址和 IP 地址或可解析的主機名:52:54:00:aa:bb:cc 192.168.1.2
然後保持
/etc/ethers
更新並與一個小腳本同步非常簡單,每天從以下位置執行crontab
:#!/bin/bash # Flush arp.dat service arpwatch restart # Save a copy test -f /etc/ethers || touch /etc/ethers cp -fp /etc/ethers /etc/ethers.old # Check to see if anything new has arrived. If so rebuild the file ( echo '# This file is updated automatically from /var/lib/arpwatch/arp.dat' echo '# Take care when editing' echo '#' ( awk '{print $1,$2}' /var/lib/arpwatch/arp.dat grep -v '^#' /etc/ethers.old ) | sort -u ) >/etc/ethers.tmp # Update ethers with the new file cmp -s /etc/ethers.tmp /etc/ethers || cat /etc/ethers.tmp >/etc/ethers rm -f /etc/ethers.tmp # All done exit 0