我在 Windows 7 上的 VirtualBox 中运行 Ubuntu 12.04。我还有一个较旧的开发平台,需要使用旧时间协议设置其内部时钟。我承认我绝不是一个系统管理员,(虽然这段经历让我知道我需要学习更多),而且网上似乎没有关于如何做到这一点的信息……
我目前所做的:
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,所以我将“禁用”更改为“否”。这样做了:
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
这可能是错的。我尝试使用的软件说它无法通过网络设置时间,所以我希望有人能帮助我。谢谢。
答案1
您不需要使用iptables
,服务正在按预期运行。
telnet
连接到本地主机的 37 端口,xinetd
发送表示时间的 32 位无符号整数(这就是?g
您在输出中看到的)并关闭连接。