XFile

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

XFileC新桌面客户端使用

从2023.01.01版本开始,旧的桌面客户端程序XFHome被移除,全新的全功能桌面客户端XFileC被添加为正式的配套 桌面客户端.

1 家用文件服务器的用途

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

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

4 Windows平台优化部署

5 Linux平台的安装部署

5 服务器端XFile软件的 参数设置

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

7 电脑端客户端的使用

8 常见问题和解决方法

 

 

Windows电脑端,目前我们可以支持的操作系统是:  windows 7 , windows 8 , windows 10 , 此外windows server 也支持,但是由于server系统是为后台服务优化的,因此不建议当客户端平台使用. Linux桌面目前已经完成移植和基本测试,确认支持开放麒麟1.0 ubuntu20.04 debian 12等,操作上基本和windows版本一致.

请注意: 如果您需要在windows server 操作系统上使用客户端XFileC,可能在部分精简版本的windows server 默认没有安装 windows 优质Windows音频视频体验,导致qwave.dll缺失的提示,您需要在windows server系统里 的服务 添加里加入这个服务,重启后就可以解决,如果单纯使用服务器端,则没有这个要求.

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

Linux平台,则请根据不同的发行版本和桌面,目前测试的环境包含debian ubuntu 开放麒麟等,选择不同的安装版本 [未提供公开下载],目前提供的是.deb文件,请将该文件复制到您的linux电脑上,然后打开命令行,执行: sudo dpkg -i debxfilec.deb 如果安装成功,您的linux桌面上会出现XFilec图标,默认的安装位置是 /usr/tmp1/Xfilec,同时包含一个Xshellexec可执行的子程序, 其余操作同windows版本,但是请注意,linux下的播放器程序需要人肉单独设置,目前的安装程序不会自动扫描系统已经安装的播放器程序,建议安装vlc 或者 mpv.
 

新版本的XFileC客户端,在界面部分采用的是wxWidgets第三方库,因为这个库开源,并且跨平台支持c++,最关键的是它是原生的界面,而且允许静态连接,在性能和兼容性上比较平衡,而且我也看了wxWidgets库的实现,即使有一天,我们被脱钩了,我们也还是有基本的能力对已经开源的部分进行基本的维护和Bug修复,而且这只是个界面库,基本不会影响到安全,因此我们选择了wx.

此外,我们还考虑过Qt,但是它的授权协议太复杂,我们并非开源软件,不允许静态连接,此外还有一堆的限制,因此放弃,此外我们还曾经考虑过Electron,但是它完全是基于浏览器(直接塞了个浏览器)来实现的,各种依赖非常复杂,安全问题很难解决,更新速度太快了,如果某一天被脱钩,我没有能力进行维护和修复,而且这种塞浏览器做界面的实现,对硬件的开销非常大,远不如wx的原生实现.

除了wx做界面,还用到了OpenSSL来实现tls/ssl加密连接,除此以外我们没有使用第三方库,大量的代码来自XFile服务器端.

如果您在此之前已经在使用XFile旧客户端,那么程序会自动迁移之前您的设置,无论如何,在您第一次使用前,我们都强烈建议您, 点左上角的 系统菜单 , 选择第一个菜单 设置 , 进行新客户端使用前的初步设置,这非常重要!!!

固定端口连接:  除非您有绝对必要的理由,否则无论如何,建议你 勾选 固定端口连接 , 固定端口连接只使用一个固定的数据服务端口,对防火墙更友好,并且对连接执行了额外的检查和保护,在安全性上远远超过了标准FTP协议中的主动和被动连接,不容易被攻击和劫持,总之,无脑勾选就可以了.

Http额外加密:一般没有必要勾选,它的作用是给映射添加一个额外的字段,除非有人监听了你的TCP数据连接,否则没必要开启.

名称排序不考虑长度: 新版本XFileC提供了两种文件名排序方法,一种是文件名长度优先排序,一种是不考虑文件名长度的排序,这里的设置是让你选择默认是否采用长度名,不过这个不重要,因为你只需要在文件名列表上点击一下,就自动变成了另一种排序.

