文件传输

1、前言

一般来说,你不可能在服务器上编写php代码之类的,这样既不安全,也很难回退版本之类的,而且还会有相当的延迟。所以一般我们都是本地编写,然后上传到服务器。
上传到服务器的方式有很多种,接下来本章节主要介绍几种上传到服务器的方法。同时,我也会接下来几个章节主要介绍我们的Git服务器部署以及配置。

2. SCP传输文件

SCP是简单的文件传输命令,因为是加密的,所以很安全,内网传输速度快。

# 1、本地   ---文件-->   远程服务器
# 格式:
$ scp [-P 端口号] <本地文件路径>  <远程服务器用户名>@<远程服务器ip地址>:<要上传到远程服务器的文件位置>
### 如:
$ 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、远程服务器  ---文件-->   本地
# 格式:
$ scp [-P 端口号] [远程服务器用户名]@[远程服务器ip地址]:[远程服务器文件路径]  [本地文件路径]
### 如:
$ 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、 本地    ---文件夹-->  远程服务器
$ scp [-P 端口号] -r [本地文件夹路径]  [远程服务器用户名]@[远程服务器ip地址]:[要上传到远程服务器的文件位置]

# 4、远程服务器  ---文件夹--> 本地
$ scp [-P 端口号] -r [远程服务器用户名]@[远程服务器ip地址]:[远程服务器文件夹路径]  [本地文件路径]

3. sftp文件传输

类似ftp传输文件,但是比ftp更加安全

$sftp root@139.xxx.xxx.xxx              # 通过sftp连接到远程服务器
root@139.xxx.xxx.xxx's password:        # 输入登录密码
Connected to 139.xxx.xxx.xxx.           # 已连接到远程服务器
sftp> put <本地文件路径> <远程文件路径>     # 上传文件
sftp> get <远程文件路径> <本地文件路径>     # 下载文件

4. ftp传输文件

1.部署FTP文件服务器
2.FTP服务器主要下载组件vsftpd(Very Secure FTP)
3.FTP服务端口(21端口用于连接,20端口)

1、配置安装启动Ftp

1、 下载vsftpd

$yum search vsftpd
$yum install vsftpd

2、 修改配置开机启动

###配置文件位于 /etc/vsftpd/ 详细参数见Tips
$chkconfig --level 35 vsftpd on    #开机启动

3、启动ftp服务

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

2、配置文件详解

配置文件路径: /etc/vsftpd
配置文件夹主要有三个文件(sh文件不算):

  • ftpusers
  • user_list
  • vsftpd.conf
1. ftpusers

禁止使用ftp的用户列表,即FTP黑名单

2. user_list

禁止或者允许使用ftp的用户列表,分两种情况:

  1. 如果vsftpd.conf配置文件userlist_deny=YES,则用户列表里的用户禁止登陆(默认)
  2. 如果vsftpd.conf配置文件userlist_deny=NO,则用户列表里的用户允许登录
3. vsftpd.conf内容详解:
# 默认配置文件地址 /etc/vsftpd/vsftpd.conf

### 监听
listen_address=ip_addr                  # 指定监听的ip地址
listen_port=21                          # 监听的端口位置(默认FTP端口21)
listen=NO                               # 开启ipv4监听
listen_ipv6=YES                         # 开启piv6监听

### 用户
#nopriv_user=ftpsecure                  # 指定vsftp服务运行的账户,默认是ftp
local_root=/home/ftp                    #所有用户(除匿名用户)根目录
write_enable=YES                        # 是否允许用户写文件

####### 本地用户
local_enable=YES                        # 是否允许本地用户登录
local_umask=022                         # 设置本地用户生成文件的掩码为022(若不设置为077)
#local_max_rate = 300                    # 本地用户最大传输速度(Byts/s)

####### 匿名用户
anonymous_enable=YES                    # 是否允许匿名登录
anon_upload_enable=YES                  # 是否允许匿名用户上传文件                  
anon_mkdir_write_enable=YES             # 是否允许匿名用户创建和写文件
#anon_max_rate = 300                     # 匿名用户最大传输速度(Byts/s)

####### 虚拟用户
userlist_enable=YES                     # 仅仅user_list里的用户可以访问
#userlist_deny=YES

# email用户
#deny_email_enable=YES                  # 是否拒绝banned_email_file里面的email地址登录
#banned_email_file=/etc/vsftpd/banned_emails    # 默认banned_email_file路径

###权限

chown_uploads=YES                       # 是否具备上传权限,用户由chown_username指定
chown_username=whoever

#chroot_local_user=YES                  # 限制所有本地用户只能在自家目录
#chroot_list_enable=YES                 # 指定不能离开用户目录的用户
#chroot_list_file=/etc/vsftpd/chroot_list   # 默认的chroot_list文件位置



###日志
xferlog_enable=YES                      # 是否开启上传下载日志
xferlog_file=/var/log/xferlog           # 日志位置
xferlog_std_format=YES                  # 标准日志格式


###超时操作
idle_session_timeout=600               # 设置用户600(s)后没有操作的话,连接中断
data_connection_timeout=120            # 设置用户120(s)后没有进行数据连接,连接中断


###系统设置
ftpd_banner=Welcome to blah FTP service.# 用户连接服务器后显示的消息

#async_abor_enable=YES                  # 是否允许客户端使用sync等命令

ascii_upload_enable=YES                 # 是否允许上传二进制文件
ascii_download_enable=YES               # 是否允许下载二进制文件
dirmessage_enable=YES                   # 当切换到目录时,是否显示该目录下的.message隐藏文件的内容

#ls_recurse_enable=YES                  # 是否允许使用ls -R等操作
pam_service_name=vsftpd                 # 设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/ 
tcp_wrappers=YES                        # 在vsftpd中是否使用TCP_Wrappers远程访问控制机制,默认YES

connect_from_port_20=YES                # 是否使用20端口传输数据(主动模式)

4、PAM认证,实现虚拟账号登录FTP服务器(推荐)
#安装组件包
$yum install db4* -y

坑:

坑1. 匿名用户开启上传文件遇到的坑

开启上传文件,需要先在配置文件中设置

write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES

但是,设置完配置文件并重启后,并不能上传文件,还需要额外的设置:

# 1.观察是否开启SeLinux功能
$getsebool             
      #两种结果:
          #1.显示"usage:  getsebool -a or getsebool boolean...",说明已开启
          #2.显示 "getsebool:  SELinux is disabled",说明已关闭

# 2.开启Selinux(如果已开启跳过)
$vim /etc/selinux/config
把selinux=disable   改为  selinux=1
#开启后需要重启电脑

# 3.查看ftp设置
$getsebool -a | grep ftp
  #显示内容如下:

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.设置SeLinux上ftp操作

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

FTP 文件上传还有点问题,待定

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容