阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

用Ubuntu Server架设基于独立硬盘的Windows文件共享和FTP服务器

471次阅读
没有评论

共计 8301 个字符,预计需要花费 21 分钟才能阅读完成。

标题本想使用关键词 NAS,但考虑到并不打算建立 Web 管理页面,和一些其他复杂的功能,未避免造成误导,就把范围强调在“Windows 文件共享”和“FTP 服务器”上。更精确地说,就是使用 Samba 和 vsftpd 两个 Linux 程序。

安装和使用 Samba 和 vsftpd 都不是难点,本文也只是作为留给自己的笔记来发表。之所以放弃使用 FreeNAS 或 NAS4Free 等现成 NAS 服务器专注发行版,是因为与 Hyper- V 的兼容不够好。如果看过我之前文章的朋友,应该会记得,我的家庭服务器是一台(现在是两台了)配置还不错的旧机器,上面运行了微软 Hyper- V 服务器,而所有其他的 Windows Server、Linux Server 则以虚拟服务器的形式存在,并各自专注做少量的事情。

前不久我升级了主服务器,现在配置为双 Xeon L5420 + 32GB 内存,这足够折腾了。上面的虚拟服务器分别包括了:Windows Home Server 2011(备份和文件共享)、Windows Server 2012 R2 Core(域控制器和 DNS)、Windows 2012 R2(VPN 和 DFS)、Ubuntu Server 14.04 LTS(代理服务器)、Xubuntu 14.04(Matlab 服务器)。

所有虚拟服务器文件存放于 SSD 上,两块 SSD 组成 RAID 1。所有需要大容量存储的服务器都外挂传统硬盘,4 块 1.5TB 硬盘组成 RAID 10,供 Windows Home Server 2011 和 Ubuntu 等用于存储数据。

这样的组合最大化保证了运行速度和数据安全。以下是大概的图示:

用 Ubuntu Server 架设基于独立硬盘的 Windows 文件共享和 FTP 服务器

————————————– 分割线 ————————————–

玩转 vsftpd 服务器的四大高级配置:http://www.linuxidc.com/Linux/2013-09/90565.htm

vsFTPd 配置教程:http://www.linuxidc.com/Linux/2013-09/90562.htm

Ubuntu 实用简单的 FTP 架设 http://www.linuxidc.com/Linux/2012-02/55346.htm

Ubuntu 上架设 FTP 服务器和 Apache 服务器 http://www.linuxidc.com/Linux/2011-04/35295.htm

Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

RHEL6 平台下 SeLinux 和 vsftpd 的匿名上传的简单案例 http://www.linuxidc.com/Linux/2013-04/82300.htm

Linux 系统 vsftpd 源码安装 http://www.linuxidc.com/Linux/2013-03/81475.htm

vsftpd 的安全配置案例分析 http://www.linuxidc.com/Linux/2012-12/76501.htm

————————————– 分割线 ————————————–

这次的 Ubuntu 文件服务器 +FTP 服务器在功能上看似与 Windows Home Server 2011 存在重叠,但实则这是我考虑了很久的一个计划。

Windows Home Server 2011 毕竟是微软停止推新的产品,尽管官方技术支持会一直持续到 2017 年之后,但终归是要考虑替换的。

另外就是最近 iCloud 闹出的明星 *** 事件,再次证明了我对云存储的担忧是正确的。我觉得云可以方便我们协同工作,共享不敏感文件,但绝对不是所谓的一切资料的最终存储解决方案。就像你不可能把现金放在保险箱里,然后把保险箱放在别人的地方,即使这个人承诺你“他会随传随到,随时为你服务”。

没有人可以保证数据的存储会绝对安全。如果数据足够敏感,任何时候可以相信的人都还是自己。所以,请不要把敏感的东西放在别人的地方,多买些硬盘花不了几个钱。

抛开难用的 iTunes 后,在不考虑云备份的前提下,iPhone 备份方案可以选择的就只有 NAS 和 FTP,于是就有了我在 Ubuntu 上自建 FTP 的想法。当然,在 Windows Home Server 2011 加入 FTP 支持也并不难,但我的 Windows Home Server 是对外的,而且我始终觉得这最后是会被我淘汰的,因此并不希望太依赖这个系统。

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2014-09/106212p2.htm

本章内容大致包括 Ubuntu Server 的环境配置和新硬盘添加及设置。

1)Ubuntu Server 的安装和配置

安装就不细说了,只提一点,在过程中可以选择服务器角色的时候,记得勾选 OpenSSH Server 和 Samba File Server。实在忘记了,或者已经安装好但不记得是否装了这两项的,也没有关系,根据下面两行指令就可以安装。

sudo apt-get install openssh-server

