XFile软件的基础内容

 

[1] XFile是这针对个人家庭用户和小型办公室而设计的[建议不超过28人每服务器] ,而不是为了面对大量用户而设计,以高响应速度,高效率低资源需求为目标,因此,它不适合被用于大规模发布或者服务,这一点要牢记!

[2]XFile并不是一个纯粹的标准FTP类软件,其实XFile支持了FTP协议中安全,登录,列表,文件传输等主要指令,但是它同时并不支持FTP协议规定的许多特殊的 指令,例如块定义等等,因为这些指令在绝大部分场合下根本不会被用到,使用场合非常罕见,因此,如果您需要一个完整支持标准FTP的服务器端或者客户端,建议您去使用第三方标准FTP客户端类似File Zilla Client等; XFile实际上支持了标准FTP指令集中的主要常见指令,然后,我们针对FTP协议中存在的各种效率不够或者不安全的因素,使用我们自己的指令集进行替代,使用二次加盐去位散列[动态盐+静态盐]代替了FTP协议中的明文口令,使用热监听的固定数据端口代替了标准FTP中的动态端口,使用聚合传输和可选校验,代替了标准FTP中每一个文件需要一次连接的低效率,使用http [https]流代替了ftp数据流来优化在线播放等等. 所以,你可以把XFile当成Ftp来使用,但是它真的不是一个FTP.

[3]访问FTP安全性问题: Ftp命令行,包括Linux端的命令行,目前我们测试到的各种命令行FTP,都是不支持SSL加密的,走的是标准FTP的明文PASS指令登录,这在内网可以认为是安全的,但是如果是公网,这个就比较危险了,如果您使用的是类似网吧或者连接的第三方wifi例如宾馆的免费wifi,你的账户会泄漏,非常危险,除非紧急情况,否则绝对不要在这种场合使用,我特意在新服务器版本2025.05.01版本中,将temp临时账户改成了特殊可动态开启或者关闭,就是针对这种情况的应急. 例如,某天忽然上级要求你远程立即下载个文件到你的电脑上完成处理,而你没有条件安装我们的专用客户端XFileC,甚至没有手机端XFileA,能且只能在不安全场合临时用命令行FTP远程下载,正确的做法是先通知管理员启用temp临时账户,然后立即用临时账户登录远程XFile服务器完成下载,下载完成后通知管理员关闭temp账户.这是紧急情况下的操作,但是它也不是安全的. 包括你使用windows资源管理器直接打开XFile服务器,请注意,windows资源管理器是根本不支持SSL加密的,因此只适合在安全的内网进行操作,千万不要到公网上进行远程操作. 其次是使用第三方标准FTP客户端,类似FileZilla Client等,这些客户端普遍都是支持SSL加密登录的,而且默认会将传输也使用SSL传输,因此在证书安全的前提下,它是安全的.  XFile客户端采用的是加盐去位二次散列,因此无论有没有TLS/SSL加密,你的登录都是安全的,你可以通过设置握手码和反向验证码,来执行反蜜罐服务器操作,确保你连接的服务器就是真正的服务器,这个原理其实和ssh的证书登录方式有点类似,双向认证,但是我认为XFile的登录设计更适合大部分人上手,比较直白简单.

[4]第三方FTP客户端,因为历史的原因,常常会默认采用ASCII码的方式传输大部分文件,这将导致回车字符被转换,进而引发文件错误,这个错误非常常见,因此,如果您使用第三方FTP客户端传输文件,一定要强制文件传输一律为二进制,命令行ftp一般是输入binary指令,来进入二进制传输,而第三方客户端一般在设置里,需要您找到传输模式,选择为一律二进制,保存设置后完成. 其实ASCII文字传输方式早就淘汰了,根本不适合现代环境,但是因为历史遗留和英文的影响,保持为默认的习惯被一直传递到了现在.

[5]你在XFile服务器上,部署类似bt下载这样的软件,这非常危险,因为XFile服务器是通过特有的Email dns来保证服务器地址不泄漏的,服务器ipv6地址的隐蔽安全是所有各种安全手段里的第一位,而一旦你使用bt类在服务器上进行下载操作,由于p2p的特性,服务器的ipv6地址会被大量的点得到,这里面会有很多peer,部署了各种脚本,一旦得到对方的ipv6地址,就会扫描你的服务器获取开放的端口,部分脚本甚至可以进行端口协议分析,然后针对性的进行密码爆破. 总之,这是个危险的操作,服务器尽量不要用各种客户端,哪怕你只是开个网页查个资料,也应该尽量少用,更不用说部署这种p2p类软件的,这非常危险. 而如果单纯的使用我们的Email dns模式,由于获取服务器ipv6地址能且只能通过电子邮箱来收取,而电子邮箱的密码通常只有管理员等有限人掌握,等于给获取服务器ipv6地址加了一把锁,只有掌握邮箱密码的人才能知道服务器ipv6地址,这个安全性是远超ddns的,更关键的是它合规.

