linux下使用ftp共享文件
安装ftp(如果没有安装)sudo apt install vsftpd创建访问用户以下命令创建一个guest用户并更改其主目录为共享文件的根目录,这样在下面设置ftp时限制登录用户在其主目录中可以让用户ftp登录时即进入到要共享的文件夹中,且不允许到这个文件夹外面去。sudo useradd guestsudo passwd guestsudo usermod -d 共享文...
- 安装ftp(如果没有安装)
sudo apt install vsftpd
- 创建访问用户
以下命令创建一个guest用户并更改其主目录为要分享的文件夹的根目录,这样在下面设置ftp时限制登录用户在其主目录中可以让用户ftp登录时即进入到要共享的文件夹中,且不允许到这个文件夹外面去。
anonymous=NO #禁止匿名访问
sudo useradd guest
sudo passwd guest
sudo usermod -d 共享文件夹的根目录 guest
sudo usermod -s /sbin/nologin guest #限制用户登录,guest用户只能作为ftp访问用户登录
注意:下面的设置要限制登录用户在自己的主目录下,这里需要将guest的主目录改成不可写模式,否则会访问失败=>sudo chmod -w guest主目录
更正:以上sudo usermod -s /sbin/nologin guest
不知道为什么会导致ftp无法登录,所以改回了/bin/bash
,但是这样的话该用户也可以ssh远程登录,为了禁止其远程登录,参考这篇博客直接在ssh的配置文件中设置允许ssh登录的用户就可以了=>
vim /etc/ssh/sshd_config
#添加一行
AllowUsers root #没有添加guest用户所以其无法远程ssh登录
#保存修改后重启下ssh服务
systemctl systemctl restart sshd.service
- 配置ftp
编辑ftp配置文件/etc/vsftpd.conf
(一般会自动生成);参考注释,把自己想要的选项去掉注释或者不想要的选项注释掉,我用的是默认,改了以下几个:
listen=YES #让ftp自己监听网络端口(应该),根据man手册,这种方式使用更简单
local_umask=022 #设置本地用户权限为755(即777-022)
chroot_local_user=YES #改变根目录至用户目录(禁止登录用户访问主目录以外的目录)
chroot_list_enable=YES #限制哪些登录用户在其主目录中;下一选项的文件指定哪些用户受此限制
chroot_list_file=/etc/vsftpd.chroot_list
创建并编辑/etc/vsftpd.chroot_list
文件,一行一个用户名,指定哪些用户需要限制在其主目录中。比如这里对外开了一个guest用户,则只要限制guest用户在其主目录中即可。
更正,虽然不太清楚为什么,但是将guest添加到vsftpd.chroot_list中好像是把guest拉进了黑名单,怎么也无法登录;相反,我使用其他本地用户时可以登录ftp且限制在主目录;当将guest移出vsftpd.chroot_list后发现可以登录=>说明确实是类似黑名单的作用。
- 重启ftp服务
/etc/init.d/vsftpd restart #重启vsftpd服务器(ubuntu下)
service vsftpd start #重启服务(ubuntu下)
#在centos下重启vsftpd服务
systemctl restart vsftpd.service
systemctl status vsftpd.service #查看状态
- 登录ftp链接下载文件
使用ifconfig
查看本机ip地址,然后在网页或者ftp软件中输入网址ftp://192.xxx.xxx.xxx
,然后输入用户名guest及其密码即可访问ftp服务器上文件。
注意:ftp分享文件夹需要有公网ip,否则只能在同一局域网下访问——可以在有公网ip的服务器上配置以上ftp服务;也可以采用内网穿透的方法,将内网ip映射到自定义域名上,然后借由一个有公网ip的服务器做一下端口映射,我使用的是nat123,让自己个人电脑上的ftp服务可以在非同一局域网下访问,参考以下教程:
- linux下安装nat123
- 外网访问内网FTP-非网站应用映射方法,教程中是windows下的配置,linux下的配置可以直接在官网相应实现,登录后点击左侧栏映射列表,之后操作与windows下客户端差不多
- vsftpd服务修改为被动模式及设置端口范围,nat123网站的内网穿透方法需要设置被动模式,如下设置:
vim /etc/vsftpd/vsftpd.conf
#修改以下配置
pasv_enable=YES #开启被动模式
pasv_min_port=xxxx #随机最小端口,按照nat123的配置,最小端口与最大端口设为同一个
pasv_max_port=xxxx #随机最大端口
更多推荐
所有评论(0)