XFile

关于XFile XFile架构 利用XFile打造家用文件服务系统 移动端应用 开发历史 下    载 授    权 联系我们

利用XFile打造家用文件服务系统

  昨天的奢侈品,就是明天的必需品,在电子技术快速发展的今天,私人组建家用文件服务器,已经变的非常容易了,这里我们将手把手指导您,打造一台属于您自己的家用文件服务器!

1 家用文件服务器的用途:

2 家庭装修时网络结构的布局:

3 家用文件服务器硬件采购和组装:

4 家用文件服务器操作系统的选择和调优:

5 服务器端XFile软件的安装和设置:

6 手机 平板和电脑端客户端软件的安装和设置

7 日常维护

8 常见问题和解决方法

 

 

1 家用文件服务器的用途:

  家用文件服务器,一般家庭其实主要是媒体分级共享服务,为什么要分级,你懂的;其次是文件的下载和上传功能,比如手机里的照片,视频之类的.

2 家庭装修时网络结构的布局:

  现在在房子装修时,通常会在家里做个多媒体箱,然后布置几条有线网络,但是很多都存在问题,例如家里只布置一条有线网络,其他以为用无线就能解决,多简单,还不用布线?但是,这里笔者给你强调一下,再牛的无线,也赶不上一条最普通的有线网络来的稳定!!! 有些装修公司想当然的,为了美观,把路由器,拨号猫[光猫],交换机全给塞进多媒体箱里,但是,这其实很不好,一来散热不好,多媒体箱空间有限,你塞一堆24小时运行的电子设备进一个封闭箱子,散热是大问题;其次,家用路由器和交换机,拨号猫,其实是无法实现365*30*24小时稳定运行的,一般在15到30天需要重新启动一次,否则性能会直线下降或者无法上网;最后,你把路由器放进多媒体箱里,会影响无线信号,经常有人认为,只上个网,信号弱点就弱点,能上就行,其实这个认识有问题,无线网络下,如果发射端[路由器]检测到与终端[用户端,手机笔记本等]信号太弱,那么双方都会加强无线发射功率,而手机端通常里身体近,因此反而对身体不好,因此最好的办法是将路由器从多媒体箱里拿出来,做个托板,放在客厅吊顶的下方. 给一个比较合理的网络布线参考图片,后续升级什么的也很容易.

3 家用文件服务器硬件采购和组装:

  目前常见的成品,有NAS如群辉等,也有路由器加USB的解决方法,但是为什么我们不推荐这两个解决呢,首先路由器加USB共享的方案,因为路由器本身的硬件限制,好点的解决不过是双核心ARM CPU +256m内存,路由器要同时承担上网,交换,web管理,ftp管理,防火墙等后台操作,本身性能已经很着急,再加上用USB外置共享,这种性能和稳定性你可想而知,因此可以直接忽略掉.

   而成品NAS,价格偏高,性能差,扩展性弱[盘位少,多于2个盘位的,价格离谱],而且操作系统普遍是基于FREE BSD UNIX或者LINUX加SAMBA来实现的,对普通用户来说就是个黑盒子,如果系统出个漏洞,例如前些日子暴出的UPNP远程访问漏洞等,除非你立即刷ROM,否则你自求多福吧. 对普通用户来说,windows是个很成熟而且友好的平台,更容易上手,技术成本更低.

  因此,我们推荐用Windows PC来做家用文件服务器,因为有时候需要长时间稳定运行,因此需要同时考虑功耗,性能,噪音,散热,性价比等,在今天,2017年8月这个时间点,我推荐的硬件如下: [单纯的文件服务器], CPU, Intel celeron g1620/1630,或者 pentinum g2020t, 主板, Asus MSI Gigayte这三个牌子的H61 H67 H77等带集显的主板都可以, 内存 , 2条2G DDR3-1333 一共4g, 电源, 这非常重要,再强调一次, CPU 主板你可以买二手或者家里淘汰的,但是这个电源一定要买新的买好的,这关系到你的硬盘寿命,我们推荐 长城巨龙系列 航佳 磐石600S以上 或者台达服务器电源,但是全新正品台达服务器电源零售非常少见,因此还是推荐前两个. 硬盘, 建议购买一个SSD 60g-120g 硬盘用来安装操作系统 , 至于文件服务盘[资源盘], 建议不要超过3个,目前这个时间点, 推荐买WD 黑盘 或者西捷酷鱼 普通7200转 3TB硬盘,当然如果你愿意购买专用的企业硬盘或者NAS硬盘,那更好,但是普通家用毕竟要考虑成本,因此普通硬盘就可以.至于组不组RAID,看个人偏好吧,一般是不需要. 这样的一台文件服务器,在无负载的时候,功耗非常低,大约只有35W左右,就算加上硬盘,典型的同时有5个人同时看1080P电影,功耗也就在60瓦左右,比NAS [50瓦]高不了多少.

