2011-01-31 4 views
1

memcached를 실행 중이지만 연결할 수 없습니다. 어떻게 디버깅을 시작해야합니까? 뭔가 연결하는 것을 멈추는 것처럼 보입니다.localhost의 memcached 서버에 연결할 수 없으므로 디버깅하는 방법은 무엇입니까?

ps -elf | 리 그렙 memcached를 0 S 529 0 10744 80 0-30529 ep_pol 3시 36분 PTS/22 0시 0분 0초은/usr/빈/memcached를 -m (512) -p 11211 -u 아무도 -l 127.0.0.1

(Memcached가 실행 중입니다.)

그러나 텔넷을 시도 할 때 시간 초과가 발생합니다. 원격 호스트에 연결할 수 없습니다 : 텔넷

텔넷 127.0.0.1 11211 시도 127.0.0.1 ... 연결이

어떤 조언

시간 초과를 감상 할 수있다.

+1

방화벽이 실행되고 있습니까? –

답변

2

로컬 루프백 네트워크 인터페이스가 실행 중인지 확인하십시오. 유닉스 시스템을 사용하는 것처럼 들리므로 /sbin/ifconfig을 실행하여 IP 주소 (inet addr로 레이블 된)로 lo로 표시된 섹션 127.0.0.1이 실행 중인지 확인하는 것이 좋습니다. 그렇지 않다면 ifdown lo를 실행하고 ifup lo를 실행하면됩니다. /etc/hosts 파일을 읽고 localhost 또는 사용자의 시스템 이름이 127.0.0.1에 바인드되어 있는지 확인하십시오. 그리고 만약 여러분의 머신이 ipchains 나 iptables를 사용하고 있다면, 트래픽이 127.0.0.1이되도록 127.0.0.1에서 통과하도록 설정되어 있는지 확인하십시오.

이러한 것들은 모두 99 %의 시간이 걸리지 만 localhost에 연결할 수 없다는 것은 실제로 이상한 일이므로 온 전성 검사가 순서대로 이루어집니다.

+1

또 다른 온 전성 검사로서 memcached 구성이 변경되지 않았는지 확인하십시오. 11211이 기본 포트 인 것처럼 보였으 나 아마도 누군가 그 포트를 변경했습니다. 이런 종류의 잘못된 구성은 일반적으로 연결 시간 초과 메시지 대신 연결 실패 메시지를 발생시킵니다. –

+0

두 번째 온 전성 검사로서, 여러분의 호스트/호스트에 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 
관련 문제