固定端口协议返回值检测: 一般不建议勾选,除非你确定有人在监听并尝试拦截您的TCP数据.

禁用TLS重新协商机制: 强烈建议勾选,这是个TLS协议里引入的一个无脑的扩展检测,以为定时重新协商一下就可以避免长时间连接被破解,但是在实际使用,除了带来不必要的麻烦,并没有发现带来好处.

不包含系统和隐藏文件: 强烈建议勾选,否则万一你尝试读写系统文件,我真不知道可能发生什么后果.

默认播放程序: 建议的播放器程序是 VLC MPV,或者hpc-mc ,这几个播放器程序经过我们的测试,兼容性和解码能力都是很好,而且免费开源的绿色软件

默认图片查看程序: 除非您有特殊要求,否则不需要设置,我们已经在程序里实现了一个图片查看功能.

默认PDF查看程序: 您可以选择合适的支持http 流在线打开的PDF程序,我们推荐使用开缘的浏览器程序 Firefox,如果是win10/11,没有安装其他浏览器,也可以填写 msedge.exe ,这是win10/11自带的EDGE浏览器的可执行程序名.

自定义打开程序: 建议您设置为浏览器,这样您可以在线直接打开不少类型的文件,例如txt html等,进行在线浏览阅读, 我们推荐的浏览器是 Firefox  , 如果您没有安装第三方浏览器,windows10 /11 下,请填写 msedge.exe , 这是windows自带的浏览器,当然如果您安装了其他浏览器,也可以填写其他浏览器的可执行程序,注意部分绿色安装的浏览器,您可以需要填写包含完整目录的可执行程序,如果是linux桌面环境下,请填写firefox,或者您的操作系统集成的浏览器可执行程序名,或者包含路径的可执行程序名. 这里的设置非常重要,如果您不设置浏览器,那么很多类型的文件将无法在线阅览.

通用程序参数: 也就是系统调用外部程序打开指定的http映射时传递的参数, 默认 "?Filename?" , 这是个特殊字符串,会自动替换成目标http连接,绝大部分情况下不需要改动,也强烈建议不要改动.

字幕播放参数: 默认为空,建议保持为空.

聚合传输校验: 是否启用聚合传输中的CRC数据完整性和一致性检测,tcp本身就是可靠传输,但是它是可以在传输过程中被篡改,同时也有非常小的概率出现错误而没有被发现[相同的校验码] ,聚合传输协议提供了一个额外的数据crc校验和反篡改机制,可以在协议层额外添加一套检测机制,如果有需要可以开启,但是这个是通过cpu进行的计算,会影响cpu占用和和增加传输延迟.


握手码: 如果设置为0,则不检测握手码,否则请保持和XFile服务器软件的设置相同,否则将导致登录失败.

网络唤醒广播ip地址,就是你内网的广播地址,如果你的服务器没有休眠或者睡眠等支持,是不需要设置这个参数的,以为结尾是255,例如192.168.1.255.

网络唤醒Mac地址:就是你服务器网卡的Mac地址,如果你的服务器没有休眠或者睡眠等支持,是不需要设置这个参数的,

连接超时: 就是连接服务器的超时时间,建议45-60秒,不建议修改.

指令超时: 发送一个指令给服务器,服务器如果没有在设置的时间内响应,就中断连接,默认60秒,参数数字 45-120, 一般不需要修改.

使用大图标:将使用大图标代替默认的16*16小图标,同时列表框行列距离会同步变大,注意,这个功能需要关闭客户端,然后重新运行后升效,除非特殊场合例如大屏幕点播,否则不建议勾选.

关键指令保护: 如果您的服务器程序启用了关键指令保护功能,那么您必须勾选这个选择,否则会出现登录成功,但是上下传和在线播放等功能全部失败的问题,这个功能是用来防范可能存在的openssl中,被恶意放置恶意代码,或者干脆绕过登录认证等类似xz压缩库上出现的维护者攻击,大部分场合不需要勾选.