4 家用文件服务器操作系统的选择和调优:

  Linux或者Free BSD UNIX操作系统免费,但是即使是对有经验的IT人员来说,也不是太友好,何况对普通用户,因此家用可以直接忽略这两个平台.

  Windows server 操作系统,例如 windows server 2008 2012等,我们同样不建议普通用户使用,因为server操作系统配置需要技巧,驱动少,对普通的家用文件服务器来说,大才小用了.

  至于Windows xp vista 7 8 10各操作系统,我们强烈建议您采用 windows 7 64位操作系统,虽然win10是最新的操作系统,但是win10的系统太过"霸道",很多后台服务,无法象win7那样通过服务管理进行禁止,对系统的开销太大,下面我们以windows7 professional x64 sp1操作系统为例,关闭后台服务,来示范如何打造一个安全的操作系统.

  首先,请将win7 x64操作系统安装在您的家用服务器的SSD硬盘上,安装驱动并打上SP1补丁,然后请联网,安装最新的补丁,这可能会耗费您3个小时的时间;请记住,务必使用原版windows操作系统映像进行安装,切末使用各种Ghost版,因为非原装的windows系统可能被安装了后台木马软件,或者某些全家桶软件等.

  然后,请在控制面板里,打开 系统->高级系统设置->系统保护,关闭所有的磁盘还原功能,

  如果您不需要远程桌面之类的,请在 远程属性页面里 关闭远程功能;在高级属性页里,在启动和故障恢复里,写入调试信息,设置为无. 请插上网线,设置网络连接为家庭网络[如果您需要使用upnp],或者设置为工作网络.

  然后请在 开始菜单->附件->命令提示符, 使用鼠标右键, 在弹出的右键菜单里  以管理员身份运行, 打开命令行, 请输入 powercfg -h off , 如果没有任何错误,那么没有任何提示,直接到下一行命令等待,请输入 services.msc , 会弹出系统服务管理界面,也可以通过控制面板->管理工具->服务 来打开. 建议禁用我们标记出来的服务,特别是server 和 workstation服务,这两个后台服务是windows系统的漏洞之母,如果不需要使用samba,务必禁止这两个自动启动的服务.

在禁止这些后台服务后,通过 控制面板->网络和共享中心->更改适配器设置, 选择已经连接的网络适配器,点属性

 

如果要彻底点,可以把Microsoft网络客户端 和 Micorsoft 网络的文件和打印机共享 这两个协议给 卸载了, 就算不卸载,也务必把前面的钩去掉,可以这么说吧, Windows平台糟糕的安全性,好多漏洞是这两个东西传播的.切换到共享页面,把不需要的勾给去掉.

最后,如果您对windows的管理比较熟悉,可以用管理员权限打开命令行,请输入 gpedit.msc,通过本地组策略,来关闭一些用不到的功能. 命令行里输入 netstat -a, 查看系统默认打开的端口,如果发现 135/136/138/139/3389端口在经过上面的操作后,依然是打开状态,您可以在windows系统高级防火墙里,新建禁用项目,来关闭这些端口,经过这些操作后, 这个windows7系统,至少在系统层面,基本上达到了一个非常安全的级别,普通的漏洞已经无法影响这台电脑了.

5 服务器端XFile软件的安装和设置:

  在前面的win7 x64操作系统安装完成后,请在您的操作系统所在盘下,例如c盘下,单独建立一个文件夹,并命名为prog或者类似的目录,专门用来安装各种软件,单独建立一个目录的好处在于,可以很方便的打开目录,避免管理员权限导致的各种无法修改.

  请下载最新版本的XFile软件,在xfilesetup.exe上,用鼠标右键 以管理员身份运行 ,执行XFile的安装,

