Byr*_*ahl 6 mysql remote-access firewall centos connection
连接到:CentOS v?? 与 MySQL 4.?? 在纳什维尔(例如公共 ip=11.11.11.11)
堆栈:电缆调制解调器作为网关 > 带转发功能的路由器 > CentOs Box
连接来源:达拉斯的 Windows 2003 R2(例如 public ip=22.22.22.22)
我正在尝试通过我的公共 IP 从远程服务器访问我的 MySql 服务器。当我尝试连接时,几秒钟后出现“无法打开与主机的连接”的错误。它没有机会要求我提供登录凭据。以下是我为打开此服务器以进行远程连接所做的一些事情:
当我尝试从达拉斯的盒子 telnet 到纳什维尔 3306 端口的盒子时,我得到了这个:
Run Code Online (Sandbox Code Playgroud)C:\Documents and Settings\Administrator>telnet 11.11.11.11 3306 Connecting To 11.11.11.11...Could not open connection to the host, on port 3306: Connect failed
但是,我可以从 22.22.22.22 ping 11.11.11.11(抱歉格式错误......我试过):
C:\Documents and Settings\Administrator>ping 11.11.11.11
用 32 字节的数据 Ping 11.11.11.11:
11.11.11.11回复:bytes=32时间=57ms TTL=54 11.11.11.11回复:bytes=32时间=61ms TTL=54 11.11.11.11回复:bytes=32时间=56ms TTL=54.11.11.11回复: 字节=32 时间=57ms TTL=54
11.11.11.11 的 Ping 统计数据:数据包:发送 = 4,接收 = 4,丢失 = 0(丢失 0%),以毫秒为单位的近似往返时间:最小值 = 56 毫秒,最大值 = 61 毫秒,平均值 = 57 毫秒
11.11.11.11 的 IP 表如下:
[root@centos ~]# /sbin/iptables -L Chain INPUT (policy ACCEPT) target
prot opt source
destination
RH-Firewall-1-INPUT all -- 任何地方
tcp -- 22.22.22.22 任何地方tcp dpt:mysqlChain FORWARD (policy ACCEPT) target
prot opt source
destination
RH-Firewall-1-INPUT all -- 任何地方Chain OUTPUT (policy ACCEPT) target
prot opt source
destinationChain RH-Firewall-1-INPUT (2 个参考) target prot opt source destination ACCEPT all -- 任何地方 ACCEPT icmp -- 任何
地方 icmp any ACCEPT
esp -- 任何地方 ACCEPT ah -- 任何
地方 ACCEPT udp -- 任何地方 224.0. 0.251 udp dpt:mdns ACCEPT udp -- 任何地方
udp dpt:ipp ACCEPT tcp -- 任何地方
tcp dpt:ipp ACCEPT all -- 任何地方
状态 RELATED,ESTABLISHED ACCEPT
tcp -- 任何地方状态 NEW tcp dpt:mysql ACCEPT
tcp -- 任何地方状态 NEW tcp dpt:ssh REJECT all -- 任何地方都拒绝-with icmp-host-prohibited
@Sunny:现在,本地IP 地址列在/etc/my.conf 中。为了看看发生了什么,我用 11.11.11.11 替换了本地 IP 地址。当我这样做时,MySql 无法启动备份。我猜绑定地址必须是框中实际的 ip 地址。
我可以使用本地 IP 地址从同一网络上的另一台机器连接到 MySql。但是,即使使用本地,我也无法使用 11.11.11.11 进行连接。
有任何想法吗?不是Linux人,我有点盲目。
检查 my.conf 以及 MySql 服务器有哪些绑定。
可能是这样,它只在本地网络上侦听。
您正在/etc/my.conf 或/etc/mysql/my.conf 中查找绑定地址设置。
如果启用此设置(通常仅绑定到 localhost 127.0.0.1),请将其注释掉,它将允许 MySql 侦听所有可用接口。
无论如何,直接通过互联网访问数据库服务器根本不是一个好主意。
我强烈建议您使用 ssh 隧道通过 Internet 访问计算机。
在 Windows 上,您可以使用putty来 ssh(创建隧道)到 MySql 计算机。您可以将本地的3306端口转发到远程,然后您可以使用localhost:3306访问MySql服务器。