XFile

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

XFile服务器端软件在Linux环境下部署教程

 

1 家用文件服务器的用途

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

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

4 Windows平台优化部署

5 Linux平台的安装部署

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

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

7 电脑端客户端的使用

8 常见问题和解决方法

 

服务器产生并发送错误ipv6全局地址的解决办法

外部通过IPV6访问家庭服务器在地址正确情况下失败的原因和解决办法

 

随着IPV6部署的推进,暴露在公网环境的服务器电脑对安全的要求越来越高,而Linux操作系统相对windows操作系统来说,默认安全性要高不少,XFile服务器软件代码支持Linux和Windows双平台,完全支持Linux平台.

本教程将协助您完成XFile服务器端在Linux环境下的部署. 如果你不会安装Linux,请看这里 Ubuntu linux安装和小技巧图文教程   XFile在ubuntu18.04完整安装流程

由于Linux系统库GPL授权协议的限制,以及pthread静态库本身存在的问题,我们从2018.10开始,只能提供动态连接版本,非常抱歉,需要您自己根据你实际运行的Linux发行版本去创建动态库链接以满足Xftpsvr服务器软件的需求,我们默认提供 Ubuntu 18.04 LTS和20.04 LTS环境下的可执行文件和CentOS 8环境下的可执行文件,2024年4月开始提供Debian12环境下的可执行文件,另外提供ARM V8 64位版

Arm arch64 64位版安装部署参考

为了使用,您可能必须安装g++(gcc)带的c++库,一般不需要,因为系统默认已经安装,但是有些次生版本可能做了修改,如果有需要也请安装SSL库,ubuntu linux 18/20下安装指令如下: sudo apt install g++ ,Centos下改用yum安装指令类似, SSL安装指令 sudo apt install openssl .

具体需要使用到的库链接以及版本号,请参考needlib.txt文件,您可以使用link 指令在您的Linux环境里建立软连接[如果对应库版本不存在的话],但是如果你是安装的最新版本Linux,一般什么都不需要做就可以直接执行[除了安装g++]

好消息是,XFile服务器的配置文件,windows版本和Linux版本是通用的,这意味着您可以在windows平台先进行配置,然后将3个配置文件(新版是4个,增加myproxy.ini)拷贝到linux,除了实际目录部分的区别,其他参数是相同的.

最新版本2021.05可能需要用到的连接:

ubuntu linux 18.04LTS环境需要用到的链接库(ubuntu linux 18.04和 CentOS/8 不需要额外操作)

linux-vdso.so.1 (0x00007ffee47c1000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7819736000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f781952e000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f781930f000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f7818f86000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f7818d6e000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f781897d000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7819ea0000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f78185df000)



 

ubuntu linux 20.04LTS环境需要用到的链接库(ubuntu linux 20.04和 优麒麟20.04 以及常规安装的debian 10, deepin v20不需要额外操作)


linux-vdso.so.1 (0x00007ffcd99a9000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8c43c0c000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f8c43c01000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8c43bde000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f8c439fd000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f8c439e2000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8c437f0000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8c43f93000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8c4369f000)

 

ubuntu linux 20.04 arm版本需要使用的链接库(ubuntu linux 20.04 for arm arch64 不需要额外操作)

linux-vdso.so.1 (0x0000ffff9053c000)
libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000ffff901d1000)
librt.so.1 => /lib/aarch64-linux-gnu/librt.so.1 (0x0000ffff901b9000)
libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffff90189000)
libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000ffff8ffa6000)
libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffff8ff81000)
libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffff8fe0e000)
/lib/ld-linux-aarch64.so.1 (0x0000ffff9050c000)
libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffff8fd61000)



 











简化部署流程[适合第一次安装的新手]

针对.zip模式的初次安装,请注意,首先必须解压文件到ext格式的磁盘目录下,例如我们建议/home/yourname目录下,其余请按下图界面进行操作,注意,如果没有安装g++,则选2

 

以下是常规部署流程

[1]下载XFile的Linux版

[2]解压到优盘或者Linux服务器端上

以下步骤为创建/usr/tmp1目录过程,如果您要放到其他目录,可以忽略创建tmp1部分

[a]进入Linux终端,执行su root 以管理员权限登录终端

[b]cd /usr

[c]mkdir tmp1

[d]chmod 0777 ./tmp1 (如果您对权限有一定了解,请根据实际情况进行修改,0777可以最大限度保证操作的兼容性)

[e]将下载的服务器端软件中,Xfile_centos 或者 Xfile_ubuntu子目录完整复制到 /usr/tmp1/下

[f]修改目录名Xfile_xxxxx为Xfile,注意第一个字母是大写的X

[g]cd Xfile ,进入目录

[h]执行下面的指令,让Xftpsvr拥有可执行权限 chmod +x ./Xftpsvr

[i]cp ./Xftpsvr.service /etc/systemd/system/  将自动启动服务配置拷贝到systemd配置目录中,如果您不需要Xfile自动启动服务,那么可以跳过这些步骤,但是以后您每次启动服务,都必须执行 sudo /usr/tmp1/Xfile/Xftpsvr , 如果是其他目录,请修改相对目录路径. 然后执行  chmod +x /etc/systemd/system/Xftpsvr.service 授予配置文件可执行权限.

[j] 执行 systemctl enable Xftpsvr.service 使自动启动配置生效

[k]在启动服务前,请完成软件参数配置,参数的意义和windows下含义相同,但是定时关机等可能导致硬件问题的 功能在Linux下被屏蔽

所有配置完成后,使用systemctl start Xftpsvr.service就可以启动服务

