美文网首页
阿里云上两个Ubuntu服务器之间的数据库访问

阿里云上两个Ubuntu服务器之间的数据库访问

作者: 闫美丽 | 来源:发表于2017-12-18 18:24 被阅读9次

    需求A服务器要访问B服务器的数据库

    问题:mysql 连接超时

    服务器:Ubuntu、iptables内部防火墙

    注释:A服务器  B服务器 ,用A和B来代替服务器的IP地址。A服务器作为访问服务器,B服务器作为被访问服务器

    1:首先在B服务器上查询防火墙规则

    iptables -nL --line-number

    一般会有一条禁用任何服务器都可以访问3306的规则,具体长什么样子,我当时没在意。这里就不列举了。

    2:删除那条禁用任何服务器访问3306端口的规则

    iptables -D INPUT 规则编号

    3:删除后增加一条让A可以访问的规则

    iptables -I INPUT -s A -p tcp --dport 3306 -j ACCEPT

    4:增加后用A访问B发现可以访问数据库,但是为了安全,我又试着用C服务器访问了B发现也可以访问,这并不是我想要的效果,我想要的只是让A访问。

    5:那么便在增加一条让其他服务器不能访问的规则

    iptables -I INPUT -p tcp --dport 3306 -j DROP

    增加后,发现我的A服务器又不能访问了,我就郁闷了,搜了资料才知道防火墙是按照优先级执行的,我这样的规则插入方法,会让这条规则在第一个,导致我对A服务器的规则不起作用。

    6:删除刚才加的那条禁用其他服务器访问的规则,删除命令和上面一样,换编号就行了。

    7:在增加一条禁用3306端口的规则优先级低一点。

    iptables -A INPUT -p tcp --dport 3306 -j DROP

    然后用C在访问发现不能访问了,用A访问可以访问,到此就配置成功了。其实走到最后我发现,就没那么麻烦,直接新建一条优先级高于禁用所有3306端口的规则就好了。

    因为是阿里云服务器,首先需要排除你在阿里云的安全组设置开禁用3306端口的策略哟~

    因为我不是专业运维,对此也只是仅仅以解决需要为主,写的比较浅,希望可以帮助到一些道友。

    相关文章

      网友评论

          本文标题:阿里云上两个Ubuntu服务器之间的数据库访问

          本文链接:https://www.haomeiwen.com/subject/ppwmwxtx.html