启用qos: 这个功能需要windows的高级音频和视频流服务配合才能实现 , 当前不建议启用,否则可能导致在您中断连接的时候出现一定的延迟影响体验.   [qwave.dll , 注意windows server部分操作系统可能没有默认安装这个服务,您需要在服务管理中安装这个服务 ,否则无法运行Xfilec]

文件时间同步: 注意,这是个非常重要的设置,如果勾选,则无论上传或者下载或者同步,在双方文件大小相同,并且最后修改时间相同的情况才会被认定是相同文件;  如果不勾选,则只检测文件长度,只要双方文件大小相同,就判定是同一个文件.   无论是上传还是下载或者同步,如果双方文件相同 就会跳过该文件, 而这个选择项 就是关键的参数,是否要文件最后修改时间完全相同.


下面的部分是XFile特有的E-mail ipv6 dns参数设置

启用Email地址邮件服务器地址自动解析: 这个选择确定是否允许启用E-mail  ipv6 地址解析功能.

邮件服务器地址优先选择ipv6: 这个是针对邮箱服务器的,目前这个时间段,强烈建议不要勾选,因为当前国内大部分邮箱服务器是ipv4的.

邮件服务器需要TLS/SSL加密: 也就是POP3S和POP3的区别,目前绝大部分邮箱都是要求TLS/SSL的,因此默认勾选.

自动删除旧的dns邮件[建议勾选]: 建议勾选,这样会自动删除旧的dns邮件.

邮箱登录用户名: 是你的POP3/POP3S邮箱登录用户名

邮箱登录口令:是你的POP3/POP3S邮箱登录口令,注意,有些服务器可能会要求你使用授权码而不是登录口令.

邮箱服务器地址:类似 POP3.xxxxx.com 之类的,注意是POP3/POP3S服务器地址.

邮箱服务器端口:注意是POP3/POP3S服务的端口,常见的是995,985,965之类的

邮件主题:这非常重要,这是用来判断一个邮件是否是dns邮件的关键参数之一,请保持和服务器完全相同的设置,只能是英文和数字以及标准符号,不可以使用中文等,建议如 ZhangShan_EDns: 或者 WangWu_XFile_ 或者LiuSir_XFile= 等

防攻击加密口令:请保持和服务器完全相同的设置,它是用来防止各种伪造dns邮件攻击的.

最多检测邮件数量: 默认30,建议数字 20-60,根据需要进行调整吧.

 

在上面的设置完成后,请点 确定 按钮保存参数文件.

服务器地址: 就是填写你的XFile服务器地址

端口: 就是Ftp服务端口,默认21

用户名: 就是你的登录用户名

用户口令:就是你的登录口令

启用TLS/SSL:是否使用加密连接,如果是在内部网络使用,不要勾选这个项目,除了带来额外的消耗,没有什么作用,记住,XFile登录协议已经做了额外的安全加密,不依赖它的保护.

进入备份模式:如果您要上传文件或者删除服务器文件或者删除服务器目录等操作,那么请勾选本项,普通模式下只能点播和下载,请确保,XFile服务器设置中,已经为您的账户开通了备份目录,否则备份模式登录将失败.

启用电子邮件DNS:尝试从电子邮件或者服务器ipv6地址,并执行登录

网络唤醒服务器: 如果您在登录前,服务器处于休眠或者睡眠状态,并且支持网络唤醒,那么勾选本项目,会尝试先唤醒服务器.

反向验证码: 普通的用户名/口令只是保证了服务器认证用户,而反向验证码,则是用户验证服务器,有点类似双因素认证,但是更方便.

然后按 连接服务器,就可以登录到服务器


整体的界面布局,我们是参考FileZilla Client做的,但是为了保持干净,没有看它的代码,但是在界面布局上,为了让用户更方便上手,我们是参考了它.

左边是本地目录列表 , 右边是远程目录列表