建议您修改默认的安装目录,注意,最好安装到独立文件夹,如下图:

然后一路下一步,完成安装工作.

安装完成后,在您的桌面会有两个小图标,请双击打开XFtpAdmin图标[会出现管理员权限提示,请按是]

这样将打开XFile文件服务管理程序,如下图:

请注意蓝色框标记出的部分,同时按下 ctrl alt c 3个键 [注意,如果您在后台同时运行qq等程序,可能出现冲突,建议您先临时关闭qq等软件,避免快捷键冲突],系统将自动以管理员权限打开3个核心的配置文件,当然您也可以在XFile安装目录下找到这3个文件,分别是set.ini, myaccount.ini,myshar.ini,

这3个文件都是UTF-8编码,必须使用管理员权限打开才能编辑修改[如果安装在系统程序目录下], 为了避免各种问题,我们建议您通过XFtpAdmin软件里同时按ctrl alt c 三个热键来打开修改.

XFile是服务器端的后台软件,我们目前没有专门开发图形界面的配置,而是采用直接打开的方式进行修改,后缀都是ini,首先详细解释一下每个项目的含义,注意,set.ini配置文件必须谨慎修改,小小的一个配置错误,可能导致各种问题.

[XSvrSet]

这一行不能修改,这是参数配置的参数[KEY]标记,一旦修改,后续的参数服务器程序将全部无法识别


Ipv6_Enable=0

服务器是否支IPV6协议,如果要支持IPV6,那么可以设置为1,默认0,由于目前的家用网络,特别是家用路由器,并不支持IPV6,因此请保持此参数为0


Ipv4_Enable=1

服务器是否支IPV4协议,目前我们能接触的网络基本全部是IPV4,因此请务必设置为1, 如果同时将IPV4 IPV6设置为0,则服务可能无法启动


File_HideSysRdly=1

是否在文件列表里隐藏系统和只读属性的文件,默认是1,也就是隐藏, 0 , 不隐藏,注意设置为0,可能导致系统文件夹临时文件等也被显示


Play_Enable=0

是否允许在服务器端播放影片,这是为将来的本地投影播放做的接口,需要管理员权限,默认是0,也就是关闭,目前请保持为0,为1,则是打开.


Upnp_Enable=0

是否打开网络端口的UPNP映射功能,默认是0,如果您只是在家里内网共享文件服务,请设置0,也就是关闭,非0则为打开,警告,非0,可能导致您的服务端口被映射到公网,导致安全问题.

Port_Service=21

Ftp服务端口,默认21,除非绝对必要,请不要修改这个数字,如果您修改为其他数字,那么可能您必须手动修改系统防火墙,以允许外部连接进入.


Port_DataBasic=0

Ftp数据连接的基础端口,一般默认为0就可以,服务器程序会自动选择一个端口用于数据连接,如果您的系统上安装了第三方防火墙[一般没必要], 那么请指定基础端口号.


Nettype_Ipv4=0

IPV4接收的连接类型,0 公网和内网全部接收 1只有内网  2公网 一般家用内部网络,建议设置为1, 这是最安全的类型,默认0, 则内外都可以连接


Nettype_Ipv6=0

IPV6接收的连接类型,0 公网和内网全部接收 1只有内网  2公网 一般家用内部网络,建议设置为1, 这是最安全的类型,默认0, 则内外都可以连接 注意,目前IPV6默认是关闭的,因此不会起作用


Timeout_Login=65

每个连接必须在指定时间内完成登录,这主要用于防止长连接攻击,默认是65,一般不需要修改,单位是秒.


Timeout_Noop=150

要求Ftp客户端在非下载或者列表时,每指定时间内必须发送一个NOOP指令,来告诉服务器端保持连接,一般是90到300之间,默认是150秒.


Timeout_Command=65

这个参数目前只是保持兼容性,默认65,单位秒,建议不要修改.


Code_Server=0

这是为我们自己的将来防攻击登录协议设置的,目前请务必保持为0


Log_Level=0

