2017-01-03 10 views
0

注記。オペレーティングシステムは、ubuntu 14です。*データベースパブリックIPで接続できません

私のMYSQLサーバに接続して私の頭を壊しています。私は私のパブリックIP経由で自分のMYSQLサーバーに接続しようとします。しかし、私は接続することができません。私はlocalhostに接続するとき、私は外部に接続するときに私は接続することができますが。

# Instead of skip-networking the default is now to listen only on 
# localhost which is more compatible and is not less secure. 
#bind-address   = 127.0.0.1 

私はbind-adressをコメントアウトしました。これはアドレスを0.0.0.0にバインドする必要があります。私もバインドアドレスを0.0.0.0に設定しようとしました。これはまた、動作しません。次のように

私のhostsファイルは、セットアップアップです:

127.0.0.1 MY-IP 

私は私のパブリックIPアドレスにポート80にtelnetで接続すると問題はありません。

telnet MY-IP 80 

私が手:

Trying MY-IP... 
Connected to MY-IP. 
Escape character is '^]'. 

しかし、私はポート3306でこれをしようとすると、それが上の保持:

Trying MY-IP... 

私も自分のMySQLユーザーに、すべての必要な権限を付与されました。そして、私は、外部と内部に接続することが可能です。しかし、私の内部IPを私の公開IPに接続することはできません。

また、私はnetstatで解決策を見つけようとしました。ただ、無効UFW:

netstat -tln 

はMESに

tcp  0  0 0.0.0.0:3306   0.0.0.0:*    LISTEN 

EDITを与えます。それはまだ仕事をしません。

ufw status 
Status: inactive 

EDIT2:mysqlが/ etc/hostsファイルを無視している可能性はありますか?

誰かが問題の可能性があるいくつかの素晴らしいアイデアをもう少し手伝ってもらえますか?

+1

ファイアウォールが問題を引き起こしている可能性がありますか? 'sudo ufw allow 3306/tcp'と' sudo service ufw restart' –

+2

ファイアウォールのポートを開けてください。これは 'ssh'と同じくらい安全ではなく、しばしばDDOSタイプのドライブバイ攻撃の標的になります。 VPNまたはSSHトンネルを使用できない場合は、接続できる人の非常に限定的なホワイトリストを作成してください。 – tadman

+0

私は今のところufwを解散しました。それでも私の公的なIP経由で接続しようとしているときに問題が発生します。また、私は完全にサーバー上のmysqlのポートを開くことができます。私のサーバーと大きな悪いインターネットとの間には別個のファイアウォールがあるからです。 (私はそれが最もクリーンな方法ではないことを知っています) – Berend

答えて

0

バインドアドレスを0.0.0.0に変更してから、mysqldを再起動する必要があります。サーバがある場合にもチェックするには、netstatを使用してポート3306をブロックするルールが存在する場合、それらを削除

iptables -n -L 

、または単に

iptables -F 

でfirwallを無効にします。また、ファイアウォールが有効ではありませんことを確認してください外部の聴取:

netstat -tupan |grep :3306 
+0

Ubuntuには 'ufw'があります。これを無視する答えは、醜いハードなやり方です。 – tadman

+0

これをチェックしました。私のiptablesもまた流しました。問題はどういうわけかこれらの場所のいずれにもありません。私は自分の投稿にnetstatの行を追加しました。 "tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 19999/mysqld" – Berend

+0

あなたが「EXTERNAL-IP -p3306 -Pn」をnmapするとどうなりますか?それがあなたに "フィルタリングされた"と言えば、外部IPへの途中にファイアウォールが存在する可能性があります。 –

関連する問題