文件傳輸

1、前言

一般來(lái)說(shuō),你不可能在服務(wù)器上編寫(xiě)php代碼之類的,這樣既不安全,也很難回退版本之類的,而且還會(huì)有相當(dāng)?shù)难舆t。所以一般我們都是本地編寫(xiě),然后上傳到服務(wù)器。
上傳到服務(wù)器的方式有很多種,接下來(lái)本章節(jié)主要介紹幾種上傳到服務(wù)器的方法。同時(shí),我也會(huì)接下來(lái)幾個(gè)章節(jié)主要介紹我們的Git服務(wù)器部署以及配置。

2. SCP傳輸文件

SCP是簡(jiǎn)單的文件傳輸命令,因?yàn)槭羌用艿?,所以很安全,?nèi)網(wǎng)傳輸速度快。

# 1、本地   ---文件-->   遠(yuǎn)程服務(wù)器
# 格式:
$ scp [-P 端口號(hào)] <本地文件路徑>  <遠(yuǎn)程服務(wù)器用戶名>@<遠(yuǎn)程服務(wù)器ip地址>:<要上傳到遠(yuǎn)程服務(wù)器的文件位置>
### 如:
$ scp /usr/local/nginx/html/50x.html root@139.xxx.xxx.xxx:/home/guest/scp
root@139.xxx.xxx.xxx's password:       #輸入密碼
# 50x.html           100%  537     6.8KB/s   00:00  
##### 傳輸成功 ####

# 2、遠(yuǎn)程服務(wù)器  ---文件-->   本地
# 格式:
$ scp [-P 端口號(hào)] [遠(yuǎn)程服務(wù)器用戶名]@[遠(yuǎn)程服務(wù)器ip地址]:[遠(yuǎn)程服務(wù)器文件路徑]  [本地文件路徑]
### 如:
$ scp root@139.xxx.xxx.xxx:/home/guest/scp/50x.html /tmp
root@139.xxx.xxx.xxx's password:    #輸入密碼
# 50x.html        100%  537    12.2KB/s   00:00     
##### 下載成功 #####

# 3、 本地    ---文件夾-->  遠(yuǎn)程服務(wù)器
$ scp [-P 端口號(hào)] -r [本地文件夾路徑]  [遠(yuǎn)程服務(wù)器用戶名]@[遠(yuǎn)程服務(wù)器ip地址]:[要上傳到遠(yuǎn)程服務(wù)器的文件位置]

# 4、遠(yuǎn)程服務(wù)器  ---文件夾--> 本地
$ scp [-P 端口號(hào)] -r [遠(yuǎn)程服務(wù)器用戶名]@[遠(yuǎn)程服務(wù)器ip地址]:[遠(yuǎn)程服務(wù)器文件夾路徑]  [本地文件路徑]

3. sftp文件傳輸

類似ftp傳輸文件,但是比f(wàn)tp更加安全

$sftp root@139.xxx.xxx.xxx              # 通過(guò)sftp連接到遠(yuǎn)程服務(wù)器
root@139.xxx.xxx.xxx's password:        # 輸入登錄密碼
Connected to 139.xxx.xxx.xxx.           # 已連接到遠(yuǎn)程服務(wù)器
sftp> put <本地文件路徑> <遠(yuǎn)程文件路徑>     # 上傳文件
sftp> get <遠(yuǎn)程文件路徑> <本地文件路徑>     # 下載文件

4. ftp傳輸文件

1.部署FTP文件服務(wù)器
2.FTP服務(wù)器主要下載組件vsftpd(Very Secure FTP)
3.FTP服務(wù)端口(21端口用于連接,20端口)

1、配置安裝啟動(dòng)Ftp

1、 下載vsftpd

$yum search vsftpd
$yum install vsftpd

2、 修改配置開(kāi)機(jī)啟動(dòng)

###配置文件位于 /etc/vsftpd/ 詳細(xì)參數(shù)見(jiàn)Tips
$chkconfig --level 35 vsftpd on    #開(kāi)機(jī)啟動(dòng)

3、啟動(dòng)ftp服務(wù)

$service vsftpd start
#或:
$systemctl start vsftpd.service

2、配置文件詳解

配置文件路徑: /etc/vsftpd
配置文件夾主要有三個(gè)文件(sh文件不算):

  • ftpusers
  • user_list
  • vsftpd.conf
1. ftpusers

禁止使用ftp的用戶列表,即FTP黑名單

2. user_list

禁止或者允許使用ftp的用戶列表,分兩種情況:

  1. 如果vsftpd.conf配置文件userlist_deny=YES,則用戶列表里的用戶禁止登陸(默認(rèn))
  2. 如果vsftpd.conf配置文件userlist_deny=NO,則用戶列表里的用戶允許登錄
3. vsftpd.conf內(nèi)容詳解:
# 默認(rèn)配置文件地址 /etc/vsftpd/vsftpd.conf

