如何将ntpd绑定到Linux/Unix上的特定IP地址
时间:2020-01-09 14:16:51 来源:igfitidea点击:
默认情况下,我的ntpd/NTP服务器侦听所有接口或IP地址,即0.0.0.0:123。
如何确保ntpd仅侦听Linux或FreeBSD Unix服务器上的特定IP地址(例如localhost或192.168.1.1:123)?
NTP是网络时间协议的缩写。
它用于计算机之间的时钟同步。
ntpd程序是一个操作系统守护程序,它与Internet标准时间服务器同步设置和维护系统的一天中的时间。
NTP是使用/etc /目录中的ntp.conf配置的。
/etc/ntp.conf中的接口指令
您可以通过设置interface命令来防止ntpd监听0.0.0.0:123。
语法为:
interface listen IPv4|IPv6|all interface ignore IPv4|IPv6|all interface drop IPv4|IPv6|all
上面配置了ntpd侦听或丢弃的网络地址,而不处理任何请求。
忽略将阻止打开匹配的地址,丢弃会导致ntpd打开地址并丢弃所有未检查的数据包。
例如,要忽略所有接口上的列表,请在/etc/ntp.conf中添加以下内容:
interface ignore wildcard
要仅收听127.0.0.1和192.168.1.1地址:
interface listen 127.0.0.1 interface listen 192.168.1.1
这是我的示例来自FreeBSD云服务器的/etc/ntp.conf文件:
$ egrep -v '^#|$^' /etc/ntp.conf
输出示例:
tos minclock 3 maxclock 6 pool 0.freebsd.pool.ntp.org iburst restrict default limited kod nomodify notrap noquery nopeer restrict -6 default limited kod nomodify notrap noquery nopeer restrict source limited kod nomodify notrap noquery restrict 127.0.0.1 restrict -6 ::1 leapfile "/var/db/ntpd.leap-seconds.list" interface ignore wildcard interface listen 172.16.3.1 interface listen 10.105.28.1
重启ntpd
在FreeBSD Unix上重新加载/重启ntpd:
$ sudo /etc/rc.d/ntpd restart
或在Debian/Ubuntu Linux上使用以下命令:
$ sudo systemctl restart ntp
或在CentOS/RHEL 7/Fedora Linux上使用以下命令:
$ sudo systemctl restart ntpd
验证
使用netstat命令/ss命令进行验证,或确保ntpd仅绑定到特定的IP地址:
$ netstat -tulpn | grep :123
或者
$ ss -tulpn | grep :123
输出示例:
udp 0 0 10.105.28.1:123 0.0.0.0:* - udp 0 0 172.16.3.1:123 0.0.0.0:*
在FreeBSD Unix服务器上使用sockstat命令:
$ sudo sockstat $ sudo sockstat -4 $ sudo sockstat -4 | grep :123
输出示例:
root ntpd 59914 22 udp4 127.0.0.1:123 *:* root ntpd 59914 24 udp4 127.0.1.1:123 *:*