Linux下mysql端口不能遠程訪問的問題防火牆設置 以下內容只解決iptables開放端口問題,不解決mysql數據庫本身賬號遠程訪問權限問題. Linux iptables 開放Mysql端口允許遠程訪問 修改防火牆配置文件: vi /etc/sysconfig/iptables 增加下面一行: -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT 或者使用命令 iptables -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT 保存配置,否則重啟不生效 service iptables save 重新啟動iptable service iptables restart 這時就可以從其他機器訪問Mysql了。 開通3306 端口的行必須在icmp-host-prohibited前 之前一直都找不到問題,配置了3306端口始終不能外部訪問mysql,關閉iptables就可以.終於找到問題.. iptables -L -n --line-number 在RH-Firewall-1-INPUT裡有一個REJECT 是指向icmp的.. 要開放的端口必須要在這條規則之前..如果使用INPUT加載RH-Firewall-1-INPUT,可以把REJECT放到RH-Firewall-1-INPUT下,讓INPUT首先加載RH-Firewal-1-INPUT裡的規則,然後再加載REJECT.. 或者把3306端口的開放規則寫在INPUT裡的RH-Firewall-1-INPUT之前.. (個人覺得第一種比較方便,,以後有規則可以直接加在RH裡,不用再管順序問題..) 添加REJECT的命令為: iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited 附本人配置.. [root@localhost ~]# iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) target prot opt source destination RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT) target prot opt source destination RH-Firewall-1-OUTPUT all -- 0.0.0.0/0 0.0.0.0/0 Chain RH-Firewall-1-INPUT (2 references) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255 ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0 ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:631 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:21 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3306