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位版安装部署参考

具体需要使用到的库链接以及版本号,请参考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)



 

 

 

以下是常规部署流程

[1]下载XFile的Linux版

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

[3]在当前目录下,打开命令行终端,输入 sudo bash ./install.sh ,就完成安装操作了

XFile服务的所在目录为  /usr/tmp1/Xfile/

配置文件等的详细说明请点这里

修改配置文件:

sudo nano /usr/tmp1/Xfile/config/set.ini

修改账户文件:

sudo nano /usr/tmp1/Xfile/config/myaccount.ini

修改发布资源文件:

sudo nano /usr/tmp1/Xfile/config/myshare.txt

 

启动服务:

suso systemctl start Xftpsvr.service

停止服务:

sudo systemctl stop Xftpsvr.service

 

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

 

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

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

服务将成功停止

Linux下执行更新的简单操作类似下图,先把下载的zip文件解压到本地某个目录下,或者移动u盘中,然后如下 (注意 : Xfile 和 Xftpsvr 的第一个字母 X是大写的):

   

 

特别提醒:

我们建议用户不要在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中的备份目录也必须是绝对目录.

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

 

 

 
(c) 2015-2024 phoenixp2p.com