首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法连接到'198.211.37.xx‘上的MySQL服务器

无法连接到'198.211.37.xx‘上的MySQL服务器
EN

Server Fault用户
提问于 2015-04-27 13:56:20
回答 1查看 326关注 0票数 0

在过去的几天里,我尝试了很多方法来解决Can't connect to MySQL server问题。我想描述一下我迄今所做的一切。

  1. 创建mysql用户并授予所有特权。
  2. /etc/my.cnf中绑定0.0.0.0。
  3. 更改IP表,如以下所示:链式输入(策略接受)目标prot选择源目的地接受tcp -- 127.0.0.0/8 anywhere管理tcp - anywhere tcp dpt:caiccipc tcp - anywhere tcp dpt:mysql reject-with icmp-port-port-unreachable REJECT tcp - anywhere tcpanywhere tcp dpt:caiccipc REJECT -带有icmp- port-无法到达的拒绝tcp - anywhere tcp dpt:ssslic mgr REJECT -带icmp端口-无法访问tcp - anywhere tcp :h323hostcallsc拒绝-与icmp端口-端口-无法到达的拒绝tcp -任何地方tcp :cadkey-tablet拒绝-与icmp-端口-无法访问的拒绝tcp - anywhere tcp dpt:ufastro拒绝-与icmp-端口-无法到达的拒绝tcp -任何地方tcp dpt:5062拒绝-使用icmp端口-任何地方tcp dpt:ca-2拒绝-与icmp-端口-无法到达的拒绝tcp -任何地方anywhere tcp dpt:5070拒绝-使用icmp-端口-不可访问拒绝tcp -任何地方tcp dpt:6060拒绝-与icmp端口-不可访问拒绝tcp -任何地方tcp dpt:8005拒绝-与icmp端口-不可达拒绝tcp -任何任何地方tcp dpt:8009拒绝-与icmp端口-端口-不可到达拒绝udp -- anywhere udp dpt:itelserverport reject-具有icmp端口-无法到达的接受tcp - 103.19.0.0/24 anywhere tcp dpt:mysql状态新,建立DROP 103.19.0.0/24任何地方tcp dpt:mysql状态新,已建立的dpt- 103.19.0.0/24任何地方tcp dpt:mysql接受tcp - 103.19.0.0/24任何地方tcp dpt:mysql接受tcp - 103.19.0.0/24任何地方tcp dpt:mysql状态新,建立接受tcp - anywhere tcp dpt:mysql链转发(策略接受)目标prot选择源目标链输出(策略接受)目标prot选择源目的地
  4. 我为'198.211.37.xx‘绘制的nmap显示如下:端口国服务1/tcp过滤tcpmux 2/tcp过滤压缩网络3/tcp过滤压缩网络3/tcp过滤压缩包4/tcp过滤未知5/tcp过滤rje 6/tcp过滤未知7/tcp过滤回波8/tcp过滤未知9/tcp过滤丢弃10/tcp过滤未知11/tcp过滤系统12/tcp过滤13/tcp过滤日间14/tcp过滤15/tcp过滤netstat 16/tcp过滤未知17/tcp过滤qotd 18/tcp过滤msp 19/tcp过滤chargen 21/tcp打开ftp 22/tcp打开ssh 25/tcp打开smtp 26/tcp打开未知53 tcp开放域80/tcp开放pop3 143/tcp开放pop3 443/tcp开放https 465/tcp开放smtp 587/tcp开放提交993/tcp打开imaps 995/tcp打开pop3s 3306/tcp打开pop3s 8080/tcp打开http -代理代理。

在做完所有这些工作之后,我在我的应用程序中获得了Can't connect to MySQL server on '198.211.37.xx'

在这个问题上,我急需专家的建议。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2015-04-27 14:22:06

我会亲自删除所有iptable的配置,然后重新启动,使用这份文件作为参考。

为了提供良好的实践,我将操作一个“默认拒绝”规则,并显式地允许要运行的服务的连接(例如,SSH和MySQL的端口22和3306 )。根据本指南 (请记住,您的系统可能需要修改命令):

首先,刷新所有现有规则:

代码语言:javascript
复制
iptables -F
iptables -X

然后,为INPUTOUTPUTFORWARD链添加默认策略,并允许回送连接--注意默认情况下这将允许所有出站访问:

代码语言:javascript
复制
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -i lo -j ACCEPT

允许SSH (用服务器的公共IP替换<SERVER_IP> ):

代码语言:javascript
复制
iptables -A INPUT -p tcp -s 0.0.0.0/0 -d <SERVER_IP> --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

允许MySQL (用您想要白名单MySQL访问的IP地址替换<OTHER_SERVER_IP> -我强烈建议您这样做,以避免您的MySQL端口是世界可见的)。对于希望公开访问的所有端口,您可以重复下面的命令:

代码语言:javascript
复制
iptables -A INPUT -p tcp -s <OTHER_SERVER_IP> -d <SERVER_IP> --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT

最后,删除所有其他入站流量:

代码语言:javascript
复制
iptables -A INPUT -j DROP
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/685868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档