sudo apt-get install samba

这里还不需要配置,具体配置在后边。SSH 其实也非必要,只是没有这个东西操作起来很不方便(不能远程,不能在 Windows 下用 Putty)。

用 Ubuntu Server 架设基于独立硬盘的 Windows 文件共享和 FTP 服务器

上面准备工作完成后,接下来是给服务器添加硬盘。

Ubuntu Server 13.10 安装 (ProFTP、Tomcat6、FFMpeg)  http://www.linuxidc.com/Linux/2014-02/96950.htm

2)Mount 新硬盘

我测试用的虚拟机配置为 8GB 系统硬盘 +20GB 存储硬盘。之所以把存储硬盘单独分出来,好处在于今后拆解、更换、拓展什么的都方便。个人强烈不建议用一块大硬盘把系统、存储都放在一起。

加入一块新硬盘后,我们要做的第一件事就是初始化、格式化它,然后 mount 到 Ubuntu 系统下(Linux 下没有盘符的概念,所以就是创建一个文件夹,然后让这个文件夹和硬盘关联起来)。

具体操作:

a) 执行以下指令

ls /dev/sd*

该指令会列出当前所有系统盘符和侦测到的硬盘,执行后结果如下:

/dev/sda /dev/sda1 /dev/sda2 /dev/sda5 /dev/sdb

其中,/dev/sdb 是新添加硬盘,前面的都是一个硬盘情况下系统默认配置。这里我们记住“sdb”这个关键词。

b) 执行以下指令

sudo fdisk /dev/sdb

注意,上面的 /dev/sdb 就是前面对应的新硬盘。执行该指令后,会出现一段描述,最下面要求输入命令代码:

Command (m for help):

我们先输入 p 命令

Command (m for help):p

回车后会看到一些有关新硬盘的信息,如容量等等,并要求再次输入指令,这一次我们输入 n:

Command (m for help):n

然后会询问分区类型和分区数量等,我这里都采用默认设置,即直接按回车就好,以下为截图:

用 Ubuntu Server 架设基于独立硬盘的 Windows 文件共享和 FTP 服务器

上面的参数是把整块新硬盘设置为一个大的分区,但这些设置尚未生效,我们还要在最后确认一次

Command (m for help):w

w 指令是把内存中的参数设定写入到硬盘上。输入 w 后回车,会看到

The partition table has been altered!

然后系统命令行会返回到 bash

c) 执行 ls /dev/sd* 检查一下:

/dev/sda  /dev/sda1  /dev/sda2  /dev/sda5 /dev/sdb  /dev/sdb1

多出一个 /dev/sdb1,分区成功!

d) 接下来要对新分区进行格式化

sudo mkfs.ext3 -L /storage /dev/sdb1

这里的 /storage 是可以更改的,就是对分区的一个命名而已,相当于 Windows 下盘符的命名。

/dev/sdb1 对应的是新分区,前面我们检查时看过了。

根据硬盘大小不同,以上指令完成的时间会不同。大硬盘,尤其是 TB 级别会需要相当时间,请耐心等待。

完成后会看到:

用 Ubuntu Server 架设基于独立硬盘的 Windows 文件共享和 FTP 服务器

e) 再接着我们要把新格式化好的分区 mount 到 Ubuntu 系统下

sudo mkdir /storage

前面说了,Linux 没有盘符的概念,分区对应的就是系统下一个文件夹,所以我在根目录下创建一个 storage 文件夹。

这个硬盘不是移动硬盘,是需要每次重启后自动 mount 的,所以我们需要修改 /etc/fstab 的内容

sudo nano /etc/fstab

在最下方加入

/dev/sdb1      /storage        auto    defaults        0      0

保存退出。重启后执行 mount 指令,应该会看到最后一段写着:

/dev/sdb1 on /storage type ext3 (rw)

用 Ubuntu Server 架设基于独立硬盘的 Windows 文件共享和 FTP 服务器

标题本想使用关键词 NAS,但考虑到并不打算建立 Web 管理页面,和一些其他复杂的功能,未避免造成误导,就把范围强调在“Windows 文件共享”和“FTP 服务器”上。更精确地说,就是使用 Samba 和 vsftpd 两个 Linux 程序。

安装和使用 Samba 和 vsftpd 都不是难点,本文也只是作为留给自己的笔记来发表。之所以放弃使用 FreeNAS 或 NAS4Free 等现成 NAS 服务器专注发行版,是因为与 Hyper- V 的兼容不够好。如果看过我之前文章的朋友,应该会记得,我的家庭服务器是一台(现在是两台了)配置还不错的旧机器,上面运行了微软 Hyper- V 服务器,而所有其他的 Windows Server、Linux Server 则以虚拟服务器的形式存在,并各自专注做少量的事情。

