Linux 에서 특정 port를 listen 불가능 하게 될 때.
글쓴이: yykim / 작성시간: 화, 2003/06/17 - 10:28오전
종종 겪는 일입니다만,
간혹가다 linux에서 특정 포트를 listen할 수 없습니다.
물론 그 포트는 아파치에 필요한 부분의 모듈을 만들어서 다른 것을
테스트한 상태고요, 그 데몬이 이상해져서 완전 종료후,
netstat -na 나 socklist 등으로 찾아도 해당되는 port가 없을 때,
다시 실행하면 make_sock 을 할 수 없다고 나옵니다.
혹시나 하는 마음에, 직접 listen하는 프로그램을 짜봐도 같은 에러만
나오고 있습니다.
1~2달에 한번 정도 발생하는데, 이 문제를 아시는 분 도움을 부탁드리
겠습니다.....
Forums:
무슨 증상인지 잘 이해는 안되는데..socket option 중에 S
무슨 증상인지 잘 이해는 안되는데..
socket option 중에 SO_REUSEADDR 을 한번 보시지요...
http://www.ibrado.com/sock-faq/#faq44
/** 주워 들은 것도 내 것이다. 많이 주워 들어야지*/
[quote="ajoupark"]무슨 증상인지 잘 이해는 안되는데..
^^ 물론 REUSE 중입니다... 해당되는 포트는 죽어도 Listen이 안되더군요
리붓을 하면 증상이 사라집니다... _-_.
dmesg나 /var/log/message secure 등에 특이한 로그도 없습니다.
윗분의 말에 덧붙여서...윗분이 resueaddr을 사용하라고 한
윗분의 말에 덧붙여서...
윗분이 resueaddr을 사용하라고 한 의미를 설명해 드리겠습니다.
소켓이 bind한 address/port 패어에 대해서 reuseaddr을 사용하는것은 해당 소켓이 이 주소를 반환하고 나면 즉시 사용할 수 있는 기능도 포함되어 있습니다.
이와 관련된 사이트로는
http://www.sandelman.ottawa.on.ca/linux-ipsec/html/1999/04/msg00021.html
해당 사이트에 dead socket의 time out에 대한 내용이 나타나 있습니다. time out시간은 보통 시간단위라고 하는군요...
아 그리고 대부분의 소켓을 사용하는 어플리케이션이나 데몬들은 reusea
아 그리고 대부분의 소켓을 사용하는 어플리케이션이나 데몬들은 reuseaddr을 사용하지 않는다고 하더군요...
아무래도 제가 쓴글들은 도움이 되지 않을듯하네요... ㅡㅜ
[quote="verena"]윗분의 말에 덧붙여서...윗분이 re
^^ 커널상의 문제인 것 같다는 것은 netstat 등에서 TIME_WAIT도 없는 깨끗한
상황이라는 뜻입니다.
혹시나 이런 상황을 겪으신 분이 있나 해서 여쭈어본거고요, reuseaddr 옵션을 준 테스트도 다 해보았습니다.. ^^.......
make_sock 은 어떤건지 ... 또, 실패후 errno
make_sock 은 어떤건지 ...
또, 실패후 errno 가 어떤 값으로 되던가요?
내 자식들도 나처럼 !!
lsof -i로 해도 발견이 안되던가요?
lsof -i
로 해도 발견이 안되던가요?
---
http://coolengineer.com
lsof로는 체크를 못해봤고요,Already Port Open 이 나
lsof로는 체크를 못해봤고요,
Already Port Open 이 나는군요...
잦은건 아닙니다.. 2~3달에 한건 정도 발생을 하니...
댓글 달기