ericluu 发表于 2012-8-23 16:19:32

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的宝贵经验分享。




jackvvvv 发表于 2012-8-23 18:14:47

强烈支持{:soso_e182:}{:soso_e182:}

阿非 发表于 2012-8-23 18:55:58

不错,感谢分享

zhaosm 发表于 2012-8-24 22:46:29

我想改DNS,如何发命令,请指教,谢谢!

ericluu 发表于 2012-8-24 23:20:14

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文件。

zhaosm 发表于 2012-8-25 00:22:51

谢谢,已经改成功了,但还是无法自动获取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>

雪舞清风 发表于 2012-8-25 08:36:18

zhaosm 发表于 2012-8-25 00:22 static/image/common/back.gif
谢谢,已经改成功了,但还是无法自动获取DNS,改动的如下:




我也想知道如何让光猫自动分配dns

zhughba 发表于 2012-8-25 10:07:22

感谢分享!!!

ericluu 发表于 2012-8-25 10:20:36

把DNSServers1换成你们当地的DNS,把192.168.1.1换到第二个试试。另外,你是用的桥接还是让光猫当路由?

zhaosm 发表于 2012-8-25 15:49:05

ericluu 发表于 2012-8-25 10:20 static/image/common/back.gif
把DNSServers1换成你们当地的DNS,把192.168.1.1换到第二个试试。另外,你是用的桥接还是让光猫当路由?

当路由用,可以拨号,网络应该连通了,可以上QQ,但不能浏览网页。
页: [1] 2 3 4 5 6
查看完整版本: sendcmd命令简单使用方法,对加密配置文件的朋友应该有用。呵呵~