linux下java写ftp服务器端,在Linux下部署网站(java环境部署)第五章 FTP服务器搭建...
第五章 FTP服務(wù)器搭建
1.看看是否已經(jīng)安裝FTP服務(wù)器
service vsftpd start
ftp localhost
如果不認(rèn)識ftp命令是因?yàn)闆]有安裝ftp的client包,需要拿安裝光盤去裝一下。首先將安裝盤(或者iso鏡像)裝入,進(jìn)入安裝盤的Package目錄下。然后找到以ftp開頭的包,使用命令安裝即可。(注意:命令不要生搬硬套,你的ftpclient包版本可能和我不同,有可能輸入和我相同的名稱找不到)
如果不認(rèn)識ftp命令是因?yàn)闆]有安裝ftp的client包,需要拿安裝光盤去裝一下。首先將安裝盤(或者iso鏡像)裝入,進(jìn)入安裝盤的Package目錄下。然后找到以ftp開頭的包,使用命令安裝即可。(注意:命令不要生搬硬套,你的ftpclient包版本可能和我不同,有可能輸入和我相同的名稱找不到)
ls -l ftp*
rpm -ivh ftp-0.17-54.el6.x86_64.rpm
這時(shí)再敲ftp命令就沒問題了!
如果想停止這個(gè)服務(wù),輸入以下命令:
service vsftpd stop
2.從windows登錄FTP服務(wù)器
想要從Windows上登錄,就要先獲取到這臺(tái)Linux服務(wù)器的ip,使用以下命令:
ifconfig
ping 自己的ip
結(jié)果顯示能夠ping通。如果在確認(rèn)網(wǎng)絡(luò)確實(shí)連接正確,ping的ip地址也正確,但是ftp就是上不去或者壓根ping不通,這有可能是由于Linux的防火墻造成的。
解決方法有兩種,一種是關(guān)閉Linux防火墻,輸入以下命令查看防火墻狀態(tài):
service iptables status
setup
使用方向鍵切換到防火墻設(shè)置,按回車進(jìn)入:
現(xiàn)在我們按下空格鍵,這樣就能禁用防火墻,然后按下 tab鍵,這樣OK按鈕就會(huì)被選中,然后按下回車鍵,使我們的修改生效:
提示警告的界面中,我們依舊選中是按鈕,回車:
現(xiàn)在運(yùn)行這個(gè)命令,查看一下防火墻的狀態(tài):
service iptables status
第二種方法是打開ftp使用的端口。ftp連接端口有2個(gè) 21 和 20 端口,我現(xiàn)在添加對應(yīng)的規(guī)則。
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT
好,這樣就添加完了,我們用瀏覽器訪問一下ftp,出現(xiàn)超時(shí)。所以我剛才說 ftp 是比較特殊的端口,它還有一些端口是 數(shù)據(jù)傳輸端口,例如目錄列表, 上傳 ,下載 文件都要用到這些端口。而這些端口是 任意 端口。。。 這個(gè) 任意 真的比較特殊。
如果不指定一個(gè)端口范圍, iptables 很難對任意端口開放的,如果iptables允許任意端口訪問,那和不設(shè)置防火墻沒什么區(qū)別,所以不現(xiàn)實(shí)的。那么我們的解決辦法就是 指定這個(gè)數(shù)據(jù)傳輸端口的一個(gè)范圍。下面我們修改一下ftp配置文件。
vi /etc/vsftpd.conf
在配置文件的最下面 加入
pasv_min_port=30001
pasv_max_port=31000
然后保存退出。這兩句話的意思告訴vsftpd, 要傳輸數(shù)據(jù)的端口范圍就在30001到31000 這個(gè)范圍內(nèi)傳送。這樣我們使用 iptables 就好辦多了,我們就打開 30001到31000 這些端口。
iptables -A INPUT -p tcp --dport 30001:31000 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 30001:31000 -j ACCEPT
service iptables save
最后進(jìn)行保存, 然后我們再用瀏覽器范圍下 ftp。可以正常訪問
不過建議在操作前先關(guān)閉防火墻。使用一下命令也可:
service iptables stop
這樣的結(jié)果就算連上了:
這說明ftp默認(rèn)是允許匿名登陸的,用以下命令打開配置文件可以看到:
cd /etc/vsftpd
vi vsftpd.conf
這時(shí)在windows的控制臺(tái)登錄,用戶名為anonymous,密碼為空。
匿名登錄成功。使用ls看看有哪些目錄:
我們看到的pub就是一個(gè)目錄。如果是默認(rèn)安裝vsftpd的話,以下是一些文件的位置約定:
/usr/sbin/vsftpd ????????---- VSFTPD的主程序
/etc/rc.d/init.d/vsftpd ---- 啟動(dòng)腳本
/etc/vsftpd/vsftpd.conf ---- 主配置文件
/etc/pam.d/vsftpd ???????---- PAM認(rèn)證文件
/etc/vsftpd.ftpusers ????---- 禁止使用VSFTPD的用戶列表文件
/etc/vsftpd.user_list ???---- 禁止或允許使用VSFTPD的用戶列表文件
/var/ftp ??????????????????---- 匿名用戶主目錄
/var/ftp/pub ?????????????---- 匿名用戶的下載目錄
這么說來,我們看到的pub就是/var/ftp/pub這個(gè)目錄。
如果要更改默認(rèn)下載目錄,修改/etc/vsftpd/vsftpd.conf,加入如下三行:
local_root=/
chroot_local_user=YES
anon_root=/
local_root表示使用本地用戶登錄到ftp時(shí)的默認(rèn)目錄
anon_root表示匿名用戶登錄到ftp時(shí)的默認(rèn)目錄
修改vsftpd.conf配置文件:
chroot_local_user = YES
chroot_list_file=/etc/vsftpd.chroot_list
退出,然后編輯/etc/vsftpd.chroot_list,在這里面輸入用戶名字,一行寫一個(gè)用戶名。最后你再重新啟動(dòng)一下vsftpd服務(wù)。就可以了
3.允許root用戶上傳
輸入以下命令,編輯文件,解除對root上傳的限制:
cd /etc/vsftpd
vi user_list
編輯這個(gè)文件,將里面的root刪掉。
cd /etc/vsftpd
vi ftpusers
然后使用以下命令重啟服務(wù):
service vsftpd restart
在windows下可以使用FlashFXP
來登錄。
如果登錄時(shí)出現(xiàn)這樣的錯(cuò)誤:
在Linux上運(yùn)行以下命令查看一下:
sestatus -b | grep ftp
接下來把ftp_home_dir改成on:
setsebool -P ?ftp_home_dir ?on
然后重啟ftp:
修改/etc/selinux/config文件,設(shè)置SELINUX= disabled:
vi /etc/selinux/config
使用reboot命令重新啟動(dòng)。再打開ftp服務(wù),這時(shí)就可以了!
上傳Oracle安裝包試一下:
4.設(shè)置FTP開機(jī)自啟
chkconfig vsftpd on
chkconfig --list | grep vsftpd
總結(jié)
以上是生活随笔為你收集整理的linux下java写ftp服务器端,在Linux下部署网站(java环境部署)第五章 FTP服务器搭建...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实验6Linux系统开发环境,哈工大嵌入
- 下一篇: Linux给命令设置超时时间,Linux