MySQL NAT,即MySQL網(wǎng)絡(luò)地址翻譯,是一種將MySQL服務(wù)器的內(nèi)部地址與外部地址進(jìn)行轉(zhuǎn)換的技術(shù),通過(guò)一定的配置,將來(lái)自外部網(wǎng)絡(luò)的請(qǐng)求轉(zhuǎn)發(fā)到內(nèi)部服務(wù)器,從而達(dá)到在不改變內(nèi)部網(wǎng)絡(luò)結(jié)構(gòu)的情況下讓外部網(wǎng)絡(luò)訪問(wèn)內(nèi)部服務(wù)器的目的。
# 配置MySQL NAT規(guī)則 iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT --to-destination 192.168.1.100:3306 iptables -t nat -A POSTROUTING -d 192.168.1.100 -p tcp --dport 3306 -j SNAT --to-source 202.98.23.10 # 開(kāi)啟IP轉(zhuǎn)發(fā)功能 echo 1 >/proc/sys/net/ipv4/ip_forward
上述代碼中,第一行定義了一個(gè)iptables NAT規(guī)則,用于將TCP協(xié)議的3306端口的請(qǐng)求轉(zhuǎn)發(fā)到內(nèi)網(wǎng)IP地址為192.168.1.100的主機(jī)上;第二行增加了一個(gè)POSTROUTING的NAT規(guī)則,用于將來(lái)自192.168.1.100主機(jī)的響應(yīng)數(shù)據(jù)包的源地址改為外部網(wǎng)絡(luò)的地址,以保證數(shù)據(jù)正確返回。
最后一行代碼用于開(kāi)啟IP轉(zhuǎn)發(fā)功能,以允許內(nèi)部網(wǎng)絡(luò)與外部網(wǎng)絡(luò)進(jìn)行通信。