荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: netlife (堕落天使), 信区: Newsoftware
标 题: Serv-U远程控制协议
发信站: 荔园晨风BBS站 (Tue Oct 30 00:03:14 2001), 转信
Serv-U 远程管理协议是标准FTP协议的变形。通过扩充的FTP命令SITE
MAINTENANCE
将连接转成Serv-U维护模式。 其过程如下:
C:连接到Serv-U服务器
R:<< 220 Serv-U FTP Server v3.0 for WinSock ready...
C:>> USER <USER>
R: << User name okay, need password.
C:>> PASS <password>
R:<< User Logged in, proceed.
C:>> SITE MAINTENANCE
R:<< 230-Switching to SYSTEM MAINTENANCE mode.
R:<< 230 Version=1
这里服务器返回使用的控制协议版本,目前为1。
其后的交互使用Serv-U的专用协议,与标准FTP相比,有以下特点。
1。通过在命令前的续行字符,一条命令不再是简单的一行,允许一条命令有多行
数据。
续行字符为空格和减号。其中第一行为命令名,后续行为参数。参数的形式为
<KEY>=<VALUE>。如下例:
<SP>GETBANINFO
为单行命令。其中开始的字符<SP>为空格,代表命令结束。
-COPYUSER
-IP=0.0.0.0
-PortNo=21
-User=test
<SP>NewUser=test1
为多行命令。前几行以'-‘开头,表示还有后续参数,最后一行以空格开始,
表示命令结束。
2。命令的返回遵守标准标准FTP协议。前三个数字为状态码,第四个字符为续行标
志。
除最后一行可以单纯返回一个结果码,和处理信息外,其它行的结果均为
<KEY>=<VAL>形式。如:
200 User=test
200 Group=Power Users
200 User created
有些命令不需要在最后一行返回处理信息。
命令的主返回码与标准FTP一样,可以为2,4,5,9。
2 执行成功
4 执行失败
5 命令错误
9 状态通告<非标准>
3。增加了状态通告信息。通告信息与当前的命令无关。它是服务器的状态改变,
或者是过去命令的结果。通告格式如下:
900-Type: <notification type>
900-<key>: <value>
.....
900 <key>: <value>
通告的格式与标准应答格式类似, 只是在第一行指明通告类别。
在系统刚进入维护模式时,会返回两个通告,Status(服务器状态)和
License(服务器版权信息)通告。
下表为详细的命令与应答格式。大致有以下一个共同点:
1。针对域的命令必须带有IP,PortNo这两个参数,指明所操作的域。
但GETDOMAIN和SETDOMAIN除外。
2。SET???SETUP的命令必须给出所有的属性,未给出的属性将默认为缺省,
从而删除原有属性。
3。有些命令的特定关键字可以出现多次(如有多个权限设定),也可以不出现
(如注释为空)。
4。有些关键字的值有多项数据,这些数据间用'|'隔开。
5。各个关键字的具体含义,请参考Serv-U管理程序,基本上是一一对应关系。
Notifications:
Status: server status
Type==Status
Server=Online/Offline/StopPending
License: License Information --> GETLICENSEINFO
DomainLog: Domain logging data --> GETDOMAINLOG
SpyLog: session spy log data --> GETSPYLOG
GETDOMAINLOG
PARAM
IP, PortNo
Reset: 1/return from start, optianal
RETURN Status
Logged Data send to DomainLog Notification.
DomainLog Notification format:
Line: Logged Message
LogFile: logging file
Reset: 1/return from start
GETUSERSPYLOG
PARAM
User=<sessid>
ID=<spyid>
RETURN Status
Spy Log send to SpyLog Notification
SpyLog Notification format:
ID: <spyid>
User: <sessid>
Line: <fields>
f1: R/Respond C/Client
f2: data
File: <fields>
f1: 0/download 1/upload
f2: size in bytes
f3: time in msec
f4: filename
GETDOMAINLIST
PARAM NONE
RETURN
Domain=<fields>
f1: domain name
f2: IP
f3: PortNo
f4: domain#
f5: #User
f6: #Group
f7: type 1=.INI 2=registry
GETDOMAINSETUP
PARAM
IP, PortNo
RETURN Domain Attribute
ReplyHello=
ReplyHelp=
ReplyNoAnon=
ReplyNoCredit=
ReplySYST=UNIX Type: L8
ReplyTooMany=
ReplyDown=
ReplyOffline=
IPPassive=
SignOnFile=
SignOffFile=
DirChangeMesFile=
DirChangeMesFile2=
LogIPDontLog=
Logfile=
Logging=0
LogSystemMes=1
LogSecurityMes=1
LogGETs=1
LogPUTs=1
LogIPNames=0
LogFTPCommands=0
LogFTPReplies=0
LogWinSock=0
LogAccessDLL=0
LogMaintenance=0
LogFileSystemMes=1
LogFileSecurityMes=1
LogFileGETs=1
LogFilePUTs=1
LogFileIPNames=0
LogFileFTPCommands=0
LogFileFTPReplies=0
LogFileWinSock=0
LogFileAccessDLL=0
LogFileMaintenance=0
MaxNrUsers=10
MDTMCanChange=1
MDTMPastOnly=0
EnablePassive=1
LogFileRotation=None
RatioFree=<DIR>, may have multiple instant
IPAccess=<fields>,may have multiple instant
f1: A/Allow D/Deny
f2: IP/range
VirPath=<fields>,may have multiple instant
f1: physical Path
f2: mapped to
f3: virtual name
Link=<fields>,may have multiple instant
f1: path
f2: name
f3: destination
SETDOMAINSETUP
PARAM
IP, PortNo
Other _ALL_ Domain Attributes
RETURN Status
GETDOMAIN
PARAM
IP, PortNo, optional
Domain: domain name, optional
must select one group parameter
RETURN Domain Information
Domain: domain name
IP: IP
PortNo: PortNo
DomainID: domain#
NoUsers: #User
NoGroups: #Group
Store: StorIni/StorRegistry
SETDOMAIN
PARAM
Domain: <fields>
f1: name
f2: IP
f3: Port
f4: id, -1 if create domain
f5: store, 1=.INI/2=Registry
RETURN
DomainID: if create domain
Status
DELETEDOMAIN
PARAM
IP, PortNo
RETURN Status
GETGROUPLIST
PARAM
IP, PortNo
RETURN
Group=<group name>
GETUSERLIST
PARAM
IP, PortNo
RETURN
User=<fields>
f1: user name
f2: status 0/disable 1/enable
GETUSERSETUP
PARAM
IP, PortNo, User
OldUser: for rename User
RETURN User Attributes
User=
Password=empty,cleartext,<<Encrypted>> for encrypted
HomeDir=
LoginMesFile=
Disable=0
RelPaths=1
HideHidden=0
AlwaysAllowLogin=0
ChangePassword=0
QuotaEnable=0
MaxUsersLoginPerIP=1
SpeedLimitUp=66560
SpeedLimitDown=148480
MaxNrUsers=1
IdleTimeOut=600
SessionTimeOut=300
Expire=1006358400
RatioUp=1
RatioDown=1
QuotaCurrent=0
QuotaMaximum=0
Expire=0
RatiosCredit=0.000000
Maintenance=None/Group/Domain/System/ReadOnly
PasswordType=Regular
Ratios=None,OTP S/KEY MD4,OTP S/KEY MD5
EncryptPasswords=1
Access=<fields>, may have multiple instant
f1: directory
f2: rights
IPAccess=<fields>,may have multiple instant
f1: A/Allow D/Deny
f2: IP/range
Group: <group>,may have multiple instant
Note=note, may have multiple instant
SETUSERSETUP
PARAM
IP, PortNo, User
OldUser: for rename User, optional
Other _ALL_ User attributes
Password is clear text or <<Encrypted>> for unchanged
RETURN Status plus
User: new user name
Group: <group>, may have multiple instant
DELETEUSER
PARAM
IP, PortNo, User
RETURN Status
COPYUSER
PARAM
IP, PortNo, User, NewUser
RETURN Status
GETGROUPSETUP
PARAM
IP, PortNo, Group
Group Attribute
Group: group name
Access=<fields>, may have multiple instant
f1: directory
f2: rights
IPAccess=<fields>,may have multiple instant
f1: A/Allow D/Deny
f2: IP/range
Note=note, may have multiple instant
SETGROUPSETUP
PARAM
IP, PortNo, Group
OldGroup: for rename Group
Other _ALL_ Group attributes
RETURN Status plus
Group: new group name
DELETEGROUP
PARAM
IP, PortNo, Group
RETURN Status
COPYGROUP
PARAM
IP, PortNo, Group, NewGroup
RETURN Status
GETSERVERSETUP/SETSERVERSETUP
Server Attribute
Security=1
AntiHammer=0
EncryptPasswords=1
CheckAnonPass=0
DeletePartialUploads=0
LowerCaseFileDir=0
BlockAntiTimeOut=0
BlockFTPBounceAttack=0
DirCacheEnable=1
PacketTimeOutDynamic=1
SocketInlineOOB=0
SocketKeepAlive=0
SocketNoNagle=0
PASVPortStart=0
PASVPortRange=0
MaxNrUsers=-1
DirCacheSize=25
DirCacheTime=600
OpenFilesUploadMode=0
OpenFilesDownloadMode=0
AntiHammerWindow=30
AntiHammerTries=4
AntiHammerBlock=300
SocketRcvBuffer=8192
SocketSndBuffer=8192
PacketTimeOut=300
SpeedLimit=-1
DirListMask=rw-rw-rw-
GETDIRCACHEINFO
PARAM NONE
RETURN
CacheHitRate=0
CacheEntry=<fields>, may have multiphe instant
f1: # hits
f2: idle time
f3: size
f4: directory
f5: user
f6: domain at ip:port format
GETSTATUSINFO
PARAM NONE
RETURN
StatBandwidth=0
StatMaxSockets=32767
StatCurSockets=4
StatTransfers=0
StatMaxUsers=-1
StatTotalUsers=1
StatAnonUsers=0
DIRCACHEFLUSH
PARAM NONE
RETURN Status
GETSESSIONLOG
PARAM NONE
RETURN
Line: Logged Message
LogFile: logging file
GETUSERINFO
PARAM optional
IP, PortNo
RETURN
Info=<fields>
f1: user name
f2: server_ip:server_port
f3: mode 0=normal 1=admin
f4: client ip
f5: client hostname
f6: current command
f7: current dir/file
f8:
f9: start time
f10: elapse time
f11: idle time
f12: uploaded bytes
f13: downloaded bytes
f14: speed
f15: upload speed
f16: download speed
f17:
f18:
f19: upload #
f20: download #
f21: session id
f22: quota status 0/disable 1/enable
f23: current quota(M.000000)
f24: maximum quota(M.000000)
f25: credit type 0/disabled 1/file 2/bytes 3/af 4/ab
f26: credit value
GETBANINFO
PARAM NONE
RETURN
Info=<fields>
f1: Banned IP
f2: seconds remain
f3: #hits
SERVERCOMMAND
PARAM
IP=for block/unblock IP
Time: time in minute, for block IP
ID: session id, for stop file transfer
Command:
StopNow: stop server immediately
StopWaitUsers: stop server after user logoff
StopWaitXfers: stop server after transfer completely
Online: set server to online
Offline: set server to offline
BlockIP: ban ip
UnBlockIP: unban ip
FlushBlockIP: unban all
StopXfer: Stop file transfer, per session
KICKUSER
PARAM
ID=<sessid>
Note=<reason>
RETURN Status
SENDMESSAGE
PARAM
ID=<sessid>, -1 for broadcast
LINE=messages
GETLICENSEINFO
PARAM NONE
RETURN
DaysLeft:
Status: KeyValid
RegistrationKey:
User:
EMail:
Reseller:
Time:
Type:
Size:
Days:
MajorVersion: 3
MinorVersion: 0
CurAccounts: 4
MaxAccounts: -1
CurDomains: 2
MaxDomains: -1
MaxNrUsers: -1
VirPath: 1
DiskQuota: 1
Ratios: 1
RemoteAdmin: 1
SETLICENSEINFO
PARAM:
RegistrationKey: reg key, empty remove key
RETURN Status
MASTERWIZARD
for server first installation
几个常见操作:
1。以某个用户为模板创建新用户
-COPYUSER
-IP=<addr>
-PortNo=<port>
-User=<template user>
NewUser=<desire user>
2。更名用户
-GETUSERSETUP
-IP=<addr>
-PortNo=<port>
User=<template user>
取得所有用户的信息。
-SETUSERSETUP
-IP=<addr>
-PortNo=<port>
-OldUser=<old user name>
-User=<new user name>
-all other user informations
3。修改密码或其它用户信息。
-GETUSERSETUP
-IP=<addr>
-PortNo=<port>
User=<template user>
取得所有用户的信息。改变Password或其它信息
-SETUSERSETUP
-IP=<addr>
-PortNo=<port>
-User=<user name>
-all other user informations
4。踢连接
GETUSERINFO
检查要踢的连接ID。
-KICKUSER
-ID=<session id>
Note=<reason>
5。中止某个下载
GETUSERINFO
检查要处理的连接ID。
-SERVERCOMMAND
-ID=<session id>
Command=StopXfer
6。封IP
-SERVERCOMMAND
-IP=<first ip>-<last ip>
-Time=<duration>
Command=BlockIP
--
提供光盘刻录服务
-----------------------------------------------
数据光盘 音乐光盘 视频光盘 光盘复制
☆netlife已死,请别为我伤心,朋友!☆
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.48.13]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店