前不久我升级了主服务器,现在配置为双 Xeon L5420 + 32GB 内存,这足够折腾了。上面的虚拟服务器分别包括了:Windows Home Server 2011(备份和文件共享)、Windows Server 2012 R2 Core(域控制器和 DNS)、Windows 2012 R2(VPN 和 DFS)、Ubuntu Server 14.04 LTS(代理服务器)、Xubuntu 14.04(Matlab 服务器)。

所有虚拟服务器文件存放于 SSD 上,两块 SSD 组成 RAID 1。所有需要大容量存储的服务器都外挂传统硬盘,4 块 1.5TB 硬盘组成 RAID 10,供 Windows Home Server 2011 和 Ubuntu 等用于存储数据。

这样的组合最大化保证了运行速度和数据安全。以下是大概的图示:

用 Ubuntu Server 架设基于独立硬盘的 Windows 文件共享和 FTP 服务器

————————————– 分割线 ————————————–

玩转 vsftpd 服务器的四大高级配置:http://www.linuxidc.com/Linux/2013-09/90565.htm

vsFTPd 配置教程:http://www.linuxidc.com/Linux/2013-09/90562.htm

Ubuntu 实用简单的 FTP 架设 http://www.linuxidc.com/Linux/2012-02/55346.htm

Ubuntu 上架设 FTP 服务器和 Apache 服务器 http://www.linuxidc.com/Linux/2011-04/35295.htm

Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

RHEL6 平台下 SeLinux 和 vsftpd 的匿名上传的简单案例 http://www.linuxidc.com/Linux/2013-04/82300.htm

Linux 系统 vsftpd 源码安装 http://www.linuxidc.com/Linux/2013-03/81475.htm

vsftpd 的安全配置案例分析 http://www.linuxidc.com/Linux/2012-12/76501.htm

————————————– 分割线 ————————————–

这次的 Ubuntu 文件服务器 +FTP 服务器在功能上看似与 Windows Home Server 2011 存在重叠,但实则这是我考虑了很久的一个计划。

Windows Home Server 2011 毕竟是微软停止推新的产品,尽管官方技术支持会一直持续到 2017 年之后,但终归是要考虑替换的。

另外就是最近 iCloud 闹出的明星 *** 事件,再次证明了我对云存储的担忧是正确的。我觉得云可以方便我们协同工作,共享不敏感文件,但绝对不是所谓的一切资料的最终存储解决方案。就像你不可能把现金放在保险箱里,然后把保险箱放在别人的地方,即使这个人承诺你“他会随传随到,随时为你服务”。

没有人可以保证数据的存储会绝对安全。如果数据足够敏感,任何时候可以相信的人都还是自己。所以,请不要把敏感的东西放在别人的地方,多买些硬盘花不了几个钱。

抛开难用的 iTunes 后,在不考虑云备份的前提下,iPhone 备份方案可以选择的就只有 NAS 和 FTP,于是就有了我在 Ubuntu 上自建 FTP 的想法。当然,在 Windows Home Server 2011 加入 FTP 支持也并不难,但我的 Windows Home Server 是对外的,而且我始终觉得这最后是会被我淘汰的,因此并不希望太依赖这个系统。

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2014-09/106212p2.htm

创建 samba 文件共享其实也不难,要点就是创建好 Linux 账户(要和 samba 账户对应),设置好共享文件夹权限。尤其是权限部分,比较没有 Windows 那么直观,理解以后并不难,但这里不打算复杂深入的讲解。

我的设置目的基本就一个要求,让 ftp 这个组的所有成员用户可以在 storage 这个共享文件夹里拥有读写权限,并且希望所有在 storage 下创建的新文件夹都继承 storage 的权限设定。

组:ftp

成员:xin、gong

系统安装时创建的用户为 xin,gong 用户还不存在,ftp 组也还未创建,所以我们先进行成员添加及组的添加。

sudo useradd gong -m -s /bin/bash

sudo passwd gong

# 以上指令可以创建用户 gong 并设置密码,然后我们创建 ftp 组

sudo groupadd ftp

# 再将用户 xin、gong 加入到 ftp 组中

sudo usermod -a -G ftp xin

sudo usermod -a -G ftp gong

# 通过 id xin 这个指令可以查看是否添加组成功。

有了用户,有了组,现在要给 /storage 这个文件夹设置相应的权限,并为 samba 设置相应的用户

# 去根目录下执行 ls -l,可以看到:

drwxr-xr-x    3    root    root    4096    Sep    4    12:20    storage

# 这说明 storage 这个文件夹当前所有人为 root,所有组为 root。

# 所有人不需要更改,把组改为 ftp,并让所有 ftp 组的成员都具备读写权。

