Mysql

使用 CentOS 在 iptables 上轉發埠 3306 時出現問題

  • March 8, 2011

我試圖在 200.58.126.52 向 mysql 伺服器添加轉發以允許從 200.58.125.39 訪問,並且我使用以下規則(它是我主機的 VPS 的整個 iptables)。我可以在將 mysql 服務作為 localhost 的伺服器上進行本地連接,但不能從外部連接。

有人可以檢查以下規則是否正確嗎?謝謝

# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 200.58.125.39 --dport 3306 -j ACCEPT
-A INPUT -p tcp -s 200.58.125.39 --sport 1024:65535 -d localhost --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -s localhost --sport 3306 -d 200.58.125.39 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
COMMIT

這是連接試驗的輸出。

$$ root@qwhosti /home/qwhosti/public_html/admin/config $$# mysql -u user_db -p -h 200.58.126.52 Enter password: ERROR 2003 (HY000): Can’t connect to MySQL server on ‘200.58.126.52’ (113)

RH-Firewall-1-INPUT在規則之前在鏈上添加新-j REJECT規則。規則從上到下閱讀,第一個匹配的被應用;由於規則上沒有說明符REJECT,因此您的傳入連接REJECT在它們可以被轉發之前被編輯。

引用自:https://serverfault.com/questions/244683