扣丁學堂Linux培訓之在Linux/Unix之上綁定ntpd到特定的IP地址分享
默認的情況下,我們的ntpd/NTP服務器會監聽所有的端口或者IP地址,也就是:0.0.0.0:123。怎么才可以在一個Linux或是FreeBSDUnix服務器上,確保只監聽特定的IP地址,比如localhost或者是192.168.1.1:123

NTP是網絡時間協議NetworkTimeProtocol的首字母簡寫,這是一個用來同步兩臺電腦之間時間的協議。ntpd是一個操作系統守護進程,可以設置并且保證系統的時間與互聯網標準時間服務器同步。
NTP使用/etc/directory之下的ntp.conf作為配置文件。
/etc/ntp.conf之中的端口指令
你可以通過設置端口命令來防止ntpd監聽0.0.0.0:123,語法如下:
interfacelistenIPv4|IPv6|all
interfaceignoreIPv4|IPv6|all
interfacedropIPv4|IPv6|all
上面的配置可以使ntpd監聽那個地址或者不出來任何請求而直接丟棄。ignore會防止打開匹配的地址,drop會導致ntpd打開該地址并丟棄所有接收到的包,而不做任何檢查。舉個例子,如果要忽略所有端口之上的監聽,加入下面的語句到/etc/ntp.conf:
interfaceignorewildcard
如果只監聽127.0.0.1和192.168.1.1則是這樣:
interfacelisten127.0.0.1
interfacelisten192.168.1.1
這是我FreeBSD云服務器上的樣例/etc/ntp.conf文件:
$egrep-v'^#|$^'/etc/ntp.conf
樣例輸出為:
tosminclock3maxclock6
pool0.freebsd.pool.ntp.orgiburst
restrictdefaultlimitedkodnomodifynotrapnoquerynopeer
restrict-6defaultlimitedkodnomodifynotrapnoquerynopeer
restrictsourcelimitedkodnomodifynotrapnoquery
restrict127.0.0.1
restrict-6::1
leapfile"/var/db/ntpd.leap-seconds.list"
interfaceignorewildcard
interfacelisten172.16.3.1
interfacelisten10.105.28.1
重啟ntpd
在FreeBSDUnix之上重新加載/重啟ntpd:
$sudo/etc/rc.d/ntpdrestart
或者在Debian和UbuntuLinux之上使用下面的命令:
$sudosystemctlrestartntp
或者在CentOS/RHEL7/FedoraLinux之上使用下面的命令:
$sudosystemctlrestartntpd
校驗
使用netstat和ss命令來檢查ntpd只綁定到了特定的IP地址:
$netstat-tulpn|grep:123
或是:
$ss-tulpn|grep:123
樣例輸出:
udp0010.105.28.1:1230.0.0.0:*-
udp00172.16.3.1:1230.0.0.0:*-
在FreeBSDUnix服務器上使用sockstat命令:
$sudosockstat
$sudosockstat-4
$sudosockstat-4|grep:123
樣例輸出:
rootntpd5991422udp4127.0.0.1:123*:*
rootntpd5991424udp4127.0.1.1:123*:*
最后想要了解更多關于Linux發展前景趨勢,請關注扣丁學堂Linux培訓官網、微信等平臺,扣丁學堂IT職業在線學習教育平臺為您提供權威的Linux視頻教程系統,通過千鋒扣丁學堂金牌講師在線錄制的Linux視頻教程課程,讓你快速掌握Linux從入門到精通開發實戰技能。扣丁學堂Linux技術交流群:659974587。
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。