自此,您已经完成了XFile服务器端的部署,如果您不需要自动启动XFile服务,那么您可以通过在终端,切换到可执行文件Xftpsvr所在目录,然后输入 sudo ./Xftpsvr 就可以成功启动服务,如果要结束服务,除了使用kill命令强行杀掉进程,还可以执行 ./Xftpsvr stop 就可以结束服务。

config子目录下,是配置文件所在,里面的内容配置等请参考windows环境下的配置,意义相同。

执行lsof -i 可以看到Xftpsvr已经成功启动

 

在Linux下,如果要升级XFile服务到新版本,也很简单,首先下载新版本,提取出Xftpsvr文件,

在命令行下,执行sudo systemctl stop Xftpsvr.service

服务将成功停止

然后在命令行下,切换到/usr/tmp1/Xfile/目录下

执行 sudo rm Xftpsvr 删除旧版本

然后将刚才提取出的Xftpsvr文件拷贝到这里(下图中,在rm Xftpsvr 后面,有个粘贴操作,将新版本Xftpsvr 粘贴到/usr/tmp1/Xfile/,因为不是命令行操作,因此无法看到)

执行 sudo chmod +x Xftpsvr 赋予Xftpsvr可执行权限

最后执行 sudo systemctl start Xftpsvr.service

就可以重新启动服务

特别提醒:

我们建议用户不要在Linux操作系统下对windows专用的NTFS格式硬盘进行写操作,读没有问题,虽然Linux提供了对NTFS格式的基本支持(ntfs-3gs),但是如果因为写操作没有完成,Linux就非正常关机,可能会导致NTFS盘各种问题,是否完整支持NTFS的自恢复不可预知,为了避免这种问题,我们建议您不要对NTFS格式硬盘进行写操作,也就是应该彻底关闭Xftpsvr的上传功能。

 

   [1] 关闭ubuntu linux 的临时ipv6机制

   sudo nano -w -m  /etc/sysctl.d/10-ipv6-privacy.conf

   直接打开ubuntu linux 18.04系统关于ipv6临时随机地址,将里面的=2修改为=0

   net.ipv6.conf.all.use_tempaddr =0
   net.ipv6.conf.default.use_tempaddr = 0

  保存后退出,就可以取消ubuntu linux的临时ipv6机制,服务器端需要用到这一技巧

  [2] 挂载数据盘的建议

    Linux服务器场合,常常出现硬盘不会休眠,或者莫名唤醒问题,这里有很大的原因是因为挂载的硬盘参数问题,针对数据硬盘,我们的建议挂载位置是/home/diskall/diskxxxx,也就是挂载到/home目录下的子目录下的子目录,经常我们的测试,这种方式的挂载相对而言是最不容易被误唤醒的,建议的fstab文件中挂载格式类似:

    UUID=74040A6D040A3322  /home/diskall/disk1000  ntfs-3g  defaults,noatime,locale=zh_CN.UTF-8  0  0

    必须使用UUID的方式挂载, 数据盘强烈建议加上noatime, 因为如果没有noatime,即使文件已经被缓冲到内存,当你读取[播放等]文件时,系统会唤醒硬盘,并执行一个写access time操作,对于数据盘来说,其实根本没人去看access time, 这样的频繁的唤醒和写盘操作会影响磁盘寿命,并且不节能.

   

[3] 处理防火墙的建议

    ubuntu linux 18.04 desktop版本默认没有启用网络防火墙,但是有些朋友可能会强行启用,但是一旦启用防火墙,又没有配置好,导致外部无法访问Xfile服务,那面是针对ubuntu网络防火墙的设置建议,要使外部能否访问Xfile,必须确保ftp端口和http端口没有被封闭,建议的操作

    sudo ufw allow  ftp

    sudo ufw allow http

    但是这还不够,这只针对默认的21和80端口,如果您配置的例如8080 8181 2121等端口并没有被允许,另外,2020.03版本新增加的一个固定数据连接端口2020没有被添加

    那么需要针对性添加

    sudo ufw allow 2020

    sudo ufw allow 8181

    sudo ufw allow 8080

    sudo ufw allow 2121

    但是,这只保证了默认配置下Xfile的服务端口,而ftp(ftps)还需要额外的数据端口进行数据连接(如果您使用的是其他第三方客户端,或者使用我们的配套客户端但是没有开启固定端口连接协议),例如您ftp客户端接收文件列表,进行文件传输,都需要一个额外的数据连接,使用不同的端口,为了配合防火墙的操作,你需要在Xfile的设置文件set.ini中,找到Port_DataBasic=0,默认是0,不指定数据端口,在没有防火墙,或者windows平台,这是没有问题的,但是在linux下会导致列表失败, 我们这里建议你修改为例如8000,或者18000,21000等,不要超过62000,例如修改成

    Port_DataBasic=8000

    然后保存并重新启动Xfile,

    然后在linux终端下,执行

    sudo ufw allow 8000:9000/tcp

    这个命令的意义是 开放8000到9000的tcp端口段 [Xfile的数据端口指定为8000,在8000到9000这1000个随机端口中进行分配,不会超过1000]

 

=========================================================

由于linux的目录格式和windows不同,在myshare.txt文件中的示范格式如下:

0:0*home1*/home/
0:0*download*/media/

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

注意映射目录,必须是绝对目录,例如windows中必须以盘符: 开始,而linux中必须以/开头,同理,在myaccount.ini中的备份目录也必须是绝对目录.

=========================================================

 

Linux下执行更新的简单操作类似下图,先把下载的zip文件解压到本地某个目录下,或者移动u盘中,然后如下:

   

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
(c) 2015-2023 phoenixp2p.com