1. Connection Refused
서버로 telnet 접속을 시도했는데 위와같은 메시지가 나오면, 방화벽 설정 때문에 Connection이 거부된 경우이다. X-window 상에서는 시스템 -> 관리 -> 보안 수준 및 방화벽 으로 가서 '신뢰하는 서비스'에 telnet 을 추가하며, 콘솔상에서는 리눅스일 경우 /etc/xinet.d/telnet 파일을 열어 disable = yes 를 disable = no 로 바꾼 후 xinetd 를 재시작 시키면 된다.
2. Connection closed by foreign host
서버에 telnet 접속을 했는데 telnet 서버가 Connection 을 강제종료시킨 경우. 다음과 같은 메시지가 수반되는 경우가 있다.
getnameinfo:localhost:Success
Temporary failure in name resolution:Illegal seek
위와 같은 메시지가 나오면 답은 간단하다. 증상의 원인은 전부 name server 와 관련이 있다.
1. name server 에 접근이 불가능한 사설망 안에서 telnet 을 시도한 경우
2. name server 의 위치가 잘못 입력되어 있는 경우
telnet 서버는 DNS 에 역쿼리를 해서 지금 나한테 telnet 접속을 하려는 클라이언트가 존재하는지를 파악하려고 시도한다. 그 시도가 실패하게 되면 telnet 을 하는 클라이언트가 '안전하지 못한' 클라이언트라는 판단을 하고 접속을 강제종료하게 된다. 따라서 telnet 접속이 안될 경우, telnet 서버가 name server 에 접속을 할 수 없기 때문에 그런 일이 벌어지는 것이라고 보는 것이 맞다. 이 문제를 해결하는 방법은 두가지가 있는데, name server 의 위치가 잘못 입력되어 있는 경우에는 /etc/resolv.conf 에 nameserver XXX,YYY.ZZZ.GGG 를 입력해줘서 해결하는 방법이 있을 것이고, name server 에 접속할 수 없는 사설망이라면 /etc/hosts 파일에 접속 가능한 클라이언트의 IP를 직접 적어주는 방법이 있다. 다음과 같이 129.XXX.YYY.102 foo.bar.com foo 추가해주면 해당 IP에 대해서는 접속이 허용될 것이다.
나의 경우 putty 를 클라이언트로 사용하는데, 세션을 저장하고 사용하는 경우가 많다. 세션을 저장하여 사용하는 경우 종료 시 창을 안닫히게 설정해서 사용한다면 위의 문제 같이 에러 메시지를 창에서 볼 수가 있다. 하지만 세션 종료 시 창이 닫히게 되어 있다면, 에러가 발생할 시 창은 자동적으로 닫히게 되므로 에러메시지를 볼 수가 없게 된다. 그러므로 세션 종료 시 창이 안닫히게 설정해서 사용하는 방법을 추천한다. 하지만 정상적인 경우에도 창이 안닫히므로 종료 버튼을 눌러주어야하는 번거러움이 있다. 설정은 설정창에서 "세션" 항목 아래부분을 보면 설정부분이 있다.
서버로 telnet 접속을 시도했는데 위와같은 메시지가 나오면, 방화벽 설정 때문에 Connection이 거부된 경우이다. X-window 상에서는 시스템 -> 관리 -> 보안 수준 및 방화벽 으로 가서 '신뢰하는 서비스'에 telnet 을 추가하며, 콘솔상에서는 리눅스일 경우 /etc/xinet.d/telnet 파일을 열어 disable = yes 를 disable = no 로 바꾼 후 xinetd 를 재시작 시키면 된다.
2. Connection closed by foreign host
서버에 telnet 접속을 했는데 telnet 서버가 Connection 을 강제종료시킨 경우. 다음과 같은 메시지가 수반되는 경우가 있다.
getnameinfo:localhost:Success
Temporary failure in name resolution:Illegal seek
위와 같은 메시지가 나오면 답은 간단하다. 증상의 원인은 전부 name server 와 관련이 있다.
1. name server 에 접근이 불가능한 사설망 안에서 telnet 을 시도한 경우
2. name server 의 위치가 잘못 입력되어 있는 경우
telnet 서버는 DNS 에 역쿼리를 해서 지금 나한테 telnet 접속을 하려는 클라이언트가 존재하는지를 파악하려고 시도한다. 그 시도가 실패하게 되면 telnet 을 하는 클라이언트가 '안전하지 못한' 클라이언트라는 판단을 하고 접속을 강제종료하게 된다. 따라서 telnet 접속이 안될 경우, telnet 서버가 name server 에 접속을 할 수 없기 때문에 그런 일이 벌어지는 것이라고 보는 것이 맞다. 이 문제를 해결하는 방법은 두가지가 있는데, name server 의 위치가 잘못 입력되어 있는 경우에는 /etc/resolv.conf 에 nameserver XXX,YYY.ZZZ.GGG 를 입력해줘서 해결하는 방법이 있을 것이고, name server 에 접속할 수 없는 사설망이라면 /etc/hosts 파일에 접속 가능한 클라이언트의 IP를 직접 적어주는 방법이 있다. 다음과 같이 129.XXX.YYY.102 foo.bar.com foo 추가해주면 해당 IP에 대해서는 접속이 허용될 것이다.
나의 경우 putty 를 클라이언트로 사용하는데, 세션을 저장하고 사용하는 경우가 많다. 세션을 저장하여 사용하는 경우 종료 시 창을 안닫히게 설정해서 사용한다면 위의 문제 같이 에러 메시지를 창에서 볼 수가 있다. 하지만 세션 종료 시 창이 닫히게 되어 있다면, 에러가 발생할 시 창은 자동적으로 닫히게 되므로 에러메시지를 볼 수가 없게 된다. 그러므로 세션 종료 시 창이 안닫히게 설정해서 사용하는 방법을 추천한다. 하지만 정상적인 경우에도 창이 안닫히므로 종료 버튼을 눌러주어야하는 번거러움이 있다. 설정은 설정창에서 "세션" 항목 아래부분을 보면 설정부분이 있다.