日志记录等级,如果您在使用中没有遇到任何问题,建议保持为0,不记录任何日志,设置为1到10,则根据数字不同,记录不同的日志,数字越大,记录的信息越详细,如果您在使用中遇到问题,例如遇到Android端播放器无法播放,您可以将这个数字设置为101,这样将详细记录播放失败等发生时服务器端得到的信息请求等,您将安装目录下 config目录下的wlog.txt xlog.txt两个文件提供给我们,我们就可以分析错误并尝试进行解决.


Account_Encode=0

XFtp服务器端的账户文件其实是支持加密保存的,但是因为目前我们没有做图形界面的配置软件,因此这里请设置为0,关闭加密账户,如果同时存在加密字段和明文字段,如果此参数非0,则优先读加密账户.


Code_Shake=0

由于标准FTP协议本身存在单向认证的问题,我们在设计XFile协议的时候,在标准FTP协议的基础上添加了简单的双向认证,这是服务器端的识别数字,64位,主要用来标记服务器确实是我们要连接的服务器,默认是0,目前不要修改,如果修改了这个数字,那么客户端的服务器ID数字同样必须进行修改. 这个参数与客户端的设置必须相同,如下图: 同样,在android移动端,服务器握手码也必须是相同数字.


Edit_Enable=1

用来决定是否允许在服务器端编辑修改文件,为将来版本保留,目前暂时无作用.


Upload_Enable=0

服务器是否支持上传删除等操作,如果您需要允许上传,请务必设置本参数非0,如果本参数是0,即使目录设置了允许上传,也会失败.


NetClose_Enable=0

是否允许远程关机,例如您可能在床上用手机看视频,然后睡觉前想关闭文件服务器,那么可以直接在手机端点关机功能,远程关闭文件服务器,如果该参数为0,则远程关机功能不起作用.


Gtpd_Disable=0

是否允许获取同一连接的临时授权密码,为安全考虑,建议保持0, 也就是允许,这样有最好的兼容性.


Ftpmd5_Disable=0

是否允许MD5口令加密登录,这是比明文安全的登录方式,建议保持0,也就是开放.


Timer_Shutdown=0

是否开启定时关机功能,也许您不希望家里的服务器一天24小时开机浪费能源,那么这个开关可以帮您设置在某些时段自动关机,如果为0,则没有定时关机功能,1为开启定时关机功能.


Timer_forceshutdown=0

当定时关机事件发生的时候,如果当时有连接,是否强制关机,否则只要有连接,就不会执行强制关机,一般建议设置为0,也就是不强制关机.


Transnoop_Disable=0

文件传输过程中,是否允许客户端发送NOOP指令,为0,则允许发送,非0为关闭.


Str_TimerHour=23,0,1,2,3,4,5,6,7

如果定时关机功能开启,那么可以在这里指定自动关机的时间段,24小时制,例如这里设置为,如果时间是  23点或者0点或者1到7点,那么服务器会自动关机.

Http_disable=0

是否关闭Http映射服务,为了兼容性考虑,我们建议您设置为0,否则手机端播放可能出现问题.


Http_speedlimit=0

Http协议流传输速度限制,单位是字节每秒数字太小,例如小于80000,则调整为不限速. 0=不限制速度,建议为0


Http_serviceport=8080

Http协议的默认服务端口,由于80端口默认可能被封闭,我们建议您使用8080端口替代,一般设置为80或者8080,其他数字,您需要自己在系统防火墙里进行设置.


Internethttp_Disable=0

如果您不希望来自外网的Http连接请求,那么可以在这里设置非0,来关闭他,如果您是在家里使用,我们强烈建议您设置为1,关闭Internet上的连接.

然后,切换到账户文件myaccount.ini,为了保持服务器端软件的整体安全可靠高效,账户文件没有引入数据库技术,而是在代码中采用硬代码的方式,直接限制最多有5个账户,分别是访客账户,小孩账户,临时账户,父母账户,管理员账户.

账户文件一共有5个用户,一目了然,这里详细解释每账户的组成,

用[ ]括起来的部分是每个账户的KEY,不能修改,您可以修改的是下面各行=符号的右边,以第一个User_guest 访客账户为例子,来进行说明,

