荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: 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软件 网络书店