У меня Ubuntu 12.04 работает внутри VirtualBox в Windows 7. У меня также есть более старая платформа разработки, которая должна устанавливать свои внутренние часы, используя старый протокол времени. Я признаю, что я ни в коем случае не сисадмин (хотя этот опыт показывает, что мне нужно больше учиться), и поскольку в сети, похоже, нет ничего о том, как это сделать ...
Что я сделал до сих пор:
sudo apt-get update
sudo apt-get install nfs-common nfs-kernel-server xinetd ;; nfs needed too
Мой отредактированный /etc/xinetd.d/time:
# default: off
# description: An RFC 868 time server. This protocol provides a
# site-independent, machine readable date and time. The Time service sends back
# to the originating source the time in seconds since midnight on January first
# 1900.
# This is the tcp version.
service time
{
disable = no
type = INTERNAL
id = time-stream
socket_type = stream
protocol = tcp
user = root
wait = no
}
# This is the udp version.
service time
{
disable = yes
type = INTERNAL
id = time-dgram
socket_type = dgram
protocol = udp
user = root
wait = yes
}
Требуется tcp, поэтому я изменил «disable» на «нет». Сделал это:
sudo /etc/init.d/xinetd restart
В документации сказано проверить порт с помощью telnet:
sudo telnet localhost 37
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
?gConnection closed by foreign host.
Никогда не использовав telnet, (не смейтесь ...), я даже не Я знаю, что это значит, поэтому я подумал, что мне может понадобиться открыть брандмауэр:
sudo iptables -A INPUT -p tcp --dport 37 -j ACCEPT
sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:time
ACCEPT all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Что, вероятно, НЕПРАВИЛЬНО. Программное обеспечение, которое я пытаюсь использовать, говорит, что оно не может установить время по сети, поэтому я надеюсь, что кто-то может мне помочь. Спасибо.
Вам не нужно использовать iptables
, сервис работает как положено.
telnet
подключается к локальному узлу через порт 37, xinetd
отправляет 32-разрядное целое число без знака, представляющее время (это ?g
, который вы видите на выходе), и закрывает соединение.