2011-01-31 17 views
1

私はmemcachedを実行していますが、接続できません。これをデバッグするにはどうすればよいですか?何かが私の接続を停止するように見えます。localhostのmemcachedサーバーに接続できません。デバッグ方法は?

ps -elf | grep memcached 0 S lee 10744 529 0 80 0 - 30529 ep_pol 03:36 pts/22 00:00:00/usr/bin/memcached -m 512 -p 11211 -u nobody -l 127.0.0.1

Memcachedは確実に動作しています)

しかし、私がtelnetで接続しようとすると、タイムアウトになります。

のtelnet 127.0.0.1 11211 127.0.0.1 ... のtelnetしよう:リモートホストに接続できませんが:接続が何かアドバイスをいただければ幸いです

をタイムアウトになりました。

+1

ファイアウォールは実行されていますか? –

答えて

2

ローカルループバックネットワークインターフェイスが動作していることを確認してください。あなたがUnixシステムを使用しているように聞こえるので、/sbin/ifconfigを実行して、IPアドレス(inet addrというラベルが付けられています)のloセクションが起動しているかどうか確認してください。そうでない場合は、ifdown loを実行してifup loを実行します。 /etc/hostsファイルを読んで、localhostまたは自分のマシンの名前が127.0.0.1にバインドされていることを確認してください。また、お使いのマシンがipchainsまたはiptablesを使用している場合は、トラフィックが127.0.0.1127.0.0.1から通過できるように設定されていることを確認してください。

これらはすべて99%の精度ですが、localhostに接続できないことは確かに奇妙なので、サニティチェックは順調です。

+1

もう1つの健全性チェックとして、memcached設定が変更されていないことを確認してください。 11211はデフォルトポートですが、おそらく誰かがそれを変更しました。このような誤った設定は、通常は、Connect timed outメッセージの代わりにConnect failedメッセージを発生させます。 –

+0

2番目の健全性チェックとして、あなたのetc/hostsにlocalhost( "127.0.0.1 \t localhost")のエントリがあることを確認してください。私のエンジニアリングチームは、私が誤ってホスト構成を空にした後、メモ帳にドキュメントを貼り付けた後、笑って地面を転がっています。 – Deborah

0

ファイアウォールを有効にしていないことを確認してください。私の場合は、iptablesのために次のエントリを見つけました:

target  prot opt source    destination 
ACCEPT  tcp -- example.com.internal anywhere    tcp dpt:11211 
ACCEPT  udp -- example.com.internal anywhere    udp dpt:11211 
DROP  tcp -- anywhere    anywhere    tcp dpt:11211 
DROP  udp -- anywhere    anywhere    udp dpt:11211 

彼らは唯一のexample.com.internalからの接続を許可し、他の場所、localhostを含むから否定します。これを修正するために、localhostの特定のルールを追加しました。

ACCEPT  tcp -- localhost    anywhere    tcp dpt:11211 
ACCEPT  udp -- localhost    anywhere    udp dpt:11211 
関連する問題