在CentOS中用于GCM命令的iptablesconfiguration

我打算为我的CentOS虚拟机启用iptables。 已经configuration了以下规则。 但是,对于GCM(Google Cloud Messaging)命令,它无法接收来自GCM服务器的回复。 如果我禁用iptables它完美的作品。

iptables -F iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 5228 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 5229 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 5230 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT iptables -A OUTPUT -j ACCEPT 

有人可以指导我确切的端口为GCM工作? 我在5228,5229和5230的许多地方看过它,但它不工作。

如果你想要连接一个监听端口5228,5292和5230的服务,相关的iptables规则应该是--sport <port> ,而不是--dport <port> ,因为你打算接受数据包这个服务到你的机器,这些端口将有一个你要连接的任何端口的源端口,以及任何随机高端口被select用于外出连接的目标端口。

做这种事情的更常见的方式就是允许所有相关的/build立的连接stream量返回,并让conntrack处理棘手的位。 假设你正在运行一个默认的接受OUTPUT链,我假设你并不过分担心执行紧缩策略,所以我想不出有什么理由不想通过conntrack来运行你的返回stream量。