我有一个用于 Apple 推送通知服务的 VPS,我正在尝试打开端口 2195。我目前正在这样做
vi /etc/sysconfig/iptables
然后我进入 vi 的插入模式并输入这两行
-A -I INPUT -p tcp --dport 2195 -j ACCEPT
-A -I OUTPUT -p tcp --dport 2195 -j ACCEPT
然后我保存文件并退出 vi。
然后我通过以下方式重新启动 iptables 服务
service iptables restart.
但之后当我尝试通过以下方式进行 telnet 时
telnet localhost 2195
我明白了
尝试 127.0.0.1…telnet:连接到地址 127.0.0.1:连接被拒绝
有什么指点吗……?
服务器是 hostgator 上的红帽
答案1
你的规则很糟糕。你不能同时使用 -A 和 -I,-A 表示作为最后一条规则附加,-I 表示作为第一条规则插入。
答案2
我立即注意到两件事:
- 您已允许数据包通过目的地2195 端口,但如果有人通过 2195 端口联系你的服务器,那么你的返回数据包将有一个来源端口 2195。根据所需的流量,您可以将
--dport
OUTPUT 链中的更改为,--sport
或者添加两个额外的规则--sport
。 - 错误
connection refused
与超时所表示的连接情况不同。它表明您的服务未在端口 2195 上侦听。您可以运行netstat -tan | grep LISTEN
并检查您的服务是否在环回接口上在端口 2195 上侦听吗?
答案3
请首先通过以下方式验证您的规则是否已应用
sudo iptables -L -vnx
如果有规则,请确保监听 2195 的服务是否正在运行。
sudo netstat -tulpn