简介
本文介绍的移动光猫型号为广东移动的烽火HG6201M光猫,主要修改方式为开启telnet,通过命令行的方式修改DNS相关配置,以达到将指定域名解析为内网IP地址,并且防止移动运营商下发配置后将修改后的配置还原。
目的
本人有个黑群晖的NAS,由于没有QC,想通过域名方式访问。在外网访问www.abcabcabc.com这个域名:ipv6方式访问已配置好DDNS,访问的时候通过DDNS解析到群晖网口的ipv6地址;ipv4方式访问已通过vps配置好NPS穿透,解析为vps的地址访问。在内网同样访问www.abcabcabc.com这个域名,通过本文在光猫上配置的DNS解析,直接解析为本地内网ip地址192.168.1.99,以达到通过一个域名内外网无感切换访问群晖的目的。
步骤
1 开启光猫telnet功能并登录
由于开启光猫telnet功能和登录不属于本文重点,此步骤略
(none) login: root
Password:
BusyBox v1.11.3 (2017-11-02 11:00:44 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.
/var # uname -a
Linux (none) 2.6.36-svn273988 #10 SMP Sun Sep 18 01:15:39 CST 2022 mips unknown
/var #
2 检查根文件系统为只读模式
/var # mount
rootfs on / type rootfs (rw)
ubi0:Rootfs on / type ubifs (ro,sync,relatime)
proc on /proc type proc (rw,relatime)
tmpfs on /tmp type tmpfs (rw,relatime)
sys on /sys type sysfs (rw,relatime)
udev on /dev type ramfs (rw,relatime)
/dev/pts on /dev/pts type devpts (rw,relatime,gid=5,mode=620)
ubi1:Appfs on /rom type ubifs (ro,relatime)
/dev/mtdblock7 on /flash type jffs2 (rw,relatime)
/dev/mtdblock8 on /usr/protest type jffs2 (rw,relatime)
/dev/mtdblock9 on /usr/local type squashfs (ro,relatime)
ubi2:plugfs on /osgi type ubifs (rw,sync,relatime)
/dev/mtdblock6 on /data type jffs2 (rw,relatime)
tmpfs on /tmp type tmpfs (rw,relatime)
tmpfs on /var type tmpfs (rw,relatime,size=151816k)
tmpfs on /mnt type tmpfs (rw,relatime)
/dev/loop0 on /osgi/bvasPlugtest type ext2 (rw,relatime,errors=continue)
/var #
其中从ubi0:Rootfs on / type ubifs (ro,sync,relatime) 里面可以看到挂载方式为ro只读挂载
3 重新挂载根文件系统为读写挂载
/var # mount -o remount,rw Rootfs /
4 修改hosts文件,添加www.abcabcabc.com解析到192.168.1.99
/var # vi /etc/hosts
127.0.0.1 localhost
192.168.1.99 www.abcabcabc.com
5 检查/etc目录下resolve.conf文件
从下面可以看到/etc目录下resolve.conf文件为链接文件类型,链接到/var/resolv.conf文件,移动通过下发配置到/var/resolv.conf 文件定期更新DNS地址,因此不管如何修改这个文件,重启或者过一段时间都会被移动还原回来
/var # cd /etc/
/etc # ls -l | grep resol
lrwxrwxrwx 1 502 502 16 Jun 7 2016 resolv.conf -> /var/resolv.conf
lrwxrwxrwx 1 502 502 22 Jun 7 2016 resolv_tr069.conf -> /var/resolv_tr069.conf
lrwxrwxrwx 1 502 502 21 Jun 7 2016 resolv_voip.conf -> /var/resolv_voip.conf
/etc # cat resolv.conf
nameserver 211.136.192.6
nameserver 120.196.165.24
nameserver 2409:8057:2000:2::8
nameserver 2409:8057:2000:6::8
6 添加本地DNS地址192.168.1.1
添加光猫LAN口地址192.168.1.1到resolv.conf文件最前面,这样光猫通过DHCP自动下发DNS地址时,就会将192.168.1.1下发为首选DNS,192.168.1.1会优先解析本地/etc/hosts文件
1) 备份resolv.conf文件
/etc # mv resolv.conf resolv.conf.bak20230709
2) 创建resolv.conf文件并配置文件
# 创建resolv.conf文件
/etc # touch resolv.conf
/etc # ls -l | grep resolv.conf
-rw-r--r-- 1 root root 113 Jul 9 19:37 resolv.conf
lrwxrwxrwx 1 502 502 16 Jun 7 2016 resolv.conf.bak20230709 -> /var/resolv.conf
# 修改resolv.conf文件,添加192.168.1.1到最前面
/etc # vi resolv.conf
nameserver 192.168.1.1
nameserver 211.136.192.6
nameserver 120.196.165.24
nameserver 2409:8057:2000:2::8
nameserver 2409:8057:2000:6::8
# 修改resolv.conf文件权限为只读
/etc # chmod 444 resolv.conf
/etc # ls -l | grep resolv.conf
-r--r--r-- 1 root root 136 Jul 9 19:38 resolv.conf
7 重新挂载根文件系统为只读挂载
/var # mount -o remount,ro Rootfs /
8 重启光猫
测试
内网ping域名测试
C:\Users\TE_PC>ping www.abcabcabc.com
正在 Ping www.abcabcabc.com [192.168.1.99] 具有 32 字节的数据:
来自 192.168.1.99 的回复: 字节=32 时间=3ms TTL=63
来自 192.168.1.99 的回复: 字节=32 时间=3ms TTL=63
来自 192.168.1.99 的回复: 字节=32 时间=3ms TTL=63
来自 192.168.1.99 的回复: 字节=32 时间=3ms TTL=63
192.168.1.99 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 3ms,最长 = 3ms,平均 = 3ms
C:\Users\TE_PC>
外网ping域名测试(分别开启ipv6和禁用ipv6测试)
C:\Users\TE_PC>ping www.abcabcabc.com
正在 Ping www.abcabcabc.com [2409:8b44:5076:da40::7] 具有 32 字节的数据:
来自 2409:8b44:5076:da40::7 的回复: 时间=84ms
来自 2409:8b44:5076:da40::7 的回复: 时间=111ms
来自 2409:8b44:5076:da40::7 的回复: 时间=45ms
来自 2409:8b44:5076:da40::7 的回复: 时间=90ms
2409:8b44:5076:da40::7 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 45ms,最长 = 111ms,平均 = 82ms
C:\Users\TE_PC>ping www.abcabcabc.com
正在 Ping www.abcabcabc.com [218.118.187.241] 具有 32 字节的数据:
来自 218.118.187.241 的回复: 字节=32 时间=285ms TTL=48
来自 218.118.187.241 的回复: 字节=32 时间=302ms TTL=48
来自 218.118.187.241 的回复: 字节=32 时间=299ms TTL=48
来自 218.118.187.241 的回复: 字节=32 时间=281ms TTL=48
218.118.187.241 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 281ms,最长 = 485ms,平均 = 366ms
C:\Users\TE_PC>
注意事项:内网需要默认通过路由器DHCP下发的DNS或者设置光猫LAN口ip地址为DNS,如果指定公网DNS访问,会直接将域名解析为公网IP地址