左边的下面是任务列表,分为等待执行,执行成功和执行失败,右边是后台工作线程列表.

最下面的是信息框列表,最最下面的是状态栏,会显示当前的大概传输速度,右边的是点播文件列表,并包含一个可动态切换的单线程选择框,当你勾选单线程模式后,将只使用一个后台线程执行您的上下传等任务,如果不勾选,则使用双线程执行任务.

本地目录和远程目录列表,分别由 编号 名称 类型 长度 最后修改时间 等组成,允许你对每一个列进行排序,其中文件名支持两种排序[点击后自动切换到另一种]

目前版本暂时不支持拖拽操作,后续版本会添加支持.


详细功能介绍:

在普通模式下[非备份模式],登录到服务器后,是无法执行上传删除等危险操作的,您可以播放或者在线浏览文件等,也可以执行下载, 第一个特殊目录 .. 下按鼠标右键,特殊菜单会激活.

如果勾选 进入备份模式,那么登录到服务器后,可以执行上传 删除等带有危险性的操作.

根目录: 可以切换到根目录

刷新目录: 可以立即刷新当前目录列表内容

在线播放,等同于您双击媒体文件

默认下载, 如果您选择了单个文件,则执行标准FTP下载,如果选择了多个文件,则多个文件会合并成一个聚合下载任务,如果您选择了目录,则每个目录是一个聚合下载任务.

同步下载,注意只对目录有效,和默认下载的区别是,默认下载不会删除本地内容,而同步下载,则会删除本地存在而远程目录下不存在的内容,因此比较危险,如果您搞不清楚是什么情况,那么一律使用默认下载就可以了.

自定义打开: 您可以对选择的其他文件使用您自己设置的程序进行打开,如果您已经设置了自定义程序的话.

分享连接: 这个功能暂时没有开放

重命名: 这个菜单只在备份模式下可用,用于改名

删除项目: 这个菜单只在备份模式下可用,删除您选择的文件和目录,比较危险

设置用户推荐: 所有用户非备份模式下都可使用这个菜单,推荐一个文件给其他用户,注意,这个功能是所有用户共享的,新的共享会覆盖前一个推荐设置. 注意,这个推荐不会保存到磁盘,也就是服务器重启就消失了,下面的管理员推荐同样是不保存的.

获取用户推荐: 如果之前有用户设置了推荐文件,那么其他用户可以通过这个菜单,快速切换到用户推荐的目录和文件,但是前提是,这个用户的下载权限要大于等于设置的文件的权限.

清除用户推荐:清除掉当前设置的用户推荐.

批量改名: 这个菜单只在备份模式下可用,这是一个比较有用的功能,但是不能在根目录下执行,只能在具体的子目录下执行,我们下载的文件经常有类似 [www.xxxxx.com电影xxx]某某电影_1080p.mkv这样的,其中[www.xxxxx.com电影xxx]是那些下载站添加的垃圾字符串,很烦人,批量改名的作用就是在当前目录下,包括子目录,对所有文件名或者目录名中包含有您指定字符串,比如 [www.xxxxx.com电影xxx],给清理掉, 这样就自动变成了 某某电影_1080p.mkv,这样就干净多了.

反空闲:其实就是发送一个noop指令给服务器,这个不需要手动执行,后台定时器会定时自动执行.

远程搜索:暂时没有实现

本地搜索: 如果当前远程目录列表的文件非常多,这个菜单会被激活,您可以输入您要查找的字符串尝试快速定位.

播放(字幕) : 如果您选择的视频文件,同一目录下存在独立的字幕文件,那么可以尝试使用本菜单,执行加载独立字幕文件的播放

创建目录: 这个菜单只在备份模式下可用,在远程服务器上创建目录

获取留言和发送留言: 服务器提供的内部留言板,允许留言

网络测速: 注意,这个测速是不带Qos操作的网络测速,受windows10默认的保留带宽限制,默认只能使用80%带宽,当测速开始后会立即返回,请什么都不要操作等待60秒-80秒,等待测速完成,速度会显示在信息列表框内.