### 監(jiān)聽(tīng)
listen_address=ip_addr                  # 指定監(jiān)聽(tīng)的ip地址
listen_port=21                          # 監(jiān)聽(tīng)的端口位置(默認(rèn)FTP端口21)
listen=NO                               # 開(kāi)啟ipv4監(jiān)聽(tīng)
listen_ipv6=YES                         # 開(kāi)啟piv6監(jiān)聽(tīng)

### 用戶
#nopriv_user=ftpsecure                  # 指定vsftp服務(wù)運(yùn)行的賬戶,默認(rèn)是ftp
local_root=/home/ftp                    #所有用戶(除匿名用戶)根目錄
write_enable=YES                        # 是否允許用戶寫(xiě)文件

####### 本地用戶
local_enable=YES                        # 是否允許本地用戶登錄
local_umask=022                         # 設(shè)置本地用戶生成文件的掩碼為022(若不設(shè)置為077)
#local_max_rate = 300                    # 本地用戶最大傳輸速度(Byts/s)

####### 匿名用戶
anonymous_enable=YES                    # 是否允許匿名登錄
anon_upload_enable=YES                  # 是否允許匿名用戶上傳文件                  
anon_mkdir_write_enable=YES             # 是否允許匿名用戶創(chuàng)建和寫(xiě)文件
#anon_max_rate = 300                     # 匿名用戶最大傳輸速度(Byts/s)

####### 虛擬用戶
userlist_enable=YES                     # 僅僅user_list里的用戶可以訪問(wèn)
#userlist_deny=YES

# email用戶
#deny_email_enable=YES                  # 是否拒絕banned_email_file里面的email地址登錄
#banned_email_file=/etc/vsftpd/banned_emails    # 默認(rèn)banned_email_file路徑

###權(quán)限

chown_uploads=YES                       # 是否具備上傳權(quán)限,用戶由chown_username指定
chown_username=whoever

#chroot_local_user=YES                  # 限制所有本地用戶只能在自家目錄
#chroot_list_enable=YES                 # 指定不能離開(kāi)用戶目錄的用戶
#chroot_list_file=/etc/vsftpd/chroot_list   # 默認(rèn)的chroot_list文件位置



###日志
xferlog_enable=YES                      # 是否開(kāi)啟上傳下載日志
xferlog_file=/var/log/xferlog           # 日志位置
xferlog_std_format=YES                  # 標(biāo)準(zhǔn)日志格式


###超時(shí)操作
idle_session_timeout=600               # 設(shè)置用戶600(s)后沒(méi)有操作的話,連接中斷
data_connection_timeout=120            # 設(shè)置用戶120(s)后沒(méi)有進(jìn)行數(shù)據(jù)連接,連接中斷


###系統(tǒng)設(shè)置
ftpd_banner=Welcome to blah FTP service.# 用戶連接服務(wù)器后顯示的消息

#async_abor_enable=YES                  # 是否允許客戶端使用sync等命令

ascii_upload_enable=YES                 # 是否允許上傳二進(jìn)制文件
ascii_download_enable=YES               # 是否允許下載二進(jìn)制文件
dirmessage_enable=YES                   # 當(dāng)切換到目錄時(shí),是否顯示該目錄下的.message隱藏文件的內(nèi)容

#ls_recurse_enable=YES                  # 是否允許使用ls -R等操作
pam_service_name=vsftpd                 # 設(shè)置PAM認(rèn)證服務(wù)的配置文件名稱,該文件存放在/etc/pam.d/ 
tcp_wrappers=YES                        # 在vsftpd中是否使用TCP_Wrappers遠(yuǎn)程訪問(wèn)控制機(jī)制,默認(rèn)YES

connect_from_port_20=YES                # 是否使用20端口傳輸數(shù)據(jù)(主動(dòng)模式)

4、PAM認(rèn)證,實(shí)現(xiàn)虛擬賬號(hào)登錄FTP服務(wù)器(推薦)
#安裝組件包
$yum install db4* -y

坑:

坑1. 匿名用戶開(kāi)啟上傳文件遇到的坑

開(kāi)啟上傳文件,需要先在配置文件中設(shè)置

write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES

但是,設(shè)置完配置文件并重啟后,并不能上傳文件,還需要額外的設(shè)置:

# 1.觀察是否開(kāi)啟SeLinux功能
$getsebool             
      #兩種結(jié)果:
          #1.顯示"usage:  getsebool -a or getsebool boolean...",說(shuō)明已開(kāi)啟
          #2.顯示 "getsebool:  SELinux is disabled",說(shuō)明已關(guān)閉

# 2.開(kāi)啟Selinux(如果已開(kāi)啟跳過(guò))
$vim /etc/selinux/config
把selinux=disable   改為  selinux=1
#開(kāi)啟后需要重啟電腦

# 3.查看ftp設(shè)置
$getsebool -a | grep ftp
  #顯示內(nèi)容如下:

ftp_home_dir --> off
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> off
tftp_home_dir --> off

4.設(shè)置SeLinux上ftp操作

$setsebool -P allow_ftpd_anon_write on
$setsebool -P allow_ftpd_full_access on

FTP 文件上傳還有點(diǎn)問(wèn)題,待定

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容