不死鸟P2P

关于不死鸟 UT库 Phoenix库 ETUdp库 UTS库 库使用示范 最新进展 开发历史 下    载 授    权 联系我们

PhoenixFxp软件使用[服务器端入门]

PhoenixFxp客户端入门连接

PhoenixFxp 是基于PhoenixP2P库和UTS库开发的一套全新的软件,目标是作为常见的FTP服务器的一种高效率下载补充, 它在操作上与标准FTP的下载和列表基本相同,但是在下载部分采用的是P2P模式进行加速.

项目 标准FTP PhoenixFxp
输出效率 服务器总带宽 服务器总带宽 + (同一资源并发下载人数-1)*用户平均上传带宽*P2P效率值  [注意,P2P效率值一般在0.3-0.8,是一个变动的数字]
支持功能 目录和文件列表 下载 上传 目录和文件列表 下载
权限控制 基于独立用户权限控制 基于全局权限等级控制
用户数据库 取决于不同实现 标准SQL数据库
登录安全 明文或SSL MD5[加盐] + 传输层加密
网络特性 TCP  C/S模式 UDP C/S + 加密P2P
     

1 PhoenixFxp服务的适用环境

请注意, PhoenixFxp服务只能在合适的网络环境下发挥出高效率,它无法支持客户端上传,因此不可以盲目的部署PhoenixFxp替换标准FTP服务。 我们建议:

  [1] 服务器端没有用户上传的需求,因为PhoenixFxp不支持用户端上传文件到服务器端

  [2] 有限文件和目录数量,例如总数在1000个文件以内,大部分单个文件体积很大,例如至少几百兆字节,文件越大,客户端的下载文件越集中,客户端在线传输时间越长,P2P传输效率越高,当每个文件只有1个用户下载的时候,效率等于FTP服务器

  [3] 有一定数量的下载用户,要发挥PhoenixFxp的P2P加速作用,必须有一定数量的用户,这样才有可能同时下载同一个文件,从而发挥P2P的作用,千万要牢记这一点

  [4] 用户的上传带宽有一定保证,并保证能彼此连接,最好的效果在局域网,比如校园网,公司内网,最差的是用户普遍使用ADSL或者更烂的上网设备,上传带宽甚至小于256kbps,连1M都不到[这个注意一下,现在宽带运营商所谓的宽带,标的只是下载带宽,而影响P2P的上传带宽都是被阉割的,例如100M宽带,上传只给你4M],在这样的场合,PhoenixFxp的P2P只能发挥有限的作用

 

2 PhoenixFxp服务的用户数据库及其配置

PhoenixFxp默认携带了FireBird数据库文件,但是FireBird服务器软件和ODBC驱动并没有打包,需要管理员根据需要自行下载安装,下载地址是:

http://www.firebirdsql.org/en/downloads/  ,

注意,需要根据您的操作系统安装不同版本的数据库服务器端软件和ODBC驱动[32位的x86或64位的x64],缺一不可,如果您安装完成,那么系统的服务管理中应该能发现2个后台数据库服务进程:

请确保有这两个服务,并在服务器程序启动前,确保这两个服务已经启动,否则将无法连接FireBird数据库文件,同时,请检查您的数据库ODBC驱动,请确保已经安装了FireBird ODBC数据库驱动,如下图:

PhoenixFxp 可以支持任何有标准ODBC驱动并且能提供符合要求的表结构的SQL数据库,而并非一定要使用FireBird, 例如ms sql , mysql 等都符合要求,选择FireBird 是因为它是一个免费软件,体积小并且提供了官方的ODBC驱动.

PhoenixFxp默认支持2个特殊账户,不需要数据库支持,分别是管理员账户和匿名用户账户,其中匿名用户账户的权限是0,而管理员账户的权限是非0,如果这两个账户足够您的使用,那么您就不需要部署数据库软件以及安装驱动等,只需要将目录的权限设置为0,就可以提供给匿名用户下载,这两个账户都支持多重登录。

PhoenixFxp 要求的SQL数据库用户表的结构如下: 用户ID [64位正整数] 用户名[32个UTF8字符] 用户口令[MD5格式保存,将来可能支持SHA等] 用户权限[32位正整数,数字越大,权限越高] 激活状态[32位整数,非0表示激活] 随机字符串[如果使用二次MD5模式]  , 请注意,不要搞错字段的循序,在设置里搞错次序,除了用户无法登录或者权限和状态等混乱,更可能引发各种服务器软件内部问题.

PhoenixFxp 数据库指令中的宏替换字符串如下:注意都是小写

?workpath?  指代目前工作目录,包含结尾的目录字符

?username? 指代用户名字符串 为标准utf8格式

?password? 指代用户口令,目前版本为MD5摘要,包括一次和二次加密[加盐MD5], 将来可能会包括SHA1等支持

?salt? 指代MD5的加盐字段,也就是在获取第一次原始口令的MD5后,执行加盐字段合成,然后生成最种的MD5口令, 常见的discuz等论坛默认就是采用加盐MD5口令保存

?level? 指代用户的下载权限,是一个32位正数字,数值越大,权限越高

?userid? 指代用户的编号, 注意, 这是一个64位整数,大于等于0