远程操作*: 这个菜单只在备份模式下可用

远程复制和远程粘贴:比如,您要将服务器上位于/abc/file1.jpg文件,复制到/cde/目录下,那么您可以先在/abc/file1.jpg上使用远程复制菜单,然后将目录变更到/cde目录下,使用右键菜单,选中远程粘贴功能,XFile服务器会使用后台守护功能,将/abc/file1.jpg复制到/cde/file1.jpg,这两个功能是对应的. 注意,这个操作有延迟,服务器返回只是答复收到指令,会执行,但是何时执行由服务器的忙碌程度决定,正常情况下稍微等待一点时间就可以完成,然后你刷新目录就可以看到新的文件了, 这个功能在您需要分享类似照片等文件给其他人[其他目录]时会非常有用.

推送文件[复制] 推送文件[剪切] 删除推送,这几个菜单只是为了兼容之前版本,由于新版本已经支持远程复制和远程粘贴,因此不要再使用这些菜单了

专业工具*:

文件散列:如果服务器端启用了远程散列功能,那么可以使用这个菜单获取远程文件的sha256值,这在关键文件的保存或者下载后进行对比是非常有效的,但是这个操作将大量消耗服务器端的cpu资源,请慎重使用. 

一键备份:这个菜单在备份模式下可用,会自动将windows系统目录文挡 图片 视频等一次性远程备份到服务器端当前目录下 (linux下则是由配置文件指定),注意,不包含子目录.

运行状态:这个会在下面的信息栏,显示当前程序的内部运行信息,一般用来排除错误.

目录检测:这个菜单用来判断远程的当前虚拟目录是否依然存在.

保存状态:可以将当前目录以及选择的文件远程保存到服务器的账户下,注意,如果服务器重启这些信息会被清除

导入状态:可以快速恢复该账户最后保存的状态,包括立即切换到保存的目录并显示最后选择的文件

设置管理员推荐: 管理员账户可以在非备份模式下,如果要给其他用户分享某个文件,可以在该文件上点这个菜单,分享它

获取管理员推荐:如果管理员设置了推荐文件,其他用户可以通过这个菜单,快速获取并定位到管理员分享的文件,前提是该用户拥有该文件的下载权限,否则会失败.

清除管理员推荐:清除掉之前设置的推荐文件

管理员工具*: 这些工具只有管理员才可以使用

服务状态: 可以获取XFile服务器目前的运行状态,会显示在信息列表框内

重发邮件: 指令XFile服务器,立即重新发送IPV6地址邮件,用于e-mail dns.

提前备份:等同于手机端的服务器备份,这个指令可以通知服务器,提前执行服务器的后台备份功能,该指令当且仅当服务器启用了后台定时备份功能才有效,一般会在10分钟左右启动备份功能,不是立即启动.

清空长映射: 这个指令将清除所有您使用分享功能生成的分享连接.

生成映像: 立即抓取当前服务器的运行状态和参数,并保存在服务器上,当您怀疑服务器被人非法访问时,这个映像文件可以协助您进行分析.

在线用户 登录记录 可疑IP IP记录 账户记录 , 这几个菜单和它们的名称对应,会显示在信息列表框中.

清空推送: 如果您设置了推送目录,那么本菜单将删除推送目录下的所有文件.

清空日志: 这个菜单将远程清除日志

性能测试: 这会导致大量消耗服务器的CPU资源,它采用计算固定参数的大量散列的方式,统计计算时间,来分析cpu性能,当且仅当您需要比较不同平台的处理器性能的时候,才需要执行以供对比,这个功能会花费很长的时间,例如树莓派4,可能会需要几分钟,请耐心等待,结果会给出在信息列表框中.

重启服务器: 请注意,这个功能应该在备份模式下执行, 非常危险,会导致服务器重新热启动.

关闭服务器: 请注意,这个功能应该在备份模式下执行, 非常危险,会导致服务器关机.