[6]XFile是区分普通模式和备份模式的,在普通模式下,您能且只能浏览在线播放下载等有限制操作,是无法对目标进行任何写操作类似上传删除改名创建等,是安全的分享;而在备份模式下,您则拥有所在目录的所有读写权限,包括备份和删除等操作,这个操作有一定危险性. 第三方FTP客户端等要以备份模式登录到XFile服务器,是在用户名后面添加.back,例如,您之前的登陆用户明abc,密码是123456,那么要以备份模式登录,您的用户名变成了abc.back ,密码依然是123456,这时候您登录上去才是备份模式.特别注意的是,每个账户能且只能指定一个备份目录,您必须事先XFileAdmin管理程序的账户里[myaccount.ini],为该账户指定了一个备份目录,该账户的备份模式才可用,否则还是无法登录. (所有XFile客户端都设计有单独选择备份模式,只需要打勾就可以,不需要修改用户名)

[7]XFile一个账户只能指定一个目录,那么我要管理多个磁盘如何操作,我们推荐您将磁盘分区挂载到空目录的方法来实现,(在linux下,您可以通过修改/etc/fstab的方式来进行) 而在windows下,很多朋友可能并没有掌握,建议看一下 磁盘映射到目录的方法

[8]特别注意,有个别用户为了方便,直接将账户里的备份目录给指定成磁盘或者映射磁盘的根目录的,或者服务器设置里自动备份的设置也是如此偷懒,这是很不好的习惯,如果你的磁盘不发生掉盘之类的严重故障当然一切没问题,但是万一你的指定磁盘发生了掉盘或者故障,会发生什么?对了,因为你映射的目录是个真实存在的空目录,当掉盘发生后,后续的写会被直接写到映射目录下面而不是你映射的磁盘里去,这个后续映射就失败了,因此,立即改掉这个习惯,那怕你是个空盘,你也应该随意建个顶级目录,例如Data,然后指定Data目录为备份目录或者自动备份目录,这才是正确的操作,例如,您之前可能指定的备份目录是c:\mydisks\disk1 , 那么请改成c:\mydisks\disk1\Data,这才是正确的设置,在万一发生磁盘故障的情况下,直接失败总比写错真实磁盘位置来的正确.

[9]如果您使用的是类似frp这样的转发,您至少需要映射 Ftp服务端口[指令],默认是21,其次是XFile专有的固定数据连接端口,默认是2020 ,然后是http流映射需要的服务端口,常见8080 或者 8081 ,在映射这三个端口后,我们开发的客户端软件,只需要勾选启用固定端口连接协议[默认],就可以全功能使用了. 但是对于第三方标准FTP协议,由于还需要动态数据端口,由于动态数据端口没有映射,即使连接成功由于来源地址和目标地址不匹配还是会失败,因此,使用我们提供的客户端可能是唯一的使用方法.

[10]每一个安装文件,您都必须在安装前,计算文件的sha256散列值,并和我们的网站里的下载连接里,给出的sha256散列值进行对比,如果版本相同但是值不同,请重新下载,因为位翻转在我的密集测试中就发生了两次,一次是u盘,一次是二手的固态硬盘,位翻转的安装文件可能导致意想不到的各种大问题.

[11]如果您部署的是近5年内的主流cpu做服务器,一段时间后可能会出现您在观察服务状态的时候,发现cpu占用率是百万分之零,其实这是正常的,因此您的cpu本身性能就足够高,时间足够长,加上新版本的XFile服务器端各方面都进行了优化,占用比之前的版本少了一个数量级,低于百万分之一就没有统计意义了,因此不要有心理负担,XFile在正常运行中.

[12]XFile的账户里的代理(proxy)账户是个例外,这是当初单纯给家里的各种外部设备调用的,没有其他类似点播传输等权力,目前不要激活它,激活了也没有什么作用.

[13]XFileAdmin管理程序,以及客户端XFileC,无论是linux还是windows版本,界面都是可以拉缩的,方法是拉住窗体的右下角,就可以根据需要进行伸缩,可能部分文字因为初始显示小而无法显示,重新拉伸一下调整大小就可以正确显示了.

[14]XFile软件默认都支持简体中文和英文两种文字,通常根据系统环境自动切换,其中,XFileC客户端是支持强制指定文字类型的,方法是编辑安装目录下config子目录里的Langset.ini文件,就可以强行选择了.

[15]部分windows server系统,安装设置完成后可能启动失败,提示缺少qwave.dll等信息,解决办法是 windows 服务管理 里安装 windows 高级音频和视频流服务 ,重启系统后就好了,新版本理论上是不再需要qwave.dll了.

[16]Linux发行版实在太多,各种c库版本,XFile只能挑几个主流Linux作为基础的编译平台,如果您的系统不在我们直接支持的几种内,尽可能挑选c库版本相同的进行尝试,如果失败,那么挑选版本最低的,例如,选Ubuntu 18.04发行版本的XFile软件,基本能自动兼容各种高版本,此外注意,Arm 版本的编译设备是很简陋的普通Arm开发板,而不是其他Linux我们使用的是工作站平台,因此Arm我们标记了仅供测试,但是代码是同一套,就怕编译过程出现过热位翻转之类的意外.

 

 

附录:

1 电子邮箱的简要介绍     点这里

2 第三方Ftp客户端windows qos限速的解除    点这里