我刚刚购买了非托管 VPS。我正在运行一个 node js 应用程序,该应用程序使用存储在其他地方的 mysql 数据库的连接字符串。
vps(nodejs web)与mysql服务器连接不成功。
当我尝试从本地计算机远程登录到 mysql 服务器时,一切顺利。但是,当我从 VPS SSH 远程登录到 mysql 服务器时,出现以下错误:
r]# telnet 64.XX.XX.XX 3306
Trying 64.XX.XX.XX...
telnet: connect to address 64.XX.XX.XX: Connection timed out
我尝试设置以下防火墙规则集,但没有成功。
iptables -L 结果:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp spt:mysql ctstate ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp spt:mysql state ESTABLISHED
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:mysql
ACCEPT tcp -- anywhere anywhere tcp dpt:mysql
答案1
您似乎只允许建立连接,您也需要允许建立新连接才能使连接变为建立连接。
我会尝试
iptables -I INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
看看它是否有效,然后根据需要进行调整。