单线程模式: 勾选这个项目,则程序将使用单线程的方式执行上传和下载任务,如果不勾选,则使用双线程方式执行,在服务器和本地磁盘都是机械盘的时候,勾选单线程模式,一般情况下效率会高过多线程.


本地目录:

为了上传或者下载,您应该选择一个本地目录.

默认上传: 该菜单只在备份模式下激活,和默认下载对应,如果是单个文件,则使用标准FTP上传,如果是多个文件,则将多个文件聚合,使用聚合传输协议上传,如果是目录,则使用聚合传输执行目录上传操作.

同步上传: 该菜单只在备份模式下激活,并只对目录有效,该操作存在风险,和默认上传不同的是,该上传会删除远程服务器上存在而本地目录不存在的内容,例如本地目录下不存在 file1.dat,而远程目录下存在file1.dat,那么会删除远程目录下多余的file1.dat文件,如果您搞不清楚什么是同步上传,直接用默认上传就是了.

刷新列表: 注意,本地目录在下载任务执行完成后,不会自动刷新目录,您需要受东刷新

创建目录:您可以创建一个本地目录

重命名,您可以对本地目录或者文件改名

删除: 您可以删除本地目录或者/和文件

清空信息: 将清除信息列表框内的信息


任务菜单

打开目录,当前版本没有实现,请等后续版本

删除任务,您可以删除选定的任务,注意,正在下载的任务是无法删除的,您应该先到任务线程中,找到该任务对应的线程,结束掉该任务.

重启任务: 您可以在执行失败的任务列表里,选择要重新执行的任务并重启任务

后台启动:发送一个新任务消息给后台工作线程,正常情况下不需要操作,除非出现了bug

刷新列表: 刷新当前的任务列表

特别注意: 序号部分 的组成是 编号 : 任务编号 , 任务编号是匹配任务的唯一数字,您可以根据任务线程序号中是否存在相同编号,来确定该任务是被哪个后台线程执行中.


'

任务线程,XFile客户端默认限制的后台工作线程数量是2,是固定的,因为在我们的测试中,由于我们支持聚合传输,因此一个后台线程平均可以实现87%的带宽利用,而两个后台线程可以实现平均95%以上的带宽利用,三个后台线程可以实现平均97%以上的带宽利用,经过权衡,我将后台工作线程的数量设置在2,毕竟这是家用为主.

任务列表的序号包含 线程编号 : 任务编号 ,其中任务编号和任务列表里对应的任务编号是对应的,您可以根据这个编号来查找任务执行的线程.

取消等待: 这个真正的作用是,如果后台线程出现了登录失败,会自动暂停并等待1到3分钟后才重新运行,使用这个菜单可以提前让后台线程启动,在常规使用中,您是用不到这个菜单的,也不要去使用.

结束任务: 可以结束当前正在执行的任务

刷新列表: 可以强制刷新当前的后台线程列表

 


状态栏: 显示的是当前的传输速度 以及下载和上传字节数量,这个速度是按秒计算的,但是可能因为定时器消息被阻塞延迟,而出现计算偏差,但是可以用来参考.

快捷键 (3.58或者更新的版本) :

              ctrl alt P : 发送一个消息给后台工作线程,这在由单线程模式切换到双线程模式的时候,可以立即唤醒后台等待线程

              ctrl alt I: 打印程序内部调试信息

              ctrl  方向左键: 缩小字体 [仅linux下有效]

              ctrl  方向右键: 放大字体 [仅linux下有效]

              ctrl  alt D: 打开或者关闭调试模式

              ctrl  alt G: 导入配置文件

              ctrl  alt U: 导出配置文件[手机客户端可以通过这个文件自动导入配置参数]

              ctrl  alt L: windows下打开用户目录

图片浏览界面:

              ctrl alt q : 关闭图片对话框             

 

 

 

 

 

 

 

 

 

 

                                      

                      

                      

 

 

      

      

 

     

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
(c) 2015-2024 phoenixp2p.com