时区改变时 iptables 如何表现?

时区改变时 iptables 如何表现?

我怀疑 iptables 在时区改变时如何不断改变 iptables 中的信息。我使用的是 iptables sv 1.4.8

我已经封锁了一个 IP,详情如下

 # date
    Thu Jun 6 12:46:42 IST 2013

#iptables -A INPUT -s 10.0.3.128 -m time --datestart 2013-6-6T12:0:00 --datestop 2013-6-6T13:0:00 -j DROP

# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- 10.0.3.128 anywhere TIME starting from 2013-06-06 12:00:00 until date 2013-06-06 13:00:00

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

但在我改变时区之后,以下事情自动发生了。

时区更改后++++++++++++++++++++++++

#date
Thu Jun 6 15:17:48 HKT 2013

# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- 10.0.3.128 anywhere TIME starting from 2013-06-06 14:30:00 until date 2013-06-06 15:30:00

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
#

规则中的时间值发生了变化。它随着时区的变化而变化。iptables 会跟踪时区。

请解释一下。

答案1

它没有跟踪任何东西。它将字符串转换2013-6-6T12:0:002013-6-6T13:0:00原始time_t当您添加规则时,使用您当时设置的时区。然后,当您稍后运行时-L,它会使用新的当前时区将该时间戳转换回可读字符串。

初始命令中隐含的时区信息在执行完成后立即丢失,并且每次执行都会iptables -L尝试通过将当前时区应用于来重建原始时间字符串time_t

相关内容