日期:20170924
Linux和Windows之間複製粘貼文件
爲了能在windows文件夾中直接複製和粘貼linux文件,簡單且安全的是在linux中搭建ftp服務器。
注:
1、這篇文章只搭建匿名訪問。
2、搭建環境CentOS 7
選擇vsftpd
在linux搭建ftp服務器,多數是用vsftpd,Very Secure FTP Daemon。可能是因爲它很小,穩定和安全,而且現在這項目貌似還有人在維護。
安裝
很多發行版的安裝庫都有vsftpd,很容易安裝。
在CentOS 7只需,
# yum install vsftpd
其他人可訪問(匿名訪問)
搭建FTP,目標是Windows和Linux直接複製粘貼,不需要用戶名和密碼。
所以我們確定幾點,
1、不需要用戶名和密碼即可訪問。(即,設置匿名訪問)
2、爲了安全,不可以訪問上層文件夾。(即,創建監獄)
3、可以上傳和下載文件。(文件具有rw權限,子文件夾具有rwx權限)
配置/etc/vsftpd.conf
/etc/vsftpd.conf是vsftpd主要的配置文件,多數配置都在這裏設置。
不同發行版的vsftpd.conf有可能不在/etc/,例如,CentOS就在,
/etc/vsftpd/vsftpd.conf
如果這兩個路徑都不是,就看看自己發行版的Doc。
vsftpd.conf裏面有很多常用說明,所以剛學搭建vsftpd的人很容易上手。(當然有一些設置是沒有的,那麼你就要man一下,或者去看vsftpd的官方文檔)
在配置之前,先備份一份原文檔比較好,(這文件是需要root權限的)
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bkp
現在我們配置一下匿名訪問,
[root@ali01 python]# cat /etc/vsftpd/vsftpd.conf | grep -v '^#'
anonymous_enable=YES
anon_root=/home/penx/python ##增加
anon_umask=000 ##增加
anon_other_write_enable=YES ##增加
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES ##把註釋去掉
anon_mkdir_write_enable=YES ##把註釋去掉
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES ##把NO改爲YES
listen_ipv6=NO ##把YES改爲NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
[root@ali01 python]#
這文件只是改了很少一部分,
1、增加anon_root=/home/penx/python。
anon_root=$dir
$dir是你想要共享的文件夾。
這裏要注意,其他人不能有該文件夾可寫權限,即,文件夾other的權限沒有w。
這一項是設置“監獄”,讓其他人只能訪問這個文件夾。
2、增加“anon_umask=000”和“anon_other_write_enable=YES”。
一個是設置上傳時,文件的默認權限,一個是允許匿名訪問可以有w的權限。(不是文件夾或文件的其他人權限上有w就可以在ftp中進行寫操作)
3、把 anon_upload_enable=YES 和 anon_mkdir_write_enable=YES 的註釋去掉。
一個是讓其他人可上傳,一個是讓其他人可以在自己創建的文件夾裏複製粘貼。
4、把listen改爲YES,即listen=YES。把listen_ipv6改爲NO。
這是設置監聽時用IPv4地址
重啓vsftpd服務
每次修改vsftpd配置,想立即生效,我們就要重啓vsftpd,
# systemctl restart vsftpd
當然,如果你還沒開服務,你就要,
# systemctl start vsftpd
如果你想開機自動開啓,則,
# systemclt enable vsftpd
測試訪問
如果重啓沒有出問題,應該可以在瀏覽器中訪問你的ftp文件夾,
通過windows我的電腦訪問
在多種網絡文件傳輸協議中,我選擇ftp傳輸,是因爲windows可以直接在我的電腦上訪問ftp,當然也能掛載,無需安裝其他軟件。
上面的教程,在網上也有很多。但是,內網搭建vsftpd,然後在外網用windows我的電腦訪問就會出現問題。(估計windows我的電腦中的ftp客戶端並沒有更新,還是很多年前的)
如果出現這個問題,
一,你可以把vsftpd搭在外網。()
二,修改我的電腦傳輸模式,不過這個設置很隱祕,一般都要上網找教程。而且如果每臺windwos都要這樣設置,那就有點過了。所以我找到了第3種。
三,在vsftpd.conf中增加一句,
pasv_address=$address
$address是你的ip地址。
然後重啓vsftpd就可以在我的電腦直接訪問了。
剖析(猜測)
windows我的電腦中的ftp客戶端所用的協議沒有更新,所以外網訪問內網的ftp服務器時,沒有獲取正確的ftp服務器地址。