前言
基于FTP協(xié)議實(shí)現(xiàn)Linux與Winodows實(shí)現(xiàn)文件傳輸,是大學(xué)期間的一個(gè)小實(shí)驗(yàn)。在這里做個(gè)總結(jié)。
(一) Linux FTP網(wǎng)絡(luò)環(huán)境搭建
實(shí)驗(yàn)環(huán)境:
- Linux CentOS 7.9
- Xshell 7
- Win10
1.安裝ftp包
通過yum安裝vxftpd pacakge,并按照如下指令執(zhí)行
yum -y install vsftpd
修改 vsftpd.conf,此前先備份 成 vsftpd.conf.bak
,防止該配置文件改錯(cuò)導(dǎo)致無法運(yùn)行。
[root@localhost ~] cd /etc/vsftpd/
[root@localhost vsftpd] ls
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
[root@localhost vsftpd] cp vsftpd.conf vsftpd.conf.bak
[root@localhost vsftpd] ls
ftpusers user_list vsftpd.conf vsftpd.conf.bak vsftpd_conf_migrate.sh
[root@localhost vsftpd] vim vsftpd.conf
vsftpd.conf vsftpd.conf.bak
2. 置匿名用戶訪問的FTP服務(wù)(最大權(quán)限)
執(zhí)行vim vsftpd.conf
,加上如下圖紅框所示的配置信息,允許開啟匿名用戶讀寫權(quán)限。
這里可以先退出vim的編輯模式,為了方便找到上述的紅框配置信息在文件中的位置,執(zhí)行下面的指令就可以看到這些文件所在的具體行數(shù)。
grep -n --color=auto 'anon*' vsftpd.conf
然后vim vsftpd.conf
,退出編輯模式,執(zhí)行::set nu
就可以在vim編輯器中展示行數(shù)。
3.為匿名訪問ftp的根目錄下的pub子目錄設(shè)置最大權(quán)限,以便匿名用戶上傳數(shù)據(jù)
chmod 777 /var/ftp/pub/
4. 開啟服務(wù),關(guān)閉防火墻和增強(qiáng)型安全功能
分別執(zhí)行下面三個(gè)指令
systemctl start vsftpd
systemctl stop firewalld
setenforce 0
執(zhí)行:ifconfig
,看到網(wǎng)卡 ip為192.168.1.128,保存好,后續(xù)連接會(huì)用到。
(二)Windows 設(shè)置用戶名密碼訪問ftp服務(wù)器
- 點(diǎn)擊桌面上的我的電腦,然后點(diǎn)擊映射網(wǎng)絡(luò)驅(qū)動(dòng)器
· 選擇映射網(wǎng)絡(luò)驅(qū)動(dòng)器
設(shè)置指定網(wǎng)站地址:ftp://虛擬機(jī)網(wǎng)卡ip
這里可以設(shè)置匿名用戶連接ftp也可以設(shè)置用戶訪問ftp連接。這里演示使用有用戶名登錄FTP.
隨后點(diǎn)擊登錄,若FTP服務(wù)器地址填寫無誤,就會(huì)顯示虛擬機(jī)文件內(nèi)容:
我們打開“此電腦”,在網(wǎng)絡(luò)配置中就可以看到我們配置的FTP連接了。
現(xiàn)在 Win+ R 鍵打開Windows控制臺(tái)
執(zhí)行:
ftp 192.168.1.128
根據(jù)指示輸入賬戶和密碼,也就是你前面填寫的鏈接FTP服務(wù)器的賬號(hào)密碼:
隨后在cmd控制臺(tái)執(zhí)行:
cd /etc
ls
測(cè)試:Windows下載Linux文件到本地
接下去在虛擬機(jī)上創(chuàng)建文件,寫點(diǎn)東西。然后去windows界面看看。
[root@localhost vsftpd] cd /var/ftp/pub/
[root@localhost pub] touch test.txt
[root@localhost pub] vim test.txt # 往test.txt中寫點(diǎn)東西
[root@localhost pub] ls
test.txt
回到Windows控制臺(tái)進(jìn)入 /ftp/pub 查看到 test.txt.使用 get test.txt
,windows就會(huì)把內(nèi)容下載到本地。C:\Users\Asus\test.txt
(本地路徑可能有點(diǎn)兒不一樣)
(三)Windows 匿名訪問ftp服務(wù)器
前面操作都是一樣的,由于我們之前設(shè)置匿名用戶允許使用FTP連接 pub 文件夾,選擇匿名用戶連接FTP服務(wù)器過程如下:
這里匿名用戶只能訪問 pub文件夾。
我們還是使用cmd指令,輸入
ftp 192.168.1.128
此時(shí)系統(tǒng)還會(huì)提示,輸入用戶名密碼:此時(shí)由于是匿名登陸,所以用戶名為:anonymous
,密碼任意輸入
都可以登錄成功
后續(xù)步驟和之前一樣。
問題記錄
1. “打開ftp服務(wù)器上的文件夾時(shí)發(fā)生錯(cuò)誤,請(qǐng)檢查是否有權(quán)限訪問該文件夾"
這是在Windows10 FTP連接虛擬機(jī)時(shí)出錯(cuò)。原因可能是系統(tǒng)防火墻攔截了連接。
【方案】打開控制面板,搜索“Internet”選項(xiàng)。Internet選項(xiàng)>>高級(jí)>>將“使用被動(dòng)FTP(用于防火墻和DSL調(diào)制解調(diào)器的兼容)”選項(xiàng)去掉>>確定即可
2.【Linux/CentOS】Boolean ftp_home_dir is not defined
安裝完vsftpd軟件后,因?yàn)镃entOS系統(tǒng)的SELinux安全策略默認(rèn)是沒有開啟FTP服務(wù),直接訪問會(huì)報(bào)錯(cuò)500 OOPS,所以需要修改為允許使用FTP服務(wù)。
目標(biāo):希望ftp用戶可以訪問自己的家目錄
嘗試:命令行輸入
sudo setsebool -P ftp_home_dir 1
發(fā)現(xiàn)會(huì)報(bào)錯(cuò):Boolean ftp_home_dir is not defined
搜了一下原來是CentOS7開始用 tftp_home_dir 來代替了 ftp_home_dir ,所以應(yīng)該修改如下:
sudo setsebool -P tftp_home_dir
這時(shí)我們?cè)賵?zhí)行:
getsebool -a | grep ftp
查看ftp進(jìn)程。
selinux文件配置在下處更改,更改完 reboot.配置生效。
vim /etc/sysconfig/selinux
3. FTP - 550 Failed to change directory
[root@localhost~]setfacl -R -m u:fy36:rwx /var/ftp/pub/
[root@localhost ~] usermod -a -G ftp fy36
[root@localhost ~] chmod g+s /var/ftp/pub/
詳見 StackOverFlow
4.輸入IP地址,root用戶,密碼,快速連接,報(bào)錯(cuò):530 Permission denied。
故障排除:
1.首先檢查系統(tǒng)是否開啟了vsftp服務(wù),如果沒有開啟,先開啟該服務(wù)。
方法1.setup–系統(tǒng)服務(wù)–自啟動(dòng)服務(wù)
方法2.界面設(shè)置,service vsftpd restart
2.查看配置
vsftpd的配置,配置文件中限定了vsftpd用戶連接控制配置。
vsftpd.ftpusers:位于/etc目錄下。它指定了哪些用戶賬戶不能訪問FTP服務(wù)器,例如root等。
vsftpd.user_list:位于/etc目錄下。該文件里的用戶賬戶在默認(rèn)情況下也不能訪問FTP服務(wù)器,僅當(dāng)vsftpd .conf配置文件里啟用userlist_enable=NO選項(xiàng)時(shí)才允許訪問。
vsftpd.conf:位于/etc/vsftpd目錄下。來自定義用戶登錄控制、用戶權(quán)限控制、超時(shí)設(shè)置、服務(wù)器功能選項(xiàng)、服務(wù)器性能選項(xiàng)、服務(wù)器響應(yīng)消息等FTP服務(wù)器的配置。
3.配置修改完成后,執(zhí)行service vsftpd restart重啟vsftpd服務(wù)。文章來源:http://www.zghlxwxcb.cn/news/detail-762193.html
5. linux ftp failed open,Linux VSFTP提示500 OOPS: failed to open xferlog log file:/var/log/xferlog
例如 B 使用 FTP連接A時(shí)報(bào)錯(cuò)這個(gè),我們?cè)囋嘇 FTP 連接B即可。連接是相互的。文章來源地址http://www.zghlxwxcb.cn/news/detail-762193.html
到了這里,關(guān)于【Linux】基于FTP協(xié)議實(shí)現(xiàn)Linux與Windows文件傳輸?shù)奈恼戮徒榻B完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!