Network Time Protocol (NTP) es un protocolo de red para sincronizar el reloj de un computador con la hora de una fuente de referencia, logrando una precisión de orden de milisegundos con respecto a la Hora Universal Coordinada (UTC). La hora UTC, que ha sido adoptada como la escala de tiempo estándar por la mayoría de las naciones del mundo, es basada en la rotación de la Tierra alrededor de su eje y en el calendario Gregoriano, que a su vez es basado en la rotación de la Tierra alrededor del Sol.
La hora UTC es diseminada a través de receptores especiales, como radios, satélites o módems, manejados por los gobiernos de varias naciones del mundo. Un número limitado de computadores están equipados con estos receptores y actúan como servidores de tiempo primarios (stratum 1), usados para sincronizar un número mucho mayor de servidores secundarios (stratum 2), que a su vez sincronizan a clientes ternarios (stratum 3) a través de protocolos de sincronización, como NTP, cuyos daemons a la vez actúan como servidores para sincronizar aún más clientes. Esto crea una cascada de servidores sincronizados.
¿Por qué sincronizar el reloj? Las ventajas son muchas y las desventajas ninguna. El reloj sincronizado con NTP está siempre a la hora oficial y no es necesario ajustarlo cada cierto tiempo. Los problemas asociados a un reloj desincronizado son múltiples. Por ejemplo, el sello de tiempo cuando se crea o modifica un archivo puede quedar con la hora y fecha equivocada. El correo electrónico que envías desde el computador podría llevar un sello de tiempo equivocado. ¿No te ha sucedido que has recibido correo con fechas totalmente erróneas?
Los computadores poseen en su circuito un reloj bastante inexacto, llamado reloj CMOS o reloj del hardware. Hemos comprobado que el drift típico del reloj del hardware en nuestros computadores es de unos 20 segundos por día. Esa es la inexactitud típica de un reloj de hardware que funciona correctamente. No es raro en computadores viejos que éste reloj esté defectuoso, probablemente debido a una batería descargada. Cuando el computador arranca, el reloj del sistema (el que ves en la barra del escritorio) se coloca según el reloj del hardware. Por eso sucede que al arrancar el computador, el reloj del sistema aparece a una hora y fecha descolocada, a pesar de haber sido puesto a la hora correcta recientemente. Esto se debe a la inexactitud o defecto del reloj del hardware.
El reloj del hardware se modifica con el comando hwclock (hardware clock),
# hwclock --set --date="11/09/2006 15:27:30"
La fecha tiene el formato Inglés mm/dd/aaaa. El reloj de sistema no se modifica con éste comando, porque lo que se modificó fue el reloj del hardware. Copia la hora del reloj del hardware al reloj del sistema con el comando,
# hwclock --hctosys
Observa el reloj de la barra o da el comando 'date' para ver el efecto. hctosys significa "hardware clock to system clock".
Primero, verifica que la variable de entorno UTC esté puesta en "UTC=yes" en el archivo de configuración /etc/default/rcS. Si el computador tiene adicionalmente el sistema operativo Windows, deja la variable en "UTC=no". Verifica que la zona esté correcta en el archivo de configuración /etc/timezone. Esta debería decir America/Santiago. Si la zona está incorrecta, modifícala con el comando tzselect. Luego da el comando date para ver la hora del sistema. Este comando retornará a la pantalla algo así,
Sat Feb 3 15:22:57 CLT 2007
Instala el paquete ntpdate con,
# apt-get install ntpdate
La herramienta ntpdate es útil para sincronizar rápidamente la hora del sistema a la del servidor NTP y se corre siempre al arrancar el computador. Si deseas sincronizar nuevamente da el comando,
# ntpdate cl.pool.ntp.org 5 Feb 13:31:05 ntpdate[12599]: adjust time server 146.83.183.179 offset 0.000586 sec
A modo de prueba, modifica la hora con hwclock, atrasándola 12 horas y luego corre 'ntpdate cl.pool.ntp.org' para que veas como se sincroniza la hora rápidamente.
Esta herramienta no es apta para sincronizar cada cierto tiempo. Para ello se usa el daemon ntpd.  
Corre ntpdate una vez y luego instala el paquete ntp con,
# apt-get install ntp
El daemon ntpd correrá la sincronización cada cierto tiempo (varios minutos) tal de no ocupar mucha red.
La configuración de NTP está en el archivo /etc/ntp.conf y debería decir algo así,
# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help driftfile /var/lib/ntp/ntp.drift # Enable this if you want statistics to be logged. #statsdir /var/log/ntpstats/ statistics loopstats peerstats clockstats filegen loopstats file loopstats type day enable filegen peerstats file peerstats type day enable filegen clockstats file clockstats type day enable # You do need to talk to an NTP server or two (or three). #server ntp.your-provider.example # pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will # pick a different set every time it starts up. Please consider joining the # pool: <http://www.pool.ntp.org/join.html> server 0.debian.pool.ntp.org iburst dynamic server 1.debian.pool.ntp.org iburst dynamic server 2.debian.pool.ntp.org iburst dynamic server 3.debian.pool.ntp.org iburst dynamic
Lo más importante de este archivo es la definición del servidor NTP que se especifica en server. Los servidores 0.debian.pool.ntp.org, etc. son un alias a la lista rotante de servidores NTP correspondientes al país de origen. En Chile existen actualmente tres,
ntp.reuna.cl inti.inf.utfsm.cl trauco.inf.utfsm.cl
Verifica la sincronización después de unos 5 a 10 minutos con el comando ntptrace. Este comando retornará a la pantalla algo así,
$ ntptrace localhost: stratum 3, offset 0.000044, synch distance 1.16098 146.83.183.179: stratum 2, offset 0.000032, synch distance 0.16200 ntp0.ja.net: stratum 1, offset -0.023523, synch distance 0.00212, refid 'MSF'
Esto indica que el computador está sincronizado y a la vez se ha transformado en un servidor ternario (stratum 3).
Si ejecutando el comando ntptrace aparece el mensaje,
$ ntptrace localhost: stratum 16, offset 0.000025, synch distance 0.00002 0.0.0.0: *Not Synchronized*
todavía no hay sincronización. Verifica todos los pasos de este manual y reinicia ntpd con,
# /etc/init.d/ntp restart
Finalmente, la sincronización ajusta el reloj del sistema, por lo que es necesario copiarla al reloj del hardware. Lo más simple es reiniciar hwclock con el comando,
# /etc/init.d/hwclock.sh restart
Aparecerá un mensaje así,
Saving the system clock..
No es necesario hacer esto manualmente cada cierto tiempo. Debian reinicia hwclock para poner el reloj del hardware a la hora del sistema cada vez que el sistema se apaga o arranca.
Configura primero NTP cliente. Edita /etc/ntp.conf y modifica las restricciones, removiendo noquery,
... restrict -4 default kod notrap nomodify nopeer restrict -6 default kod notrap nomodify nopeer ...
Si tienes un cortafuego, habilita el puerto 123 UDP hacia requerimientos por la interfase que va a servir NTP.
Reinicia ntpd con,
# /etc/init.d/ntp restart
Si deseas más información sobre NTP puedes instalar el paquete ntp-doc y leer la documentación adjunta. También puedes ir a la página web del proyecto pool NTP 1.
 
[1] - http://www.pool.ntp.org
This document was generated using AFT v5.097