Ronan Blog

罗华东的博客 | 永远相信美好的事情即将发生

光猫改桥接模式

2024-11-03 Docs Ronan

该例使用 HG6145D 移动光猫(北京烽火终端)

1.获取超级账户和密码

1.1 获取光猫 MAC 地址

在终端输入:

arp -a

或者查看光猫背后名牌。

1.在输出结果中找到192.168.1.1对应的那一行的“物理地址”,这就是MAC地址,形如“ad-jb-26-73-48-c2”。选中后直接按Ctrl+C复制,再粘贴到记事本等文本工具中。 2.把记录的MAC地址全部全部转换为大写字母,并删除所有横杠(“-”),最终得到12位字符(大写字母和数字)的结果,形如“AFJB267348C2”。

注意: 非Windows操作系统用类似方法查询到的MAC地址中的分隔符可能是冒号而不是横杠,且分隔符之间可能只有1位字符,如“C8:6J:12:3:48:C”,这时需要在所有的1位字符前手动补上一个数字0。总之,最终的结果是一串12位的大写字母和数字。

1.2 开启光猫Telnet

在浏览器地址栏输入如下URL,记得在末尾添加刚才得到的经过转换的12位MAC地址(无需引号)。

http:/192.168.1.1/cgi-bin/telnetenable.cgi?telnetenable=1&key=“12位大写字母和数字”

输入的最终URL形如:

http:/192.168.1.1/cgi-bin/telnetenable.cgi?telnetenable=1&key=AFJB267348C2

输入完成后按下回车访问该URL,应该看到“Telenet开启”的提示。若提示错误,请检查输入的url和转换后的MAC地址是否正确。

如遭遇错误, mac 地址如果尾数是0,要加1。


2.通过Telnet获取超级账户名和密码

如果使用 windows ,可能需要提前开启 telnet 功能: 打开开始菜单,搜索“启用或关闭”,在结果中找到“启用或关闭 Windows 功能”并打开,勾选“Telnet客户端”后确定,等待Windows完成Telnet功能的开启。 windows_telnet

在终端输入并回车以下内容并回车:

telnet 192.168.1.1

界面会显示“login:”字样。在其后面输入以下内容并回车:

admin

1.界面会显示“password:”。在其后输入密码,密码为“Fh@”加上刚才转换的MAC地址的后6位,形如“Fh@7348C2”。注意MAC地址的字母在这里同样要大写,且密码输入界面不会显示输入的情况,需要盲打。密码输入完成后回车。 2.界面会显示一个“#”或“$”符号。这时输入如下内容(每输入一行就回车):

load_cli factory
show admin_name
show admin_pwd

得到的结果如下图所示,其中“admin_name=”后面接上的就是超级账户,“admin_pwd=”后面接上的就是超级密码,注意账户名和密码都区分大小写。 su


3.获取宽带账户名和密码

⚠️在没有明确获取宽带账号和密码前,请别急着把光猫改桥接,因为没有宽带账号和密码就无法在路由器拨号上网。后续要找回宽带账号密码比较麻烦。

在安装宽带时,师傅可能只会提供宽带账户名而不告诉宽带密码(理由可能是“现在都是自动下发的”、“我们也不知道”等等)。而更改光猫为桥接后需要在路由器手动拨号上网,这就需要知道宽带密码。可以尝试询问中国移动的宽带客服获取密码,但在拥有光猫的超级账户之后,不用联系客服也能找到记录在光猫中的宽带密码。

1.在浏览器地址栏输入 192.168.1.1 (不同光猫可能地址不同,具体请查看其背后铭牌)并回车,然后用刚才获取到的超级账户登录光猫管理后台。

2.切换到“网络-宽带设置“页面。首先查看 “连接模式” 的模式和 “业务类型” 的类型,如果是 路由管理且处于不能编辑状态,则在 “连接名称” 一个一个切换,直到看到 “连接模式” 中的路由可以编辑以及 “业务类型” 中的类型是 上网 ,此时的 “封装类型” 应该是 PPPoE ,宽带用户名和密码输入框会显示在当前界面。 img

Continue reading

在短视频为王的时代,又见识到了文字带给我的冲击力

2024-10-31 Society Ronan

不知道从什么时候起,村里的人便开始相信,我能修好很多东西。

经常有人找到我,说电视坏了不能看,于是我摸索着上房顶,抱着信号接收器对着天胡乱寻找。最终也都能让电视正常播放,只是耗时或长或短罢了。有时候是冬天,我把信号接收锅上的雪扫干净,电视就恢复正常了。于是便夸我聪明,接着就老生常谈地讲,他们就是吃了没文化的亏,最后斩钉截铁地说,不读书的人都是傻瓜。

