ºìÁªLinuxÃÅ»§
Linux°ïÖú

ÔÚ¾ÖÓòÍøÖÐÉèÖÃLinuxϵͳʱ¼ä·þÎñÆ÷

·¢²¼Ê±¼ä:2006-11-08 10:00:20À´Ô´:ºìÁª×÷Õß:chxuemei
¡¡¡¡Ò» ¸ÅÊö£º

¡¡¡¡±¾ÎÄÖ÷ҪĿµÄÊǼòµ¥½éÉÜÈçºÎÔÚ¾ÖÓòÍøÉÏÉèÖÃһ̨Linuxʱ¼ä·þÎñÆ÷Ó뻥ÁªÍøÉϵÄʱ¼ä·þÎñÆ÷ͬ²½²¢ÇÒÈçºÎʹ¾ÖÓòÍøÉÏÆäËüLinux¼°Windows¿Í»§Ïò¸ÃLinuxʱ¼ä·þÎñÆ÷ͬ²½¡£

¡¡¡¡¶þ ·þÎñÆ÷ÉèÖÃ

¡¡¡¡Ê×ÏÈ˵Ã÷ÎÒÃÇÈçºÎÉèÖÃLANÉϵÄʱ¼ä·þÎñÆ÷ͬ»¥ÁªÍøÉϵĵÚÒ»»òÕßµÚ¶þ¼¶Ê±¼ä·þÎñÆ÷ͬ²½À´±£Ö¤¾«È·µÄʱ¼ä¡£

¡¡¡¡1. ÈçºÎÈÃLANµÄʱ¼ä·þÎñÆ÷(µÚÈý¼¶)Ó뻥ÁªÍøÉϵÄʱ¼ä·þÎñÆ÷(µÚÒ»»òÕßµÚ¶þ¼¶)ͬ²½

¡¡¡¡a. XNTP°ü£¬°üº¬ÔÚ´ó¶àÊýLinux CDÀïÃæ¡£ Ö÷Ò³ÔÚhttp://www.eecis.udel.edu/~ntp/ ÄãÖ»ÐèÒªÔÚ/etc/ntp.confÖÐÉèÖÃserverºÍdriftfileÁ½Ïî²ÎÊý¼´¿É£¬serverÏîÄã¿ÉÒÔ´ÓÉÏÃæµÄÖ÷Ò³ÖÐÕÒ¹«¹²µÄʱ¼ä·þÎñÆ÷ÓòÃû¡£ÀýÈç

ÒýÓÃ:
server rackety.udel.edu
server umd1.umd.edu
server lilben.tn.cornell.edu
driftfile /etc/ntp/drift


¡¡¡¡È»ºóÆô¶¯XNTPDºǫ́³ÌÐò

ÒýÓÃ:
#/etc/rc.d/init.d/xntpd start


¡¡¡¡b. "getdate"£¬ËæSlackware¶øÀ´µÄС³ÌÐò£¬ÍƼöʹÓ㬴ó¶àÊýʱºò£¬ÎÒÃǶÔʱ¼äµÄ¾«È·ÐÔÒªÇó²»ÊǷdz£µÄ¿Á¿Ì£¬ËùÒÔÕâ¸ö³ÌÐòÍêÈ«¹»ÓöøÇҺܷ½±ã¡£ÏÂÔØ:ftp://metalab.unc.edu/pub/Linux/system/network/misc/getdate_rfc868-1.2.tar.gzÈ»ºóÉèÖÃÏÂÃæµÄscripts È¡ÃûΪ/usr/local/sbin/get-date.sh

ÒýÓÃ:
#!/bin/sh

timehosts="otc2.psu.edu wwvb.erg.sri.com ntp.nasa.gov"

if /usr/local/bin/getdate -adjust 10 200 $timehosts > /dev/null; then
/sbin/clock --systohc
fi


¡¡¡¡ÏÖÔÚ¿ÉÒÔÉèÖÃcronjobÿСʱ½øÐÐͬ²½

ÒýÓÃ:
0 0-23 * * * /usr/local/sbin/get-date.sh


¡¡¡¡2. ÈçºÎʹµÃLANÉÏÆäËülinux/windows¿Í»§Ó븥̃·þÎñÆ÷ͬ²½