?status? 指代账户的激活状态, 这是一个32位整数,如果为0, 则说明该账户被屏蔽,禁止该用户登录,否则非0,默认是1

我们系统默认携带的FireBird数据库文件FXP_EXPUSER2是针对二次MD5口令模式创建的, 如果您要替换成其他数据库,请务必保证以下字段的存在[字段名称可以修改,但是请保证参数类型和作用,例如, 我们有MYUSERID64位用户编号,也许您不需要,那么可以随意创建一个字段例如NOUSE_ID,但是要保证是64位数],如下图:

FxpDbm设置添加用户的指令串参数[一次MD5口令模式],INSERT INTO fxp_expuser(MYUSERID,MYUSERNAME,MYUSERPASS,MYUSERLEVEL,MYUSERSTATUS) VALUES(?userid?,'?username?','?password?',?level?,?status?);

它里面的?userid?以及后面几个用?包括起来的宏,会在执行时自动替换成用户输入的实际变量,额外注意的是,需要在字符串字段 ?username? ?password? 前后添加单引号' , 这是因为FireBird SQL 指令中是用单引号'来指示字符串开始和结束的。

FxpDbm 设置列表指令 [二次MD5口令模式] , SELECT MYUSERID,MYUSERNAME,MYUSERPASS,MYUSERLEVEL,MYUSERSTATUS,MYUSERSALT FROM fxp_expuser2; 这是一个标准的FireBird SQL 指令, SELECT 后面到FROM前面都是字段名,注意次序千万不可打乱, 用户ID[64位数] ,用户名[字符串] , 用户口令[字符串] 用户权限 [32位正整数] 用户激活状态[32为数,最后一个MYUSERSALT是MD5加盐字段, 如果设置的数据库是一次MD5口令模式,那么只需要把这个字段去掉就可以,  fxp_expuser2是表名.

PhoenixFxp服务器程序的数据库参数设置如下图:

数据库类型,可以是SQL文件数据库,或者DSN本地数据源格式,一般情况下都是选择1 SQL文件数据库, 使用DSN数据源,需要您自己在windows系统中进行配置,这一般需要数据库管理员来进行配置。

登录类型,目前支持3种,分别是一次MD5,二次MD5[+salt] 和二次MD5[salt+],第一种格式为标准的一次MD5口令加密格式,第二种和第三种则是二次MD5,也就是常见论坛数据库使用的所谓的加盐MD5,区别在于,第二种是加盐部分在前,第三种则是加盐部分在后,这非常重要,请慎重选择,数据库格式一旦确定,日后要再进行转变,是一个非常巨大的工程。

选择项,每用户ID仅允许唯一连接,也就是普通用户账户[非匿名和管理员账户],每一个账户同一时间,是否允许有多个连接登录到服务器,通常情况下,如果允许一个账户同时给多个用户使用,那么应该取消该选择,否则就应该启用。

数据库连接指令,例如, 设置FireBird 数据库连接字段,为ODBC数据库连接模式, 参数为 DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=masterkey;DBNAME=?workpath?mydb.fdb;它里面的?workpath? , 会在程序执行的时候,自动替换成程序所在的绝对工作目录,例如c:\program files\phoenixfxp\server\ ,如果您要换成您已经安装在系统上的其他数据库,那么请更换这个连接串, 注意不同的数据库软件有不同的ODBC驱动以及不同的参数,以下供参考:

DRIVER={Microsoft ODBC for Oracle};server=LocalOracle;UID=myusername;PWD=mypassword

Driver=MySQL ODBC 5.3 ANSI Driver;SERVER=192.168.0.1;UID=myname;PWD=mypass;DATABASE=userdb1;PORT=3306

driver={sql server};UID=sa;PWD=mypass;database=myuserdb

 Driver={SQLite3 ODBC Driver};Database=D:\myuser.db

用户登录指令,例如, 设置FireBird数据库的登录字段[二次MD5 加盐模式], SELECT FIRST 1 MYUSERPASS,MYUSERSALT,MYUSERID,MYUSERLEVEL FROM FXP_EXPUSER2 WHERE MYUSERNAME='?username?' AND MYUSERSTATUS=1;

上面这个语句是标准的FireBird SQL 指令, 这里的SELECT FIRST 1 , 表示如果有重复的用户,那么始终只返回一个,这个是FireBird数据库的专有参数,可能其他SQL数据库不通用, MYUSERPASS,MYUSERSALT,MYUSERID,MYUSERLEVEL这些都是数据库用户表的字段,分别是用户口令,用户加盐字段,用户ID,用户权限, 注意顺序不可以改变,FROM FXP_EXPUSER2表示数据库表名是FXP_EXPUSER2,WHERE语句里的'?username?', 会被实际替换成对应的用户登录时的名称,注意是UTF8编码, MYUSERSTATUS是表里的一个32位字段,表示该用户激活,

请注意返回字段的次序,必须是 用户口令 用户加盐字段 用户ID(64位) 用户权限, 这个次序绝对不可以更改,如果是一次MD5加密模式,那么只需要把加盐字段给取消掉就可以,例如 SELECT FIRST 1 MYUSERPASS,MYUSERID,MYUSERLEVEL FROM FXP_EXPUSER2 WHERE MYUSERNAME='?username?' AND MYUSERSTATUS=1;

DSN用户名, 这个只有在使用DSN数据源的时候才起作用,请根据您实际设置进行填写.

DSN口令,这个只有在使用DSN数据源的时候才起作用,请根据您实际设置进行填写.

管理员名, 这是管理员账户的用户名,必须以$字符开头,请注意,必须用$字符开头,例如$rootuser, $adminuser, 这都是符合要求的,而rootuser, adminuser, 由于开头字符不是$,那么被认为是无效的,管理员账户目前由于没有开放远程管理功能,因此暂时和普通注册用户是一样的权限,但是为未来考虑,我们还是建议您对管理员账户进行保密,不要提供给其他用户使用,本账户不限制多重登录,也就是允许同时有多个管理员登录。

管理员口令, 是管理员账户的口令,请使用数字和字符组合,最多32个字符.

匿名登录用户名, 这是一个特殊的账户,不限制多重登录,这个账户和标准FTP中的匿名账户是对应的,一般建议匿名用户名使用常见的 anonymous 或者 guest , 当然有特殊目的也可以替换,如果匿名登录用户名为空白,则认为该服务器不支持匿名登录,特别注意的是,匿名登录用户的权限始终是0,管理员在服务器端发布的任何大于0权限的资源,匿名用户是无法下载的,而管理员账户权限则高于0,是可以下载的.

匿名登录用户口令, 这个口令如果设置为空白,并且匿名登录用户名为非空白,则认为服务器允许匿名用户登录不需要任何口令, 如果口令为非空白,则需要匿名用户提供该登录口令.

 

3 PhoenixFxp网络参数设置

PhoenixFxp采用的是UDP可靠传输c/s结构的网络模型,并区分内网和公网,因此必须针对您的实际情况进行网络参数的配置,如下图:

IP协议,在目前的环境下,请务必选择IP协议为IPV4.

 网络类型,则需要根据您的实际使用情况进行选择, 如果您是在内部网络中应用,也就是局域网里使用, 192.168.x.x , 10.x.x.x 等是典型的内网地址,那么您应该选择1 局域网, 否则请选择 2 因特网, 在局域网限制下, 服务器可以保证所有的数据能且只能在你的局域网环境内传输, 而不会输出到因特网,或者被因特网外部用户获取. 服务器端的这个设置必须提供给用户,如果服务器端设置成局域网,而客户端设置成因特网,那么会导致无法连接,无法传输等各种问题.

服务端口默认是 UDP 27,这个端口在您安装服务器软件的时候,已经自动在系统防火墙里设置例外,因此外部用户能直接访问,如果您要改成其他端口例如988, 那么需要您手动处理防火墙设置,否则外部用户可能无法连接您设置的端口,也就无法登录到PhoenixFxp服务.

最多在线用户,也就是服务器允许的最多登录的客户端数量,请根据您实际的网络情况和服务器配置进行设置,最多数量为20000,请注意,设置的最多在线用户数量越大,那么对服务器的cpu要求也越高,因此请根据实际的上限进行设置.

反空闲时间,也就是要求客户端每多少秒发送至少一条指令给服务器,以证明自己还保持着连接,这个数字建议是60到150, 一般建议是 100.

登录超时,单位是秒,也就是要求任何一个客户端必须要在规定时间内完成登录过程,超过规定时间,则会被强制中断,注意,如果由于服务器端用户数据库处理速度过慢,导致客户端登录超时,也会被误判而导致客户端连接中断,一般建议的数字是 55 到 80.

最长无任务在线时间, 也就是,如果客户端只是保持连接,但是没有任何下载或者列表动作,也就是一个空闲的挂机连接, 您可以通过设置这个参数,来自动发现并结束这种挂机连接,空出服务器资源给真正有下载或者列表需求的用户, 如果这个数字设置为0, 则说明不进行检查,也就是允许客户端挂机模式连接,这个数字的参考范围是 200 到 640 , 建议480,单位是秒,注意,设置页面里没有特定说明的时间单位都是秒.

Phoenix保密数字,这是因为PhoenixFxp采用了Phoenix的P2P底层,而P2P采用的是UDP可靠传输,包头的格式完全相同,为了避免与其他采用同一个库的应用混淆,遭到有意和无意的破解和攻击,引入了这个保密数字,这个数字如果非0,例如设置为23456[必须大于1200],那么必须提供该数字给客户端用户,默认是0,系统会自动填写应用的默认保密数字.

选择项 允许UTS启动UPNP映射,如果您是在局域网使用,那么不要开启改项目,如果您是在因特网使用,同时服务器位于路由器后面,那么需要开启该项目,如果您的服务器直接就是因特网接入,例如静态公网IP,那么不需要启用,请注意,该功能只有在支持UPNP服务的windows操作系统才有效,例如win xp sp2, windows7 , windows8等,服务器操作系统由于默认关闭了UPNP服务发现,因此无法启用成功.

选择项  启用随机传输口令, PhoenixFxp采用的是UTS传输协议,通过设置口令来加强传输的保密性, 如果启用本项目,那么每一次启动UTS种子,服务器会产生不同的传输口令,如果不启用本项目,那么服务器只在初始化的时候一次性生成传输口令,之后不再变化,如果对保密性的要求不是很高,可以取消本设置,否则请启用本设置.

 选择项 允许断点续传模式, 这和FTP中的断点续传差不多,不过PhoenixFxp中服务器来决定是否允许, 在FTP中,由于始终是客户端从服务器端下载,而不会传输来自其他客户端的资料,因此即使开启断点续传,只要服务器端文件没有变化,安全性和一致性是有保证的,但是请注意,PhoenixFxp 采用的是UTS传输协议,内容同时来自服务器端和其他正在下载的客户端,当启用了断点续传功能,如果遇到恶意的攻击[这需要破解UTS存盘文件协议,并有一个能登录到服务器的客户端账户], 就可能导致出现大面积的文件不一致性,并可能引发不安全性,因此,在需要严格保证文件一致性和安全性的环境下,建议您关闭这个选择项,否则可以打开,例如分发视频文件给大量用户,就可以打开这个项目.

4 PhoenixFxp UTS 传输设置

PhoenixFxp对文件的传输采用的是UTS传输协议,这是一个基于UDP的多对多可靠传输协议,一个客户端可以同时从服务器端和其他正在下载的客户端并发下载同一个文件的不同分段,并使用加密口令进行保护,需要注意的是, UTS并没有UT协议的整文件HASH分块校验,在增加了使用效率的同时,也必须使用加密口令来保证传输的一致性和保密性,如下图:

UTS被动通道数量,这个参数非常重要,由于服务器端的每一个文件只有被动通道,一个被动通道可以提供给一个下载该文件的客户端, 例如15,就表示服务器允许最多同时有15个  客户端直接从服务器提供的原始文件直接下载,并彼此交换已经下载的块,当超过15个用户[例如第16个 17个等]请求从服务器端下载该文件时, 将因为服务器端提供的种子连接通道已经满载,而会要求新的客户端从目前正在下载的这15个客户端那里进行下载,当且仅当原来的15个用户中的某1个下载完成或者离开的时候,其他客户端才能获得直接从服务器下载的通道. 这个通道数量的多少将直接决定服务器的传输效率和P2P的效率, 设置服务器端的被动通道太少,当遇到大规模并发下载的时候,由于直接从服务器资源下载的客户端数量太少,P2P无法有效建立,会在初期导致大量超过负载的客户端无法完成组网下载,而设置太多,会导致服务器负载过大并且P2P效率低下,如何设置好这个数字是需要根据网络环境和服务器硬件配置来决定的, 一般情况下, 我们建议设置的被动通道数量为 10 到 23 .  

 UTS主动通道数量,这里没有实际作用,请设置为0.

UTS扩展通道数量, 这是个临时连接通道,当某文件的UTS被动通道被全部占满,那么新的下载该文件的客户端将只能连接到扩展通道, 从服务器读取其他正在下载的客户端的资料,然后尝试连接其他客户端并进行下载,这个连接时间很断,因此总是能被重复使用, 一般情况下,设置3到6个扩展通道足够了,但是遇到大规模针对同一文件的并发下载请求, 失败率也会很高,因为扩展通道数量有限.

每通道限制输出速度, 真是针对UTS被动通道而言, 单位是字节每秒,至少32000, 设置为0,则表示不进行限制, 这个数字是真对每客户端,在请求一个文件时允许的最高传输速度, 为什么要设置这个限制速度,这是因为, P2P的效率取决于客户端在下载一个文件从开始到结束的时间,时间越长,那么客户端的P2P上传时间也越长,这样能充分降低服务器的负载,但是把这个数字设置的太小,又会影响用户的下载体验,并在用户人数少的时候影响服务器端的输出效率,那么这个理想的数字是多少,一般我们建议是 280000 到 640000, 也就是大约 260KB/s到600KB/s, 注意这是一个上限速度,如果在并发下载人数过多的时候,由于超过服务器的输出总带宽,因此达不到,并不是你设置多少服务器就能输出多少,请注意您实际的硬件条件的限制.

每任务限制输出速度, 每一个任务指代一个种子文件,例如上面的设置, 假如有15个被动通道,上面设置了每通道最高输出是350000, 那么总的极限输出是每个文件=15*350000=5250000, 也就是大约5MB/s,但是我们不希望单个文件吃掉那么多的带宽, 那么就可以在这里进行限制,例如800000,也就是限制最多输出800KB/s, 当只有1个客户端下载该文件,那么会达到上限350000,当2个客户端同时下载该文件,同样都可以达到350000,但是当大于等于3个客户端同时下载该文件的时候,我们计算一下,3*350000=1050000,已经超过了我们设置的800000,那么这个时候服务器会自动进行带宽平分,也就是设置每个客户端最高下载速度是800000/3,大约是260KB/s, 虽然服务器设置了每通道允许的最高速度是350000,但是超过了服务器设置的每文件总的输出带宽,这样就会被总速度自动限制,这个限制会随时根据同一文件的下载客户端[直接从服务器下载]数量进行动态调整.

UTS基础端口, 每一个UTS任务需要占用一个UDP端口,由于某些第三方的防火墙软件对某些特定的端口数字特别敏感,当UTS不小心占用了该端口,就可能被当作攻击数据而直接丢弃,从而导致连接失败,引发任务下载失败,因此这里设置基础端口很重要, 请尽量避免常见的防火墙敏感端口, 比较安全的例如 40000.

最多并发任务数,PhoenixFxp采用的是UTS文件发布方式,和FTP每个传输只能支持一个客户端不同,每一个UTS实例[任务]理论上可以支持无限的相同文件的传输请求,其中可以直接连接到服务器进行传输的数量是UTS被动通道数量决定,其他都是通过P2P网络从其他客户端进行传输,例如我们设置最大并发任务数4, 那么它可以支持最多同时有4个文件并下载,当超过这个数量,新的任务无法建立,因为达到了上限,这其中,理论上无论有多少用户,只要在该时间段内请求的是这4个已经启动的文件,都会下载成功,这一点和FTP有本质的不同,而且用户下载的文件越集中,P2P的效率就会越高,这个数字请根据您实际的用户和网络带宽以及存储系统和文件数量来设置,常见的设置,普通的服务器我们建议,32位不超过120个,64位不超过200个,如果您使用的是固态硬盘或者SAS磁盘陈列等高端存储设备,那么这个数字最大不建议超过1000个[64位],特别提请注意,每一个有效的被动通道,都需要占用大约512KB内存,峰值内存开销大约是 任务数量 * UTS被动通道数量 * 0.6MB , 当峰值内存达到系统内存的上限的时候,新的连接会自动被组织, UTS能且只能在用户有效集中在热门资源的下载时才能发挥高效率,如果是1人1个不同资源,P2P效率是0,等于普通FTP传输,这点需要特别注意.

最多无连接次数,这是针对UTS任务的,后台守护线程会每隔一段时间,检测每一个任务的连接和输出状态,当发现没有连接或输出的时候,会对任务无连接统计数累加,当这个数字达到这里设定的最高限制,任务就被守护线程认定是无人下载任务而结束,这样空出任务资源给新的请求,这个数字通常设置为 8 到 20, 一般建议设置是12, 数字越小,对无输出越敏感, 但是误判概率也会比较高.

限制客户端并发任务数, 和FTP每一个指令连接只能对应一个下载连接不同, PhoenixFxp一次登录连接,可以同时下载多个资源,这里我们把上限的权力给于了服务器端进行控制, 也就是,允许每个客户端,可以同时下载的文件数量,因为服务器本身能并发的任务数量有限,如果一个客户端总是大量投递冷门的资源请求并长期占用任务通道,会影响其他用户的下载体验,可能导致服务器并发任务很快达到上限,同时因为请求的都是冷门资源,大量其他用户却并不需要下载该资源,这样就产生了资源浪费,并影响P2P效率,因此,有必要限制每个客户端能同时下载的任务数量,一般建议的数字是3到8,根据服务器设置的总并发任务数量来确定.

客户端通道上传限速[KB], 单位是KB/s, 服务器端可以决定是否允许客户端设置UTS每通道的上传速度[P2P 传输给其他客户端],如果这个数字为0,则说明禁止客户端设置每通道的上传速度,例如设置100,那么说明客户端最低要保证每通道100KB/s的上传速度给其他客户端,当客户端设置例如80KB/s的每通道上传速度时,由于服务器规定的最小上传速度至少是100KB/s,那么客户端的设置就会无效,而改用服务器端设置的最小数字.

客户端任务上传限速[KB],这和上面的通道限速类似,不过是针对每个任务的总上传限制速度,如果设置为0,则禁止客户端限速,否则则是客户端允许的最低每任务上传限制速度,低于这个限制的都会被无视.

5 PhoenixFxp 目录映射设置

PhoenixFxp针对目录和文件列表,为了满足高并发的需求并减低资源开销和重复磁盘读操作,使用了缓冲池技术对目录进行映射和缓冲,如下图

最多映射目录数, 这是针对的一级虚拟根目录数,例如你把D盘映射为一个虚拟根目录,通常,一个服务器不会有超过32个一级虚拟根目录,因此请根据您实际需要发布的资源数量进行设置,这里的500明显是偏多的,一般不建议超过72.

映射目录最多字符数,因为每一个一级虚拟根目录,都需要一个对应的虚拟目录名,这里规定这个对应的虚拟目录名称的最大字符数量,也就是长度,注意都是UTF8编码,建议使用短的虚拟目录,因为每一次列表,需要传输的虚拟目录名称长度越大,网络开销就越大,一般建议 120 到 300 个字符之间, 注意,除非特别约定,这里的字符都是代表UTF8编码的字符,一个中文需要3个UTF8字符位.

子目录名最多字符数, 这是您发布的资源中,可能存在各个子目录,您允许的子目录最大长度是多少,因为每一次列表都会被缓冲,而子目录名采用的是固定长度分配,因此这里设置合理的最大字符数量,可以节省系统缓冲的开销,一般建议的长度是 230 到 560,注意是UTF8编码字符. [本项目是为未来版本所设置]

选择项, 自动释放无用户缓冲, PhoenixFxp 子目录的磁盘扫描内容采用了内存缓冲技术,这样可以一次扫描多次复用,大大减轻了服务器的磁盘读压力,但是坏处是,如果长时间使用缓冲而不进行更新,那么可能该目录下的内容发生变化,而无法及时进行更新, 一般建议用户开启这个项目,让系统自动释放无用户缓冲.

最多缓冲数量, 因为PhoenixFxp每一个子目录都需要一个缓冲,例如c:\data1\movie1\是一个缓冲, c:\data1\movie1\asian\也是一个缓冲,c:\data1\movie1\japan\同样是一个独立的缓冲, 为了避免缓冲数量过多导致系统内存不足,这里需要设置一个最大数,一般情况下, 320到640,因为大部分用户的列表操作其实是高度重复的,例如您发布的资源一共只有200个目录,那么在这里设置成300个,除非您在服务启动后需要动态添加新的资源等,否则其实是浪费系统资源开销,设置合理的数字非常重要.

最长无使用缓冲保持时间,单位是秒,针对的是每一个子目录的缓冲,当规定时间内没有新的用户请求数据,那么将自动释放该缓冲,腾处空间给其他子目录, 建议的数字是 480 到 960.

强制更新缓冲时间,单位是秒,由于PhoenixFxp下每一个子目录都采用扫描缓冲的技术来减轻服务器的磁盘压力,但是带来的坏处是,当某个子目录下内容有变化,例如增加了文件,或者某个文件长度发生了变化,或者增加了新的下级目录等,无法及时提供给客户端,只能等之前的缓冲被释放,然后重新扫描的时候才能反应这个变化,因此这里有必要增加一个强制更新缓冲时间,设置的太短,那么会导致大量的频繁释放--重新扫描,给服务器带来巨大的磁盘压力,而设置时间太长,那么无法及时反应磁盘目录下内容的变化,因此这里需要一个折中的取值,如果您的磁盘内容变化频率不高,例如一天只增加几个文件和目录,那么可以把这个数字设置的大一点,例如 7200 , 如果磁盘的内容变化频率很高,同时用户对磁盘内容变化的要求很高,可以设置的小一点,例如600, 这取决于您磁盘内容变化的频率和客户的内容变化要求的及时性,当然您可以手动通过强制刷新缓冲内容来及时释放.

最多目录字符数, 注意这里很子目录字符数量不同,前面没有子,是代表完整目录,例如 movie是个子目录,那么完整目录是c:\data\movie\, 这里的最多目录字符数,是整个完整目录,也就是实际目录的最多字符数,一般建议的数字是 320 到 560, 设置的太多,会耗费太多的资源.

缓冲循环间隔检测时间,单位是秒,也就是每多少秒,检测一次缓冲的使用状态,如果长时间没有使用或者达到了系统规定强制更新时间,那么就自动释放该缓冲,建议的数字是8到12.

选择项,不包含系统和隐藏文件, 是指子目录列表扫描的时候,是否跳过具有系统或者隐藏属性的文件,如果该选择被选上,那么目录下的系统和隐藏文件不会出现在客户端的列表中.

指令最多字符数,这是指一个完整的PhoenixFxp指令可能达到的长度,主要影响因素是您的多级子目录长度和最长文件长度,例如可能投递一个 DOWN 3412343124312412  /dir1/dir2/dir3mytestfilesontest/level1/temp1/temp2/test1/test2/test3/测试多级目录1/多级目录2/超长文件名12345678901234567890abcdefghijklmnopqistuvwxyz_test.avi , 当然可能比这个长的多的目录和文件,由于指令长度是预先分配,分配的过多,那么会无谓的消耗系统资源,分配的过少,可能导致用户无法投递类似的超长文件名,在一般情况下,不太可能出现超长的目录文件,因此您可以减少缓冲长度,建议的设置是 560 到 820,请根据您的实际情况进行设置.

6 PhoenixFxp程序设置

这是针对软件本身的参数进行调整,目前只支持两个属性,分别是刷新频率和本地语言,如下图:

列表自动刷新频率,是软件的主界面中的用户列表或者任务列表状态的刷新频率,单位是秒,由于涉及到大量的界面操作,长时间高频率刷新会导致服务程序开销太多的系统资源,因此一般建议将数字设置的大一点,建议是3到8,毕竟服务程序主要是用来提供服务,而不是用来监视, 实在需要的话,可以手动,用右键菜单进行刷新.

选择本地语言文件,目前默认支持英文和中文,请根据需要进行选择,如果变更了语言文件,请务必关闭本软件,然后重新运行,语言文件的变化在重新启动软件后才能发挥作用,如果您发现您的软件本来是中文,忽然一搞,下次运行就变成了英文,通常就是这里被修改了,您只需要重新选择简体中文就可以恢复.

7 PhoenixFxp主菜单

PhoenixFxp的主要设置等需要通过菜单来进行,主菜单位于软件的左上角,如下图:

启动服务,就是在您完成PhoenixFxp软件的服务配置后,使用本菜单来启动PhoenixFxp服务,才能为您的用户提供服务,下图是服务成功后的.

停止服务,在您启动服务后,可以使用本菜单来停止已经启动的PhoenixFxp服务.

服务设置, 这里的设置已经在上面进行了示范,主要是针对PhoenixFxp服务进行配置,不针对软件本身参数进行配置.

程序设置,这里的设置只针对软件本身,例如本地语言等.

关于我们,将直接导航到我们的开发网站www.phoenixp2p.com.

退出程序,您应该使用本菜单来结束PhoenixFxp软件的运行.

8 资源管理和添加

PhoenixFxp和FTP类似,主要是提供资源给客户端,将列表切换到资源列表,按鼠标右键,就可以弹出管理菜单,如下图,

添加目录, 这个菜单下您可以发布新的目录资源,和Ftp的操作是类似的,通过快捷键Ctrl N是同样效果,添加操作非常简单,在根目录下能且只能添加子目录,如果您要发布一些独立文件,建议您在服务器上建立一个独立的子目录,然后把文件拷贝过去,并发布这个独立的子目录,界面如下图:

使用目录按钮,选择本地目录,这里需要的是映射名称,请不要超过您设置的映射目录最多字符数,您的输入将转换成UTF8编码并进行长度计算,超过限制的映射目录可能导致各种问题或者被抛弃,使用目录按钮选择一个本地目录,并设置权限和映射名,这里特别提醒,匿名用户的权限是0,如果您设置的权限高于0,那么匿名用户是无法下载的,如果您的某个用户账户设置的权限是10,而您设置的这个目录权限是11,那么即使是注册用户,也会因为权限不够而无法获取下载.

这里示范添加一个目录,本地目录的位置是d:\lenovo, 里面的内容都是驱动之类的,如下图:

这里的映射名称您可以进行修改,例如改成联想 , 或者改成 lenovo_drv 之类的,在您完成选择的时候,默认会自动提取目录名来进行映射,一般情况下不需要改动,按确定后,资源列表里会出现新添加的资源,如下图:

如果添加或者编辑资源等操作全部完成,请务必使用右键菜单里的 保存变更 进行保存, 否则可能丢失设置.

非常重要的一点,如果服务已经启动, 由于目录缓存的关系,新的目录可能不会及时反映到客户端列表,也就是,这是时候,如果客户端进行列表什么操作,实际读取的是缓存里预先制作的列表内容,实际发生的变更将不会立即发生,需要等到缓存失效[在服务设置里可以修改,一般是10分钟到几个小时才失效更新],重新制作的时候才进行更新,这个时候,可以采用右键菜单 缓冲更新, 让服务器立即刷新缓冲内容,这样如果用户重新执行完整的列表操作,就能看到新的变化了.

移除目录,注意只是在资源列表中删除这个虚拟目录,操作系统中对应的实际目录是不会被删除的,和添加目录一样,需要 保存变更 和 缓冲更新,让这个操作立即生效.

目录改名,改的只是映射的虚拟目录名,实际目录不会变更,需要 保存变更 和 缓冲更新,让这个操作立即生效.

打开目录, 在windows系统中直接打开这个映射的虚拟目录对应的实际目录所在文件夹.

缓冲更新,当且仅当服务启动后才可用,由于系统目录列表缓冲存在的原因,添加目录等操作后,实际内容发生了变更,但是缓冲中的内容依然是老的没有变化的内容,为了让缓冲立即刷新,可以使用这个菜单,则系统中所有的目录缓冲都立即失效并更新,注意,不要频繁使用这个功能,建议当全部修改编辑移除等操作完成后,执行一次缓冲更新,注意更新所有缓冲,由于需要大量的磁盘扫描,在服务繁忙期间,可能导致出现卡机问题,一般不是非常重要的需要立即呈现给客户端的内容变化,不建议使用这个功能,而应该等缓冲到了时间自动强制刷新.

保存变更,当使用了添加目录等导致内容变化的操作后,需要使用保存变更的功能,及时将发生的变化保存到软件的配置文件中去,如果不保存,然后结束的时候直接退出或者关闭,会导致变更丢失,重新启动软件读取的配置文件依然是旧的部分.

刷新列表,可以立即刷新列表内的内容,通常不需要执行这个操作.

9 传输管理

PhoenixFxp的传输是基于UTS协议,每一个启动的文件,和FTP一个文件传输实例对应一个用户数据连接不同,UTS支持多用户并发下载,同时可能有很多用户在下载,因此在进行强制停止等管理操作时,务必小心.如下图:

停止传输,可以强制停止当前选定的资源传输,但是有一点需要注意,只能停止正在运行的任务,如果在停止后有新的用户请求了同一个文件,那么会自动重新启动该任务,可能看起来就象无法停止一样.

打开目录,就是打开实际传输文件所在的文件夹.

获取连接,目前没有作用,被屏蔽.

刷新列表,可以立即刷新传输列表中各UTS传输任务的各种参数,但是请注意,因为涉及到界面的大量操作,是非常耗费系统资源的,因此不建议频繁使用这个刷新.

10 用户管理

切换到用户列表,可以看到目前已经登录到服务器的用户,不同的用户有不同颜色的头像,如下图

在任意一个用户图标上点鼠标有键,可以弹出功能菜单,踢掉用户,注意只是暂时把该用户踢下线,但是该用户还是可以重新使用这个账户登录到服务器,要彻底禁止该用户[非匿名或管理员账户],必须在数据库中禁止该用户账户或者干脆删除,否则这里只能临时将用户踢下线,而无法禁止重新登录. 详细信息,就是该用户自登录以来的一些内部参考信息,刷新列表,立即刷新用户列表,但是不建议频繁操作.

11 PhoenixFxp服务器软件配置文件所在

PhoenixFxp的主要配置文件都存放在软件所在目录的set子目录下,只需要备份这个文件,就可以实现对服务器端软件的备份,FxpDbm的配置文件同样存放在这个目录下,对set子目录的备份,同时包含了服务器端2个主要核心软件的数据备份.

12 PhoenixFxp服务器软件的升级

PhoenixFxp没有部署任何后台软件来执行自动更新,因此需要管理员根据需要手动下载新版本,在安装新版本前,建议您备份服务器端软件的set子目录,然后运行新版本安装软件,正常情况下,安装会自动保留并使用原来的配置文件,安装完成后,重新启动新版本的PhoenixFxp软件.

13 PhoenixFxp软件与PhoenixP2P软件的区别

PhoenixP2P软件是一款以无中心P2P组网资源共享为主的软件,基于Phoenix[p2p]和UT库开发,不具备用户权限管理,即使不存在中心服务器,也能够在合适的网络环境下自动组网并实现资源共享,不需要任何登录操作,具备多对多传输加速过程,并且所有客户端除了在传输中的资源能得到加速,已经下载完成的和用户主动添加的资源都可以自动共享并被别的用户下载; UT协议需要对文件预先进行Hash制作后,才能发布共享,对文件的完整性检查很强,可以做到安全的断点续传.

PhoenixFxp软件则是一款有中心的C/S结构的服务器资源发布软件,基于Phoenix[c/s]和UTS库开发,具备强用户管理,完全封闭的网络环境,客户端必须登录到服务器才能获取资源的列表和下载. 传输中的资源能得到目前正在下载的其他客户端的加速,注意,能且只能是正在从服务器下载的资源文件才能得到其他正在下载同一文件的客户端的加速,已经下载完成的文件,是不会共享,更不会给其他用户下载加速,这点和PhoenixP2P是最大的区别,PhoenixP2P能够使用已经下载的文件为其他用户加速,PhoenixFxp使用的是UTS协议,不需要对文件进行Hash制作,这样操作上非常简单,但是它对中断文件的完整性检查很弱,断点续传的安全保障比较低.

14 PhoenixFxp软件与PhoenixP2P如何选择

如果需要各用户彼此共享,并充分发挥P2P,而不考虑资源安全和保密,用户不需要管理,那么建议使用PhoenixP2P; 如果资源只由服务器发布,需要对客户端进行管理,对安全和保密有要求,只需要下载过程使用P2P加速,那么就使用PhoenixFxp.  但是需要注意,无论是PhoenixP2P还是PhoenixFxp,都需要客户端安装对应的软件,而不象Ftp/Http那样操作系统直接可以支持.

15 PhoenixFxp软件的授权

PhoenixFxp是免费软件,无论使用是商用或者个人使用,都彻底免费,无需注册也没有注册一说!

16 FxpDbm软件的使用

FxpDbm是专门针对PhoenixFxp使用的数据库而开发的一套简易的用户数据库浏览和基本管理程序,目的是方便新入门的管理员用户,在没有图形化数据库管理软件的情况下,进行基本的用户管理.请注意,FxpDbm能且只能针对PhoenixFxp配套的数据库表发挥作用,如果您的数据库软件,例如ms sql server等,有更好更强大的图形化数据库表管理程序,我们建议您使用数据库软件本身带的工具进行管理,而FxpDbm只用来进行数据库用户表是否能被PhoenixFxp使用的兼容性测试.

首先要进行参数设置,如果您使用的是默认安装,并且使用自带的FireBird数据库,那么这里的一切都不需要进行调整,默认参数可以识别用户数据库并进行列表操作.

请注意,红框的选择,必须和PhoenixFxp主程序的选择保持一致,否则会引发各种混乱,数据库的连接指令也必须与PhoenixFxp主程序保持一致!!!

修改完成后,请使用右键菜单 刷新列表,及时刷新用户列表,如果数据库服务已经启动,参数设置正确,那么将能否成功连接到数据库并显示已经存在的用户,注意,PhoenixFxp的用户口令都是采用MD5等算法加密后得到的摘要,而不是明文,默认的数据库fxp_expuser2里带了2个示范账户,第一个账户fxptest1用来测试,密码是12345678,第二个账户让用户测试编辑和删除操作,在您熟悉了PhoenixFxp账户管理流程后,建议删除或者禁用这两个随机带的测试账户.

请注意,每一次修改或者添加删除用户等操作,如果没有设置为自动刷新用户列表,必须手动使用主菜单 用户列表 或者鼠标右键菜单 刷新列表,来重新连接数据库文件并获取最新的用户数据列表,不执行是不会显示数据变化的.

使用鼠标右键弹出菜单,可以进行各种管理操作,如果连接到数据库失败,那么下面的信息框内会提示错误信息,常见的错误是, 没有启动数据库服务程序 [不同的数据库需要不同的数据库服务程序,例如FireBird数据库就有2个后台服务进程,如果不启动,是无法连接数据库的], 另外一个是没有安装对应的数据库ODBC驱动,常见于64位windows操作系统,由于默认只携带了ms自己的数据库ODBC驱动,因此任何第三方数据库,要想在64位环境下使用ODBC进行连接,就必须安装对应的数据库ODBC驱动,没有安装驱动,默认的ODBC模式是无法连接的.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



 

 

 

 

 

 

(c) 2011-2016 phoenixp2p.com