FreeBSD安装OpenNTPD NTP服务器/客户端以同步本地时钟

时间:2020-01-09 10:38:33  来源:igfitidea点击:

如何安装OpenNTPD(实现网络时间协议的Unix系统守护程序),以将FreeBSD计算机系统的本地时钟与名为ntp.myisp.com的远程NTP服务器同步?
对于各种UNIX应用程序(例如BIND,Crond,Apache等),在服务器上保留准确的时间很重要。

OpenNTPD能够充当NTP服务器以及兼容NTP的客户端的NTP服务器。
默认的ntpd服务器无法绑定到特定的IP地址。
如果您打算使用FreeBSD监狱,则必须禁用ntpd并使用OpenNTPD。

OpenNTPD安装

执行以下命令以更新FreeBSD端口树:

# portsnap fetch update

或者

# pkg update && pkg upgrade

要安装OpenNTPD服务器,请执行:

# cd /usr/ports/net/openntpd
# make install clean

或者

# pkg install openntpd

输出示例:
FreeBSD使用pkg命令安装OpenNTPD

配置文件

  • /usr/local/sbin/ntpdOpenNTPD网络服务器文件。
  • /usr/local/etc/rc.d/openntpdOpenNTPD启动脚本来启动/停止OpenNTPD服务器。
  • /usr/local/etc/ntpd.confOpenNTPD配置文件。
  • TCP/UDP端口#123 OpenNTPD NTP端口。

打开/usr/local/etc/ntpd.conf文件,执行:

# vi /usr/local/etc/ntpd.conf

更新配置如下:

# Do not listen to all IP, just bind
# openntpd to Ipv4 203.11.22.33, 10.21.16.223, IPv6 2607:f0d0:3001:0009:0000:0000:0000:0001
# and loopback
listen on 203.11.22.33
listen on 10.21.16.223
listen on 2607:f0d0:3001:0009:0000:0000:0000:0001
listen on 127.0.0.1
 
# Sync to a single server
server ntp.myisp.com
 
# Use a random selection of 8 public stratum 2 servers
servers pool.ntp.org

打开OpenNTPD服务

启用OpenNTPD服务:

# echo 'openntpd_enable="YES"' >> /etc/rc.conf

启动OpenNTPD服务

# /usr/local/etc/rc.d/openntpd start

或者

# service openntpd start

停止OpenNTPD服务

# /usr/local/etc/rc.d/openntpd stop

或者

# service openntpd stop

重新启动OpenNTPD服务

# /usr/local/etc/rc.d/openntpd restart

或者

# service openntpd restart

验证OpenNTPD服务

找出状态:

# /usr/local/etc/rc.d/openntpd status

或者

# service openntpd status

输出示例:

openntpd is running as pid 68596 68597.

验证开放端口:

# sockstat -4 -p 123

或者

# sockstat -46 -p 123

输出示例:

_ntp     ntpd       68597 4  udp4   10.21.16.223:61228     10.0.1.22:123
_ntp     ntpd       68597 6  udp4   203.11.22.33:123     *:*
_ntp     ntpd       68597 7  udp4   10.21.16.223:123       *:*
_ntp     ntpd       68597 8  udp6   2607:f0d0:3001:9::1:123*:*
_ntp     ntpd       68597 9  udp4   127.0.0.1:123         *:*
_ntp     ntpd       68597 10 udp4   203.11.22.33:51829   69.31.43.10:123
_ntp     ntpd       68597 11 udp4   203.11.22.33:52453   67.159.5.90:123
_ntp     ntpd       68597 12 udp4   203.11.22.33:58929   71.6.192.221:123
_ntp     ntpd       68597 13 udp4   203.11.22.33:60272   198.144.194.12:123
_ntp     ntpd       68597 14 udp4   203.11.22.33:51298   216.45.57.39:123

通过PF防火墙打开出站端口端口123

如下更新您的/etc/pf.conf:

# Note $ext_if is your interface facing the Internet
# Useful for dedicated FreeBSD server #
# Ipv4 Open outgoing port TCP 123 (NTP)
pass out on $ext_if proto tcp to any port ntp
 
# Ipv6 Open outgoing port TCP 123 (NTP)
pass out on $ext_if inet6 proto tcp to any port ntp
 
# Ipv4 Open outgoing port UDP 123 (NTP)
pass out on $ext_if proto udp to any port ntp
 
# Ipv6 Open outgoing port UDP 123 (NTP)
pass out on $ext_if inet6 proto udp to any port ntp

重新加载防火墙规则:

# /sbin/pfctl -nf /etc/pf.conf && /etc/rc.d/pf reload