sendcmd命令简单使用方法,对加密配置文件的朋友应该有用。呵呵~
本帖最后由 ericluu 于 2012-8-23 16:39 编辑理论上说这个命令可以让我们完全访问并编辑光猫的配置文件,不管是明文还是加密过,昨天晚上我一直在纠结在telnet里怎样才能修改加密过的配置文件从而启动FTP服务,用sendcmd一下就搞定,重启后FTP就OK了,真心方便啊。
不确定是否有必要,我还是简单提一下常用的语法:
运行方式有两种:
1、telnet进去后直接运行,这是shell的命令。
2、浏览器访问http://192.168.1.1/web_shell_cmd.gch
个人喜欢第二种,相当方便,编辑的结果会自动显示在下面的信息框内。
基本语法:
1、读取全部表名:sendcmd 1 DB all ,输出结果如下(只复制了前10行):
0 DBBase
1 WAND
2 WANCD
3 WANC
4 WANCServList
5 WANCIP
6 WANCIPOpts
7 WANCPPP
8 IPv6IP
9 LAND
10 BrGrp
2、读取指定表详细信息: sendcmd 1 DB p 表名 , 具体表名可以运行上面的命令查看,比方说我想开启的FTP服务,对应的表名是FTPServerCfg。运行结果如下:
<Tbl name="FTPServerCfg" RowCount="1">
<Row No="0">
<DM name="FtpEnable" val="1"/>
<DM name="ServerPort" val="21"/>
<DM name="WanIfEnable" val="0"/>
<DM name="FtpAnon" val="0"/>
<DM name="WanID0" val=""/>
<DM name="WanID1" val=""/>
<DM name="WanID2" val=""/>
<DM name="WanID3" val=""/>
<DM name="WanID4" val=""/>
<DM name="WanID5" val=""/>
<DM name="WanID6" val=""/>
<DM name="WanID7" val=""/>
<DM name="MaxClient" val="5"/>
<DM name="MaxPerIp" val="5"/>
<DM name="MaxRate" val="250000"/>
</Row>
</Tbl>
3、查看当前系统运行的服务状态:sendcmd -pc show , 运行结果如下:
Name APPIDpid instStartedbyName State EchoMsg
/bin/dhcpc 0 10990 wancip_mgr 1 1
pppd 0 10700 wancppp_mgr 1 1
radvd 0 10340 ra_mgr 1 1
dhcp6s 33 837 0 cspd_misc 1 1
upnpd 66 831 0 cspd_misc 1 1
voip 2 830 0 cspd_misc 1 1
telnetd 61 828 0 cspd_misc 1 1
httpd 3 826 0 cspd_misc 1 1
gpon_omci 132 823 0 omci_mgr 1 1
vsftpd 0 822 0 fm_mgr 1 1
dnsmasq 0 721 0 dns_mgr 1 1
cspd 1 402 0 pc 1 1
可以看到我想要的几个服务如telnet,web以及FTP的State都是1,也就是正在运行的状态。
4、修改某个表的某个字段的值:sendcmd 1 DB set 表名 行数 字段名 字段值, 这个命令稍微复杂一点,但也非常容易理解,比方说我想关闭FTP服务,也就是上面示例中的FtpEnable 设置为0就可以了,我们可以看到FTPServerCfg 这个表只有一行,因此RowCount="1" ,那这个命令中的行数这个数字从哪里来呢?FtpEnable字段所在的行数就是<Row No="0"> 这个里面No的值,这里是0,因此最后我们需要运行的命令是: sendcmd 1 DB set FTPServerCfg0 FtpEnable 0 ,呵呵,不知道解释清楚没有。
5、保存对配置文件的修改:我看了一下sendcmd 1 DB 的命令集里有save的方法,因此我想对用set方法进行过修改的地方最好还是保存一下,命令是: sendcmd 1 DB save ,系统会反馈successed, but no output,也就是说运行成功但是没有返回值,这样其他就意味着已经保存成功了。
我想总体对我们来说最有用的估计就是上面几条命令了,希望对各位有用。欢迎讨论。
特别说明,本文是在easehu 大大的帖子 https://www.chinadsl.net/thread-76120-1-1.html 的灵感基础上自己进行的一些深入摸索得到的,感谢easehu的宝贵经验分享。
强烈支持{:soso_e182:}{:soso_e182:} 不错,感谢分享 我想改DNS,如何发命令,请指教,谢谢! zhaosm 发表于 2012-8-24 22:46 static/image/common/back.gif
我想改DNS,如何发命令,请指教,谢谢!
sendcmd 1 DB set DHCPSHostCfg 0 DNSServers2 你想改的DNS地址1
sendcmd 1 DB set DHCPSHostCfg 0 DNSServers3 你想改的DNS地址2
sendcmd 1 DB save
呵呵,建议先备份一次cfg文件。 谢谢,已经改成功了,但还是无法自动获取DNS,改动的如下:
<Tbl name="DHCPSHostCfg" RowCount="1">
<Row No="0">
<DM name="ViewName" val="IGD.LD1.HostCfg"/>
<DM name="LANDViewName" val="IGD.LD1"/>
<DM name="Configurable" val="1"/>
<DM name="ServerEnable" val="1"/>
<DM name="RelayEnable" val="0"/>
<DM name="PoolName" val="defaultpool"/>
<DM name="MinAddress" val="192.168.1.2"/>
<DM name="MaxAddress" val="192.168.1.254"/>
<DM name="ReservedAddresses" val=""/>
<DM name="SubnetMask" val="255.255.255.0"/>
<DM name="DnsServerSource" val="0"/>
<DM name="DNSServers1" val="192.168.1.1"/>
<DM name="DNSServers2" val="202.101.226.69"/>
<DM name="DNSServers3" val="202.101.224.69"/>
<DM name="DomainName" val="zte.com.cn"/>
<DM name="IPRouters" val="192.168.1.1"/>
<DM name="LeaseTime" val="86400"/>
<DM name="UseAllocatedWAN" val=""/>
<DM name="AssociatedConnection" val=""/>
<DM name="PassthroughLease" val="0"/>
<DM name="PassthroughCSP_MACAddress" val=""/>
<DM name="AllowedCSP_MACAddresses" val=""/>
<DM name="DHCPConditionalServing" val="0"/>
<DM name="EnableOpt125" val="0"/>
</Row>
</Tbl>
zhaosm 发表于 2012-8-25 00:22 static/image/common/back.gif
谢谢,已经改成功了,但还是无法自动获取DNS,改动的如下:
我也想知道如何让光猫自动分配dns 感谢分享!!!
把DNSServers1换成你们当地的DNS,把192.168.1.1换到第二个试试。另外,你是用的桥接还是让光猫当路由? ericluu 发表于 2012-8-25 10:20 static/image/common/back.gif
把DNSServers1换成你们当地的DNS,把192.168.1.1换到第二个试试。另外,你是用的桥接还是让光猫当路由?
当路由用,可以拨号,网络应该连通了,可以上QQ,但不能浏览网页。