FTP 서버에 접속이 안됩니다.
안녕하세요. 맨날 KLDP에 들르지만 질문은 처음 올리는 초보 리눅서입니다.
제가 터보리눅스를 전체 설치로 설치하였는데 처음 설치하고 보니까 텔넷 서버와 FTP 서버가 동작하지 않아 /etc/inetd.conf 파일에서 ftp와 telnet 설정 앞에 있는 #를 제거하고 inet를 재시작하니까 telnet은 접속이 되는데 ftp는 접속이 안되는군요.
로컬로 접속하면 다음과 같은 메세지가 나오고..
[root@Solo ~]ftp localhost
Connected to localhost.localdomain
421 Service not available, remote server has closed connection
다른 컴터에서 접속하면
C:\>ftp 192.168.0.5
Connected to 192.168.0.5.
Connection closed by remote host.
이런 메세지가 나오는데.. 이유를 잘 모르겠습니다.
리눅스 버전은 터보 리눅스 6.5 이구요. ftp 는 proftp를 선택하였습니다. 기본으로 깔려있는거구요.
inetd.conf의 ftp 부분을 보면
#ftp stream tcp nowait root /usr/sbin/tcpd in.proftpd
에서 앞에 있는 #을 제거하였습니다.
그외에 /etc/proftp/proftpd.conf 이나/etc/passwd 파일에서 손봐야 할 부분이 있는걸까요?
ftp 서비스 할건 아니고 저 혼자 사용할거라 부하가 걸릴건 없으니 proftp 단독이 아닌 inetd 포함으로 사용하려고 합니다.
/etc/proftpd/proftpd.conf 파일 제일 앞에 있는
ServerName "ProFTPD Default Installation"
ServerType standalone
DefaultServer on
에서 서버 타입을 inetd 로 바꿔봤는데도 결과는 같았습니다..
그외에 또 바꿔야 할 부분이 있습니까?
ip설정에관하여.
아이피 적으신건 임의로 적으신거죠?
실제는 그아이피아닌거죠?
................................
리눅스의 IP
로컬로 실제 사용하는 IP입니다.
이 리눅스(192.168.0.5)는 win98(192.168.0.1)의 인터넷 공유를 통해서 인터넷에 접속할 수 있습니다. 네트워크상의 문제는 없다고 보여집니다. 리눅스에서는 다른 모든 곳에 telnet, FTP 모두 접속가능하니까요.
아마도....
지금 사용하시는 아이피가 공인 아이피가 아닌걸루 알고 있는데요
비공인이라면 방화벽이 부여한 아이피라서..
외부에서는 들어올수가 없을겁니다..
방화벽 관리자에게 문의하시거나...
NAT걸어서 들어오셔야 할거 같은데요..
[root@Solo /etc]# ps -ef | moreUID
[root@Solo /etc]# ps -ef | more
UID PID PPID C STIME TTY TIME CMD
root 1 0 2 16:19 ? 00:00:04 init [3]
root 2 1 0 16:19 ? 00:00:00 [kflushd]
root 3 1 0 16:19 ? 00:00:00 [kupdate]
root 4 1 0 16:19 ? 00:00:00 [kswapd]
root 5 1 0 16:19 ? 00:00:00 [loopd]
root 6 1 0 16:19 ? 00:00:00 [mdrecoveryd]
root 7 1 0 16:19 ? 00:00:00 [i2oevtd]
root 200 1 0 16:19 ? 00:00:00 /usr/sbin/apmd -p 10 -w 5 -W
root 210 1 0 16:19 ? 00:00:00 syslogd -m 0
root 218 1 0 16:19 ? 00:00:01 klogd
daemon 228 1 0 16:19 ? 00:00:00 /usr/sbin/atd
root 249 1 0 16:19 ? 00:00:00 /sbin/cardmgr
root 263 1 0 16:19 ? 00:00:00 inetd
root 304 1 0 16:19 ? 00:00:01 sshd
root 334 1 0 16:19 ? 00:00:00 crond
root 342 1 0 16:19 ? 00:00:00 /usr/local/apache/bin/httpd
root 344 1 0 16:19 tty1 00:00:00 /sbin/mingetty tty1
root 345 1 0 16:19 tty2 00:00:00 /sbin/mingetty tty2
nobody 346 342 0 16:19 ? 00:00:00 /usr/local/apache/bin/httpd
nobody 347 342 0 16:19 ? 00:00:00 /usr/local/apache/bin/httpd
nobody 348 342 0 16:19 ? 00:00:00 /usr/local/apache/bin/httpd
nobody 349 342 0 16:19 ? 00:00:00 /usr/local/apache/bin/httpd
nobody 350 342 0 16:19 ? 00:00:00 /usr/local/apache/bin/httpd
root 351 1 0 16:19 ? 00:00:00 sh /usr/local/mysql/bin/safe_mys
root 364 351 0 16:19 ? 00:00:00 /usr/local/mysql/libexec/mysqld
root 366 364 0 16:19 ? 00:00:00 /usr/local/mysql/libexec/mysqld
root 367 366 0 16:19 ? 00:00:00 /usr/local/mysql/libexec/mysqld
root 368 263 0 16:20 ? 00:00:00 in.telnetd: avatar.localdomain
root 369 368 0 16:20 pts/0 00:00:00 login -- tykim
tykim 370 369 0 16:20 pts/0 00:00:00 -tcsh
root 382 370 0 16:20 pts/0 00:00:00 -tcsh
root 399 382 0 16:23 pts/0 00:00:00 ps -ef
root 400 382 0 16:23 pts/0 00:00:00 more
[root@Solo /etc]#
방화벽이 현재 동작하고 있는지는 잘 모르겠습니다. 위 프로세스중에 방화벽이 어떤건지 잘 모르겠네요.. 죄송합니다.
하지만
[root@Solo ~]# ftp localhost
Connected to localhost.localdomain.
421 Service not available, remote server has closed connection
ftp>
방화벽이 있으면 위처럼 로컬로도 접속이 안되나요?
inetd.conf에서 ftp 앞에 #을 붙여서 ftp를 사용안하게 하면
[root@Solo /etc]# ftp localhost
ftp: connect: Connection refused
ftp>
이렇게 되니까 이 상태말고 위의 경우엔 프로세스중에 보이진 않지만 ftp 서버가 동작은 하고 있다고 생각됩니다. 제가 잘못 알고 있는걸까요?.
그리고 만약 방화벽이 동작하고 있다면 어떻게 내리죠? 방화벽쪽은 제가 전혀 몰라서. 로컬 네트워크에서만 사용하니 방화벽은 필요없습니다.
tcpd?
hosts.allow는 고치셨겠죠?
네...# Local host# Allow all reques
네...
# Local host
# Allow all requests from localhost
ALL : 127.0.0.1
ALL : ALL
일단 환경조사를 해야할거 같구요.
음 ftp localhost는 안먹는걸루 알고 있구요..
ftp 아이피 로 해보시구요
그경우에 문제가 없다면 정상적인거구요
다른 컴에서 연결이 안된다면 방화벽 문제이거나..
방화벽을 안쓰신다면 사용하시는 아이피가 고정아이피 아닌거 같은데요?
국내 아이피대는 211.....로 시작되는걸루 알고 있는데요...
가상으로 잡으셨다면 외부에서 들어올수는 없구요..
일단 ftp ip 해보시고..안되시면 ftp가 구동이 안된다고 볼수 있습니다.
위에꺼로컬에서 하시는겁니다
위에꺼 로컬에서 하시는 건데요..
localhost라는것은 웹서버에서 가능한데..
보통 서버에 명칭이 부여되기 때문에 그걸루 하셔야 합니다..
자꾸 귀찮게 해드려 정말 죄송합니다.[tykim@Solo ~]#
자꾸 귀찮게 해드려 정말 죄송합니다.
[tykim@Solo ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:00:86:61:CE:81
inet addr:192.168.0.5 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:366 errors:0 dropped:0 overruns:0 frame:0
TX packets:251 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:9 Base address:0x300
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:28 errors:0 dropped:0 overruns:0 frame:0
TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
[tykim@Solo ~]# ftp 127.0.0.1
Connected to 127.0.0.1.
421 Service not available, remote server has closed connection
ftp> quit
[tykim@Solo ~]# ftp 192.168.0.5
Connected to 192.168.0.5.
421 Service not available, remote server has closed connection
ftp> quit
[tykim@Solo ~]# su -
Password:
[root@Solo ~]# ftp 127.0.0.1
Connected to 127.0.0.1.
421 Service not available, remote server has closed connection
ftp> quit
[root@Solo ~]# ftp 192.168.0.5
Connected to 192.168.0.5.
421 Service not available, remote server has closed connection
ftp> quit
[root@Solo ~]# ftp 192.168.0.1
Connected to 192.168.0.1.
220 Serv-U FTP-Server v2.5f for WinSock ready...
Name (192.168.0.1:tykim): op
331 User name okay, need password.
Password:
230 User logged in, proceed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quit
221 Goodbye!
[root@Solo ~]#
위에서 보신것처럼 win98(192.168.0.1)에 있는 FTP 서버에는 접속이 잘 되는데 리눅스(192.168.0.5)에는 접속이 안되는군요.. 제 생각에는 FTP 설정쪽의 문제 같습니다.
192.168.0.5에서 192.168.0.1을 외부로 인식하나요? 같은 로컬 네트웍이고, 같은 서브넷안에 있는데.... 또 127.0.0.1도 안되는 걸로 봐서는 방화벽문제는 아니라고 생각됩니다. 성가시게 해드려 죄송합니다.
/etc/serviece파일설정확인
혹시 서비스화일에 ftp-data라는것도 열어주셨는지 확인해보시고요
#>ntsysv 를 실행해서
목록에 iptables나 ipchains가 체크가 되어있는지 확인합니다.
체크가 되어있다면 체크를 푸시고 리부팅해보세요.
그게싫으시면
iptables -L 이나 ipchains -L 을 해봅니다.
주루룩 목록이 나오면 그게 현재 설정된 방화벽설정입니다.
한번해보시고 방화벽 설정안돼있으면 다른쪽으로 한번 생각해보겠습니다.
아직 해결이 안되었습니다. :cry: services 파일에는
아직 해결이 안되었습니다. :cry:
services 파일에는
...
ftp-data 20/tcp
ftp 21/tcp
ssh 22/tcp# ssh
ssh 22/udp# ssh
telnet 23/tcp
smtp 25/tcpmail
...
으로 다 열려 있습니다.
방화벽 관련으로 말씀하신 부분은
[root@Solo /etc]# ipchains -L
Chain input (policy ACCEPT):
Chain forward (policy ACCEPT):
Chain output (policy ACCEPT):
[root@Solo /etc]#
다 열려있는거 아닌가요?
다른 명령들(ntsysv, iptables)은 안 먹히더군요.. 제가 잘 몰라서...... :oops:
해결되었습니다. :D inetd.conf 에서 사용안하도록 하고
해결되었습니다. :D
inetd.conf 에서 사용안하도록 하고
수동으로 proftpd를 실행시켜 주니까 접속이 되는군요.. -_-;;;
[root@Solo ~]# ftp localhost
ftp: connect: Connection refused
ftp> quit
[root@Solo ~]# proftpd
[root@Solo ~]#
[root@Solo ~]# ftp localhost
Connected to localhost.localdomain.
220 ProFTPD 1.2.1 Server (ProFTPD Default Installation) [solo.localdomain]
Name (localhost:tykim):
331 Password required for tykim.
Password:
230 User tykim logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
전에도 이렇게 해본적이 있는데도 몰랐던 이유는
[root@Solo rc.d]# proftpd&
[1] 434
[1] Done proftpd
[root@Solo rc.d]#
이처럼 Done이 나오길래 실행이 안된줄 알고 접속을 시도안해봤던 거 였습니다.. 죄송합니다.
지금까지 안된 그외에 다른 이유는 잘 모르겠지만....
암튼 실행은 됐으니까 그나마 답답하건 조금 나아졌네요.
지금껏 안된 원인은 천천히 찾아보도록 하겠습니다.
여러가지로 도와주셔서 감사합니다.
수퍼데몬으로...
standalone 으론 정상으로 접속되시는 거죠?
저두 proftpd 를 standalone 으로 사용하고 있어서..한번 수퍼데몬으로
바꿔볼려고 해봤는데..처음엔 님과 똑같은 메시지가 나오더군요...
/etc/proftpd/proftpd.conf 파일을 열어서..
서버타입만..inetd 로 바꿔준후...proftpd.xinetd 파일을 수정하여..
/etc/xinetd.d 디렉토리로 복사후..xinetd 데몬 재시작하니...
정상적으로 되더군요..
암튼 해결하셨다니..그냥 참고만 하시길.!
그럼.
혹시 in.proftpd 가 없었던 것은 아닐까요?
늦었지만... 알짜 6.2에서 해보니... 잘 되던데요... --;
만약 proftpd 를 실행시켰을 때 만족스러운 결과를 얻으셨다면 /usr/sbin 의 in.proftpd 가 proftpd 로 링크되지 않았기 때문이 아닐까 생각되네요.
제가 해본 알짜 6.2에서 inetd.conf 및 proftpd.conf 입니다.
inetd.conf
proftpd.conf
또 한가지
netstat -na 의 결과도 봐보시죠.
0.0.0.0:21 과 20이 열려있는지도 확인하시고요.
제 생각에는 로컬접속이라면 환경설정에 문제가 있는 듯 하네요.
방화벽은 보통 외부에서 내부접속입니다.
----
http://linu.sarang.net, http://wbhacker.tistory.com
댓글 달기