我想在不重启路由器的情况下更改 ISP 路由器上的动态 IP。我已经可以 telnet 到繁忙的盒子 shell 并可以发出以下命令
zebra swapdev printserver ln ebtables cat
wpsd startbsp pppc klog dns busybox
wlancmd sntp ping kill dms brctl
web smbpasswd ntfs-3g iwpriv dhcps atserver
usbserver smbd nmbd iwconfig dhcpc atmcmd
usbmount sleep netstat iptables ddnsc atcmd
upnp siproxd mount ipp date at
upg sh mldproxy ipcheck cwmp ash
umount scanner mknod ip cp adslcmd
tr111 rm mkdir igmpproxy console acl
tr064 ripd mii_mgr hw_nat cms ac
telnetd reg mic ethcmd cli
tc radvdump ls equipcmd chown
switch ps log echo chmod
#
以下是 #top 的输出,其中显示路由器上已在运行哪些进程
PID PPID USER STAT VSZ %MEM %CPU COMMAND
857 856 0 R 1808 3% 0% top
281 1 0 S 4316 7% 0% cms
275 110 0 S 3268 5% 0% mic
279 1 0 S 2916 5% 0% log
854 853 0 S 2908 5% 0% telnet_cli -l 1
541 1 0 S 2512 4% 0% dhcps
565 1 0 S 2260 4% 0% pppc -I ppp257
717 1 0 S 2200 4% 0% dhcpc -i nas0 -I nas0 -a -v HG533FTTx
856 854 0 S 1812 3% 0% sh -si
1 0 0 S 1808 3% 0% init
110 1 0 S 1808 3% 0% -/bin/sh
254 1 0 S 1768 3% 0% atserver
742 1 0 S 1416 2% 0% usbmount
551 1 0 S 1408 2% 0% dns
277 1 0 S 1360 2% 0% klog
539 1 0 S 1104 2% 0% ipcheck
853 275 0 S 1048 2% 0% /bin/telnetd -s 14 -t 0
415 1 0 S 1040 2% 0% wpsd
88 1 0 SW 0 0% 0% [mtdblockd]
4 1 0 SW< 0 0% 0% [khelper]
路由器是华为的HG533
我需要重新启动 dhclient 才能获得新的 ip 地址,而无需重新启动路由器。我不确定 dhclient 使用了什么,我猜是 udhcp。
这两个命令在#ps提供的进程列表中
565 0 576 S pppc -I ppp257
717 0 332 S dhcpc -i nas0 -I nas0 -a -v HG533FTTx<v1.14t>
谢谢
答案1
您可以尝试使用dhcpc
命令释放和续订 DHCP 租约,这可能会给您一个新的 IP 地址,但尽管“动态”一词令人困惑,如果 DHCP 池足够大,可以满足所有发出请求的唯一客户端的需求,DHCP 服务器往往会在配置的 DHCP 租约期限内为同一主机提供相同的 IP 地址。在租约时间的一半时,具有有效租约的客户端将在同一 IP 上续订租约,以促进 IP 参数的持久性。如果 DHCP 服务器在最初租约发出后已重置,则续订请求很可能会得到满足,因为当第一个承租人仍占用该地址时,租约无法成功重新出租给另一个客户端。虽然我已经多年没有研究过 ISP DHCP 配置,但服务器或客户端都没有可用的驱逐或放弃功能。
这是为了防止连接不良的客户端在短时间内从一个 IP 地址跳到另一个 IP 地址,或者在客户端的租约到期后被迫更改 IP 地址时导致很长的会话失败。
答案2
“killall pppc”命令断开 ppp 连接并更新 wan ip。在我的 HG658c 上运行良好。希望在你的路由器上也能运行。