¡¡¡¡a. Èç¹û¸Ą̃ʱ¼ä·þÎñÆ÷Ò²ÊǾÖÓòÍøÉϵÄSamba·þÎñÆ÷,Ôò¶ÔWindowsÀ´Ëµ£¬²»ÐèÒª°²×°ÈκÎʱ¼äͬ²½Èí¼þ£¬ÒòΪwindows¿Í»§¿ÉÒÔÓà net time \\timeserver /set /yesÀ´Óë֮ͬ²½¡£¿ÉÒԷŸÃÃüÁîÔÚstartup ÖÐ×Ô´ÎÆô¶¯windowsʱ×Ô¶¯Í¬²½¡£net time ÃüÁîÀûÓÃNetbios over TCP/IPЭÒéÀ´Í¬²½Ê±¼ä£¬µ«½ö¶ÔWindows¿Í»§ÓÐЧ£¬Linux¿Í»§ÎÞ·¨Ê¹Óá£

¡¡¡¡b. Èç¹û·þÎñÆ÷ÔËÐÐNTPºǫ́·þÎñ³ÌÐò£¬ÀýÈçÇ°Ãæ½²µÄXNTPD£¬Ôò¶ÔWindows¿ÉÒÔ°²×°ÏÂÃæµÄÁ½¸öÃâ·ÑÈí¼þÓë·þÎñÆ÷ͬ²½£ºhttp://home.att.net/~Tom.Horsley/ntptime.html (ntptime) µ¥Ò»µÄºǫ́³ÌÐò£¬×Ô¶¯Ñ°ÕÒLANÉϵÄNTP·þÎñÆ÷£¬¿ÉÔÚ¿ØÖÆÃæ°åÖÐÉèÖÃͬ²½Ìõ¼þ, http://nettime.sourceforge.net/ (Nettime)¡£Ö§³ÖNTP(udp/123) , time(udp/37), time(tcp/37)¡£Linux: Ôò¿ÉÒÔÓÃntpdate(ËæXNTPD¶øÀ´)ÔËÐÐ×÷Ϊcronjob Óë ¸Ã¾ÖÓòÍøÉϵÄʱ¼ä·þÎñÆ÷ͬ²½¡£

¡¡¡¡c. Èç¹û¸Ą̃·þÎñÆ÷ʹÓÃgetdateÓ뻥ÁªÍøÉÏʱ¼ä·þÎñÆ÷ͬ²½£¬ÔòÄã¿ÉÒÔÉèÖÃ/etc/inetd.conf£¬´ò¿ªtime udpºÍtime tcp·þÎñ£¬ÈÃlinux/windows¿Í»§Óë֮ͬ²½¡£¶Ôwindows,Äã¿ÉÒÔʹÓÃÏóÉÏÃæ½éÉܵÄNettimeÈí¼þ¡£¶ÔLinux¿Í»§,Äã¿ÉÒÔÓÃrdate -s ÔËÐÐ×÷Ϊcronjob Óë֮ͬ²½:

ÒýÓÃ:
time stream tcp nowait root internal
time dgram udp wait.200 root internal


¡¡¡¡LinuxϵÄrdate -s ÃüÁîʹÓÃtime (37/tcp) , Nettime Äã¿ÉÒÔÖ¸¶¨37/tcp»òÕß37/udp

¡¡¡¡Èý FAQ

¡¡¡¡1. ÔõÑùÈ·¶¨net timeÓõÄÊÇNetbios over TCP/IP?

¡¡¡¡ÔÚSamba·þÎñÆ÷ÉÏÔËÐÐtcpdump

ÒýÓÃ:
# /usr/sbin/tcpdump host 192.168.1.3


¡¡¡¡(192.168.1.3ÊÇwindows¿Í»§¶ËµÄIPµØÖ·)

¡¡¡¡2. ÔõÑùÈ·¶¨windows NTP¿Í»§ntptimeÕýÔÚºǫ́ÓëLinux NTPʱ¼ä·þÎñÆ÷ͬ²½£¿

¡¡¡¡ÔÚNTP·þÎñÆ÷ÉÏÔËÐÐ

ÒýÓÃ:
# tcpdump udp port 123


¡¡¡¡²é¿´Êä³ö

¡¡¡¡Ä¬ÈÏÊÇÿÎå·ÖÖÓntptimeÏòNTP·þÎñÆ÷²éѯһ´Î£¬Äã¿ÉÒÔ´ÓÖ÷Ò³ÉÏÏÂÔØ¿ØÖÆÃæ°åÖеĿØÖÆÌõ¼þÉèÖóÌÐò¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