以下是我的 centos 上的 iptables 文件,我无法打开 3306 端口来连接到远程 mysql 服务器。虽然看起来很简单,但我不知道我做错了什么。
当我停止 iptable 服务时,我可以连接到同一端口上的远程 mysql,但 iptable 一启动它就会再次阻塞。
我已将上次打开端口的时间添加到文件中,但似乎不起作用。
以下是 iptables 文件
# Generated by iptables-save v1.4.7 on Mon Dec 23 15:32:07 2013
*filter
:INPUT ACCEPT [396:30624]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [216:23216]
#COMMIT
# Completed on Mon Dec 23 15:32:07 2013
#-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 3306 -j ACCEPT
COMMIT
以下是 iptables.save 文件
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
iptables restart 的输出
[root@OV ~]# service iptables restart
iptables: Setting chains to policy ACCEPT: mangle nat filte[ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]
[root@OV ~]#
答案1
您已默认接受所有内容,因此不需要规则......
话虽如此,您可能应该有一条新规则(作为最佳实践),允许所有相关/已建立的会话。
我认为该问题与输出规则的 --dport 有关。尝试将其更改为 --sport
这是因为,连接到您的机器将使用随机传出端口(源端口)连接到 Mysql 端口(服务器上的 3306/目标),但是,当该数据包返回时,3306 是源,而随机端口是目标。
如果您对 Mysql 有任何增强日志记录,您可能可以确认这一点,因为它应该接收请求/您的机器应该连接到它,但是,它只是没有得到响应(有点像没有 pong 的 ping!)