linux – 为什么ntpd会监听这么多端口/地址?

我已经注意到了一段时间了,这对我来说没有任何意义:

为什么ntpd需要监听这么多地址?

例如,Debian机器:

$netstat
Proto Local Address Foreign Address Program name
udp   0.0.0.0:123   0.0.0.0:*       ntpd
udp   127.0.0.1:123 0.0.0.0:*       ntpd
udp   [LAN]:123     0.0.0.0:*       ntpd
udp   [IPv4]:123    0.0.0.0:*       ntpd
udp6  :::123        :::*            ntpd
udp6  ::1:123       :::*            ntpd
udp6  [link-local]  :::*            ntpd
udp6  [IPv6]        :::*            ntpd

此(编辑)netstat列表显示nptd侦听IPv4和IPv6的广播,本地,LAN和全局地址.

为什么ntpd如此滥交?

解决方法

从我的 reading of this page开始,出于安全原因,ntp似乎部分不使用INADDR_ANY 0.0.0.0地址,部分原因是出于身份验证原因.

一个端口123低于1024,因此被视为特权端口,只有root可以绑定到该端口. Ntp通常设置为在启动后删除权限.根据我从邮件列表中理解的内容,以及删除权限后的文章无法打开套接字以从123的正确源端口回复,因此ntp会在删除权限之前为每个分配的地址打开套接字.

从我所看到的,ntp的一些认证机制基本上要求源和目标端口为123,而不是其他.

事情并不完全清楚.请参阅有关wildcard address 0.0.0.0的部分,由于某种原因它由ntpd打开,但是除了可能在某些特殊情况下可能永远不会使用的评论中,开发人员并不完全确定,但是,它们是不想删除套接字,以防万一他们破坏了东西.

Note that normally ntpd should not be accepting packets on the wildcard addresses since there are a number of problems if you do so including sending return packets on a different address from the sender’s requested address.
DannyMayer – 27 Apr 2009

我认为你的问题的主要答案在上面的评论中.

相关文章

Linux中的ARP防火墙主要用于防御ARP欺骗攻击,其效果取决于多...
insmod和modprobe加-f参数导致Invalid module format错误 这...
将ArchLinux安装到U盘 几个月前入门Arch的时候上网搜了不少安...
1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...