村里有很多老人,几乎都有老年机,但大多数只能记住接听键——只会接听,不会打,更不用说播放音乐之类的了。我坐在家里,听见狗在狂吠,出门打探时见村里的老人在门口尴尬地苦笑,便知道是他(她)的手机或者电视坏了,因为比这更大的事情,就应该找我家里的长辈了。我出门修理,耗时或长或短,也几乎都能修好。有时候问题异常地简单,比如不小心按了静音键,比如不小心切换了模式等。记得有一位老妇人,翻越一个山头蹒跚走来。我问手机的“症状”。回答说每天半夜会自己唱歌,一打它就停,住手了又唱,怀疑缠上了鬼。我一听就知道,是不小心定了个闹钟,但见她表情凝重,强忍着没笑出来,不一会儿定神一想,竟然感觉一阵悲凉。

我无法向他们解释他们遇到的问题是多么的简单。我与他们之间,似乎存在一块无形的屏障。我曾尝试着教会他们一些调整信号接收器的技巧,尝试着教会他们解除静音、调整手机模式的步骤,但最终都无功而返。除了玉米、水稻的种法,其他的他们一概不知,只一个简单得不能再简单的手机按钮也记不住。我没有再强求他们,我害怕让他们觉得我是因为不耐烦而这样。如果这样的误会形成,有些善良的老人,宁愿自己面对半夜的“鬼”,也不愿意再找我。

我其实对如何修理手机一窍不通,如果手机不能开机,我便束手无策。下午在地里收玉米,一位行动不便的老妇人,挪到地里来找我看手机。我久久按住开机键但手机仍然不能开机的时候,我就知道我无能为力了。于是我的眼神不太敢对视她的眼神。我说手机可能坏了,有时间去县城看看。我说这话时,凭借着经验,放轻了语气。99元的手机是她全身上下最值钱的东西,我害怕让她承受太大的打击。我不把话说得太绝对,因为没准,手机明天自己就好了呢。

望着老妇人踉跄远去的背影,我心生难过。我难过,因为那个老妇人,可我不该难过,因为我,也只是一只顶着烈日淌着汗水在玉米地里穿梭的小人儿啊。

摘自:抖音 @小石飞飞

守护进程

2024-10-28 Linux Ronan

守护进程(Daemon Process),也就是通常说的 Daemon 进程(精灵进程),是 Linux 中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。一般采用以d结尾的名字。

1. 进程组

多个进程的集合就是进程组, 这个组中必须有一个组长, 组长就是进程组中的第一个进程,组长以外的都是普通的成员,每个进程组都有一个唯一的组ID,进程组的ID和组长的PID是一样的。

进程组中的成员是可以转移的,如果当前进程组中的成员被转移到了其他的组,或者进制中的所有进程都退出了,那么这个进程组也就不存在了。如果进程组中组长死了, 但是当前进程组中有其他进程,这个进程组还是继续存在的。下面介绍几个常用的进程组函数:

得到当前进程所在的进程组的组ID

pid_t getpgrp(void);

获取指定的进程所在的进程组的组ID,参数 pid 就是指定的进程

pid_t getpgid(pid_t pid);

将某个进程移动到其他进程组中或者创建新的进程组

int setpgid(pid_t pid, pid_t pgid);
  • 参数:
    • pid: 某个进程的进程ID
    • pgid: 某个进程组的组ID
      • 如果pgid对应的进程组存在,pid对应的进程会移动到这个组中, pid != pgid
      • 如果pgid对应的进程组不存在,会创建一个新的进程组, 因此要求 pid == pgid, 当前进程就是组长了
    • 返回值:函数调用成功返回0,失败返回-1

2. 会话

会话(session)是由一个或多个进程组组成的,一个会话可以对应一个控制终端, 也可以没有。一个普通的进程可以调用 setsid() 函数使自己成为新 session 的领头进程(会长),并且这个 session 领头进程还会被放入到一个新的进程组中。先来看一下 setsid() 函数的原型:

#include <unistd.h>

// 获取某个进程所属的会话ID
pid_t getsid(pid_t pid);

// 将某个进程变成会话 =>> 得到一个守护进程
// 使用哪个进程调用这个函数, 这个进程就会变成一个会话
pid_t setsid(void);

使用这个函数的注意事项:

1.调用这个函数的进程不能是组长进程, 如果是该函数调用失败,如果保证这个函数能调用成功呢? - 先fork()创建子进程, 终止父进程, 让子进程调用这个函数 2.如果调用这个函数的进程不是进程组长, 会话创建成功 - 这个进程会变成当前会话中的第一个进程,同时也会变成新的进程组的组长 - 该函数调用成功之后, 当前进程就脱离了控制终端,因此不会阻塞终端

Continue reading
Older posts Newer posts