目前,我的基于 Debian 的机器返回用于 ping 它的任何名称,因为它在回答 ping 时的名称:
- saturn:~$ ifconfig | grep "inet addr"
inet addr:192.168.0.103 Bcast:192.168.0.255 Mask:255.255.255.0
inet addr:127.0.0.1 Mask:255.0.0.0
- saturn:~$ ping -c 1 192.168.0.103 | grep from
64 bytes from 192.168.0.103: icmp_req=1 ttl=64 time=0.094 ms
- saturn:~$ ping -c 1 localhost | grep from
64 bytes from localhost (127.0.0.1): icmp_req=1 ttl=64 time=0.081 ms
- saturn:~$ ping -c 1 saturn | grep from
64 bytes from saturn (127.0.1.1): icmp_req=1 ttl=64 time=0.079 ms
- saturn:~$
我希望始终返回“saturn”。没有 DNS,这是在具有 DHCP 的本地 LAN 上。我读过一个问题关于 DNS但这里没有 PTR 记录可供配置。如何让所有 ping 都返回名称“saturn”?
谢谢。
答案1
您想要这个的理由充分吗?这是非标准行为。
Ping(和其他工具)根据 /etc/nsswitch.conf 查找 IP 解析结果。通常将“hosts”设置为“files dns”,这意味着它将首先查看 /etc/hosts,然后如果其中不包含任何有用信息,则使用 DNS。
答案2
对于要返回的本地机器saturn
,请输入以下内容/etc/hosts
:
127.0.0.1 saturn localhost
127.0.1.1 saturn localhost
192.168.0.103 saturn
编辑
使用mDNS
在 Linux 中,你需要avahi-daemon
...我在家里运行这个...当我从我妻子的 ubuntu 笔记本电脑登录到我的 debian 服务器时发生了这种情况,我的笔记本电脑也在运行avahi-daemon
..
[mpenning@tsunami ~]$ who
mpenning pts/0 2012-08-03 05:23 (jennykan-thinkpad-t61.local) <<<
mpenning pts/1 2012-08-02 01:16 (mpenning-vista.local)
[mpenning@tsunami ~]# ping jennykan-thinkpad-t61.local
PING jennykan-thinkpad-t61.local (172.16.1.74) 56(84) bytes of data.
64 bytes from jennykan-ThinkPad-T61.local (172.16.1.74): icmp_req=1 ttl=64 time=0.892 ms
64 bytes from jennykan-ThinkPad-T61.local (172.16.1.74): icmp_req=2 ttl=64 time=1.06 ms
^C
--- jennykan-thinkpad-t61.local ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.892/0.979/1.067/0.092 ms
[mpenning@tsunami ~]$
这也假设您的网络将正确传递多播...如果您有一个 Vlan,那应该不是问题。