Active_Mode=1   这表示该账户目前有效,如果把1修改成0,那么该账户无效,也就是用户无法使用访客账户登录到您的文件服务器.
Access_Level=0   这是该账户的浏览和下载权限,服务器端发布的不同目录有不同的权限,该数字越大,权限越高,只有当该数字大于等于服务器特定目录的下载权限时,该目录才会被该账户显示,并允许下载,否则将是不可见,并且无法下载的. 一般情况下,访客给予权限是最低的0.
Access_upload=0  该账户是否有上传和修改[删除]权限[0 没有权限, 1 或者2  有上传修改权限],该功能只能用于服务器端有上传权限的目录,并且该目录的权限应该小于等于用户的Access_Level ,除非必要,否则请设置为0,允许上传[删除]资源是个危险的功能,一旦误操作,可能导致各种严重问题,例如资源被删除.
Access_speedlimit=200000  该账户的下载限制速度,单位是字节每秒,如果该数字例如小于8000,那么等于不限制速度,默认为0,表示不限制速度,除了给访客账户,有必要限传输速度,其他账户我们建议您设置为0,也就是不限制速度.
User_Name=anonymous  代表用户名,该字段第一个字符不可以是$字符,例如,$anonymous,这样的是不被接受的,您可以改成任何您想要的用户名,例如 guest 或者用来忽悠人的adminuser等,例如 User_Name=guest 那么您的账户用户名就变成了guest,您必须在客户端和移动端修改用户名.最长为31个字符.
Pass_Word=12345678  代表该账户的口令,最长31个字符,建议用英文字母+阿拉伯数字,例如2018_ningbo 这样的.

其他几个账户,[User_temp],[User_child],[User_parent],[User_admin]里每项条目代表的意义类似,请自行修改.

打开myshare.ini文件,配置我们要发布的资源,如下图:

和账户文件类似,也是一个纯UTF-8编码的文本文件,每一行代表一个发布的目录,格式:

下载权限:上传权限*映射名*映射目录

例如: 0:0*book*d:\book\ 表示 下载权限是0,也就是,我们设置的账户里,Access_Level=只要大于等于0,那么就可以看到该目录,并可以下载或观看该目录下的文件. 冒号后的那个0,代表该目录拒绝上传修改,也就是目录是只读的. 前一个book,代表映射的虚拟目录名是book,也就是呈现在客户端上会 显示一个叫book的目录, 而最后的d:\book\,代表的是该目录的实际位置.

下载权限,一般我们建议设置为0到100,这是和账户的Access_Level对应的,上传权限,为0,则该目录不允许上传修改,为1,则可以上传,但是不可以删除修改等,为2,则可以上传和删除,特别注意,如果设置为-1或者-2,那么这个目录只能被用于上传,而无法下载,但是可以被现实,也就是个只能用于上传的目录.

例如:10:2*lx*d:\lenovo\ 这个代表可以下载,权限是10或者以上[Access_Level], 2代表允许上传和修改,注意,这个上传的前提,是该账户的Access_Level必须是10或者以上,否则无法看到目录的.映射的目录名是lx,实际目录是d:\lenovo\

在完成三个配置文件的修改后,我们运行服务核心管理程序XFtpAdmin,如下图:

红线标出的是服务器地址和端口,您需要将这些记录,并提供给客户端.我们强烈建议您在家用路由器里,将这台电脑的IP地址进行静态绑定,这样可以长期固定一个IP地址,而不需要进行频繁的更换,方便使用.请点击服务 菜单, 在您完成设置后,必须使用服务菜单完成服务安装,

点安装菜单后,会弹出一个菜单让您选择,如下

意思是,是否将服务安装成后台随windows启动而自动启动的服务,如果您要长期运行,请务必选择是(Y),如果您选择否(N),则每次运行您必须手动启动这个服务,如果选错了,你可以通过卸载服务后,重新安装,选择新的启动模式.

 

6 手机 平板和电脑端客户端软件的安装和设置

  电脑端,目前我们可以支持的操作系统是: windows xp sp3 [不推荐], windows visat [不推荐] , windows 7 , windows 8 , windows 10 , 32位或者 64位都可以, 此外windows server 也支持,但是由于server系统是为后台服务优化的,因此不建议当客户端平台使用.

  windows平台的安装比较简单,下载我们的安装文件,选择只安装客户端,一路确认就可以完成,双击桌面图标XFHome,就可以打开客户端,如下图:

请注意输入服务器地址,用户名,口令,在使用前,请先使用系统菜单,进入配置,如下图:

如果您无法确定您电脑上安装的第三方播放软件是否支持FTP流播放,那么请在 优先启用http流前打钩,XFile可以自动将FTP文件映射到http资源流, 另外可以钩选使用加盐md5口令外部连接,这样即使客户端退出,播放软件不会立即中断.

这里我们推荐在windows平台使用VLC和mplayer播放器,这两个开源播放器,对流支持比较好,真正的在线播放模式,而不是韩国人写的播放器,要先下载通过本地磁盘缓冲进行播放.注意服务器端握手数字,如果您修改了服务器端的数字,那么这里也要进行修改.

完成最简单的设置后,就可以使用客户端进行浏览和播放了,注意,我们提供的客户端没有下载功能,如果您需要对文件进行下载上传操作,建议您使用第三方支持UTF-8的客户端,这里推荐免费开源的FTP客户端,File zilla client,如下图:

如果您手边没有FTP客户端软件,或者不想安装,那么也可以使用浏览器直接打开,例如FireFox,如下图:

在浏览器地址栏里输入ftp:服务器地址:端口,例如我们的 ftp:192.168.3.5:21,会弹出请求输入账户对话框,

输入正确的账号和密码后,就可以登录到服务器,如下图:

移动端,需要安装我们提供的xftp app [目前只有android 平台, 用苹果ios的就比较抱歉了,需要您自己找第三方软件了], 如果有兼容的第三方FTP客户端或者流播放器,也可以使用,但是我们建议您使用我们提供的app,因为我们的app可以支持服务器端的FTP资源自动映射到Http服务,其他第三方软件是做不到的,而Http流具有更好的兼容性.另外还支持加密调用,就算第三方播放器会上传密码口令,也不用害怕,因为调用的时候给出的是动态密码. 您可以在电脑端的安装目录下的android子目录进行拷贝安装,或者直接从我们网站下载.

安装完成后,您的手机桌面会多出一个XFTP图标,如下图:

这就是我们的配套的android 平台的app,打开这个app,如下

和pc版本类似,需要填写您服务器的地址,端口,用户名,口令,以及握手码,注意,目前手机端不支持IPV6,都是ipv4,如果您不能确定您手机安装的播放器是否支持FTP流播放,那么请在启用http转换前打钩,这样会自动将FTP流转换成HTTP流连接,在移动平台有最好的兼容性.点登录后,如果成功,将连接到XFile服务器,特别要注意的是,如果在关闭服务器前打钩,如果是管理员身份登录,那么将远程关闭XFile服务器,并直接返回:

用手指点一个目录,可以进入该目录,如果是文件,那么将调用您手机播放器进行播放.点 根目录按钮,可以直接切换到根目录,模式切换,按一次,则进入连接获取模式[下载模式],再按一次,则恢复为播放模式,断开按钮则中断到服务器的连接. 这里提醒一下,播放或者点选文件必须在2分钟左右的时间内完成,由于android平台的设计特殊性,没有开启后台反空闲,因此如果大约在XFile 服务器设置的noop超时时间段内没有完成操作,连接会中断,需要重新连接,这不是bug,而且移动平台为节省开销必须付出的代价. 目前经过测试,http模式可以兼容大部分移动平台播放器,但是VLC 例外,这不是我们的Bug,而是VLC for android播放器自身的bug,从1.x到目前的2.0.6都存在问题,该bug已经被提交,但是一直没有人去修复.

移动端的播放器我们推荐使用从开源软件mplayer分支出来的mpv player [ www.mpv.io ],这是我们测试过的一款真正的流播放器,android 5.0以上平台运行流畅,没有后门广告之类的东西.

 

7 日常维护

如果您的XFile文件服务器是24小时连续开机,不远程关机或者重新启动,那么我们建议您每2个月重新启动一次XFile文件服务器,注意是windows系统重新启动,因为操作系统长时间运行,会产生内存碎片等各种影响性能的变化,因此建议定期重新启动. 此外,请及时备份您的硬盘数据,24小时开机的服务器上的硬盘,压力还是很大的.

8 常见问题和解决方法

请点这里

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
(c) 2011-2017 phoenixp2p.com