默认的情况下,我们的ntpdNTP服务器会监听所有的端口或者IP地址,也就是:0。0。0。0:123。怎么才可以在一个Linux或是FreeBSDUnix服务器上,确保只监听特定的IP地址,比如localhost或者是192。168。1。1:123 NTP是网络时间协议NetworkTimeProtocol的首字母简写,这是一个用来同步两台电脑之间时间的协议。ntpd是一个操作系统守护进程,可以设置并且保证系统的时间与互联网标准时间服务器同步。 NTP使用etcdirectory之下的ntp。conf作为配置文件。 etcntp。conf之中的端口指令 你可以通过设置端口命令来防止ntpd监听0。0。0。0:123,语法如下: interfacelistenIPv4IPv6all interfaceignoreIPv4IPv6all interfacedropIPv4IPv6all 上面的配置可以使ntpd监听那个地址或者不出来任何请求而直接丢弃。ignore会防止打开匹配的地址,drop会导致ntpd打开该地址并丢弃所有接收到的包,而不做任何检查。举个例子,如果要忽略所有端口之上的监听,加入下面的语句到etcntp。conf: interfaceignorewildcard 如果只监听127。0。0。1和192。168。1。1则是这样: interfacelisten127。0。0。1 interfacelisten192。168。1。1 这是我FreeBSD云服务器上的样例etcntp。conf文件: egrepvetcntp。conf 样例输出为: tosminclock3maxclock6 pool0。freebsd。pool。ntp。orgiburst restrictdefaultlimitedkodnomodifynotrapnoquerynopeer restrict6defaultlimitedkodnomodifynotrapnoquerynopeer restrictsourcelimitedkodnomodifynotrapnoquery restrict127。0。0。1 restrict6::1 leapfilevardbntpd。leapseconds。list interfaceignorewildcard interfacelisten172。16。3。1 interfacelisten10。105。28。1 重启ntpd 在FreeBSDUnix之上重新加载重启ntpd: sudoetcrc。dntpdrestart 或者在Debian和UbuntuLinux之上使用下面的命令: sudosystemctlrestartntp 或者在CentOSRHEL7FedoraLinux之上使用下面的命令: sudosystemctlrestartntpd 校验 使用netstat和ss命令来检查ntpd只绑定到了特定的IP地址: netstattulpngrep:123 或是: sstulpngrep:123 样例输出: udp0010。105。28。1:1230。0。0。0: udp00172。16。3。1:1230。0。0。0: 在FreeBSDUnix服务器上使用sockstat命令: sudosockstat sudosockstat4 sudosockstat4grep:123 样例输出: rootntpd5991422udp4127。0。0。1:123: rootntpd5991424udp4127。0。1。1:123: 最后想要了解更多关于Linux发展前景趋势,请关注扣丁学堂Linux培训官网、微信等平台,扣丁学堂IT职业在线学习教育平台为您提供权威的Linux视频教程系统,通过千锋扣丁学堂金牌讲师在线录制的Linux视频教程课程,让你快速掌握Linux从入门到精通开发实战技能。扣丁学堂Linux技术交流群:659974587。