天天看點

windows無法登陸linux ftp,在WINDOS下登入LINUX上的FTP伺服器

vsftpd 500 OOPS: cannot change directory

今天在預設配置下,啟動vsftpd,一般使用者登陸居然報錯:

C:\>ftp 192.168.0.101

Connected to 192.168.0.101.

220 (vsFTPd 2.0.5)

User (192.168.0.101:(none)): frank

331 Please specify the password.

Password:

500 OOPS: cannot change directory:/home/frank

Login failed.

ftp> ls

500 OOPS: child died

Connection closed by remote host.

覺得這個問題很奇怪,google.cn了一下,有人的解決方法是:

解決方法:

ref: http://hi.baidu.com/qhdinfo/blog/item/eee71e0e7abc25c97acbe17d.html

在終端輸入指令:

setsebool ftpd_disable_trans 1

service vsftpd restart

就OK了!

作者沒說為什麼,後來google.com後才發現這是SELinux的設定指令.

其實 man 一下setsebool也知道了:

NAME

setsebool - set SELinux boolean value

在不熟悉SELnux前,把SELinux關掉也可以的。有時間研究下SELinux。

在想用SELinux但是又不熟悉的情況下可以把SELinux設定成Permissive,表示SELinux規則啟動,但隻是把違規的記錄到log中。

-------------------------------

預設情況下不需要修改就可以在虛拟機上通路的,如:

[[email protected] vsftpd]# ftp 127.0.0.1

Connected to 127.0.0.1 (127.0.0.1).

220 (vsFTPd 2.1.2)

Name (127.0.0.1:tong): ftp//匿名登入預設使用者名,密碼也是;也可都用anonymous

331 Please specify the password.

Password:

230 Login successful. //恭喜您,已成功登陸

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>

不過,先别高興太早,這隻是在本虛拟機上可以通路,在主控端上呢,我用的是xp

通過cmd指令會出現如下錯誤

C:\Documents and Settings\Administrator>ftp 10.4.141.15

> ftp: connect :未知錯誤号

10.4.141.15是我的虛拟機Linux的ip位址

當然此時要保證主控端和虛拟機能互相ping通!

針對這個錯誤,我們應該進行如下設定

将Linux的防火牆關掉,如下指令:

service iptables stop

停掉防火牆以後還是不能通路,此時我們就要考慮防火牆表面上關掉了,其實底部還有某些驅動在運作,這就是我們的21端口還被防火牆限制通路,是以我們要開放21端口,指令如下:

iptables -A INPUT -p tcp -sport 21 -j ACCEPT

iptables -A INPUT -p tcp -dport 21 -j ACCEPT

至此,我們就可以在用戶端通路我們的sftpd服務了,剩下的設定就簡單了,通路權限之類的。。。。

--------------------------------------------

以上是我是網上找到兩個比較好的解決問題的方法。!

今天,在Linux上裝了VsFTPD.嗯,出了不少問題。

第一個問題:vsftpd 500 OOPS: cannot change directory

這個問題是SElinux的安全防護。這裡我們隻有關掉其相關的設定就好了。!

現在我們來檢視我們的SElinux設定。

檢視SELinux的版本:

#cat /etc/redhat-release

我的顯示是:Red Hat Enterprise Linux Server release 5.1 (Tikanga)

我們再來看看我們的VSftpd版本:

#rpm -qa |grep vsftpd

檢視SElinux狀态

#sestatus

我的狀态如下:

SELinux status:                 enabled

SELinuxfs mount:                /selinux

Current mode:                   enforcing

Mode from config file:          enforcing

Policy version:                 21

Policy from config file:        targeted

查開SELinux中與FTP有關的狀态:

#sestatus -b | grep ftp

allow_ftpd_anon_write                  off

allow_ftpd_full_access                 off

allow_ftpd_use_cifs                    off

allow_ftpd_use_nfs                     off

ftp_home_dir                           off

ftpd_disable_trans                     off

ftpd_is_daemon                         on

httpd_enable_ftp_server                off

tftpd_disable_trans                    off

我們開始的錯誤是vsftpd 500 OOPS: cannot change directory 不能改變檔案夾。

那我們就要把ftp_home_dir   on改成ON就好了。。

下面我們來設定一下:setsebool -P ftp_home_dir on

這樣我們就設定好了!!

再次我們用普通賬号登入就不會出現現上面的錯誤了。

今天的第二個錯誤就是用WINDOS的指令輸入c:>ftp  192.168.92.128時出現:

ftp: connect :未知錯誤号

在網上查了下,說是防火牆問題,這裡我們關閉防火牆:

service iptables stop

好了。我們再次就可以進入了。

還有就是我們也可以用IE都浏覽器進入FTP如我在LINUX中建立的使用者名是ven

我們在浏覽器裡輸入 回車就可以了。

呵呵。。。覺的LINUX還是很好玩的,能學到不少計算機的東西。

有什麼問題,GOOGLE.COM一下都能解決。

[email protected]