sudo chown :ftp /storage

sudo chmod 775 /storage    # 如果不想其他账户看到,用 770 的权限也可以

# 执行 ls - l 查看结果:

drwxrwxr-x    3    root    ftp    4096    Sep    4    12:20    storage

# 添加 samba 用户:

sudo smbpasswd -a xin

sudo smbpasswd -a gong

执行上述指令时,每添加一用户就会自动要求为该用户设置 samba 密码。这个密码与登录 Ubuntu 系统的密码可以不同,它是 Windows 访问共享文件夹时需要的账户和密码。为了方便,通常你可以设置一个匹配 Windows 账户的 samba 用户和密码,这样 Windows 打开共享文件夹时就不需要输入口令了。

另外,samba 添加的用户一定要存在,就是必须先用 useradd 添加一个对应的 Linux 登录账户,否则会出错。

到这一步,其实还差点。之前说过了,要让 storage 共享文件夹下创建的新文件夹集成母文件夹权限,不然就会出现 xin 创建的文件 gong 不能访问(当然你需要这样的效果也可以)。要实现这个目的,需要再执行一行指令:

sudo chmod g+s /storage

到这一步就完成了权限的配置了。最后再照着下面的指令更改 /etc/samba/smb.conf 的内容:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak    #备份配置文件

sudo nano /etc/samba/smb.conf

# 用编辑器打开 smb.conf 后,默认设置什么都不用改,直接跳到最末端,新建以下内容:

[storage]

comment = Ubuntu File Server    # 对共享文件夹的描述

path = /storage    # 共享文件夹路径

available = yes    # 是否可用

valid users = @ftp    # @ftp 指 ftp 这个组,如果是用户则不需 @,多个用户用空格隔开

read only = no    # 是否只读

browsable = yes    # no 的话打开共享路径时将看不到文件夹,只能通过输入路径访问

writable = yes    # 是否可写

hide unreadable = yes    # 此项为可选,如没有,将看到一个名为 lost+found 的文件夹

# 保存退出后,重启服务:

sudo restart smbd

现在去 Windows 下 -> 运行 ->\\192.168.1.XX(Ubuntu 的 IP 地址)

应该能看到 storage 的文件夹,进入后尝试创建新文件,如果一切正常,那么共享就完成了。

之前将 storage 文件夹(背后是挂载的整块新硬盘)通过 samba 服务与 Windows 共享。之所以先共享,是为了完成 FTP 后方便文件管理。

软件:vsftpd

目标:让用户登录 FTP 后可以上传文件(主要用于 iPhone 照片备份),不同用户备份在各自的文件夹下。Windows 下打开共享的 storage 文件夹可以看到这些备份。高级一点的话,用户之间设置一下权限,不能相互读写(我个人不需要这个设定)。

第一步,安装 vsftpd

sudo apt-get install vsftpd

第二步,在 storage 下为 xin 和 gong 两个用户各自创建一个文件夹

sudo mkdir /storage/xin

sudo mkdir /storage/gong

然后修改用户默认文件夹路径

sudo usermod -d /storage/xin xin

sudo usermod -d /storage/gong gong

第三步,编辑 /etc/vsftpd.conf 配置文件

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak    # 编辑前先备份

sudo nano /etc/vsftpd.conf

# 找到以下几行代码,把前面的注释符删除(井字键)

write_enable=YES

chroot_local_user=YES   

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd.chroot_list

# 搜索 umask,找到下面一行代码,将内容改为 002

# 022 将保留 755 权限,002 保留 775,默认是 077 的值,即上传文件只给 700 权限

local_umask=002

# 滚动到最末端,加入下面一行内容

allow_writeable_root=YES    # 注意,writeable 这个词有字母 e,不是我笔误

# 保存退出

第四步,编辑 /etc/vsftpd.chroot_list 文件(就是前一步定义的用户配置文件)

sudo nano /etc/vsftpd.chroot_list

# 正常情况下,这个文件里是没有内容的,是一个新文件。

# 将所有 ftp 用户的名字逐一写在该文件中,一行一个名字。最后保存退出。

第五步,重启服务

sudo service vsftpd restart

更多 Ubuntu 相关信息见 Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计8301字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7984974
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用 AI 做了一个 1978 年至 2019 年中国大陆企业注册的查询网站 最近星哥在 GitHub 上偶然...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统 大家好,我是星哥。公司的项目文档存了一堆 ...
【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024 程序员】我劝你赶紧去免费领一个 AWS、华为云等的主机 每年 10 月 24 日,程序员们都会迎来...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装 2026 年最强个人助理 ClawdBot、完整安装教程 一、前言 学不完,根本学不完!近期,一款名...