问题
基于 rk3568 芯片编译了一个 debian 系统上,想要配置静态 IP,直接在 /etc/network/interfaces.d/ 下创建了文件,然后编写了配置:
1 | auto eth0 |
结果使用 ip addr 查看的时候,发现 eth0 下存在两个 inet。尝试内网 ping 这个 ip 是通的,但是访问外网的时候发现哒咩。
猜测,要么就是配置文件写错了,要么就是有内鬼……
解决
错误方案
尝试把
auto eth0关掉,还是不行。再检查了一下配置文件,觉得没错;怀疑是
NetworkManager自作主张,给整出来的幺蛾子,直接用systemctl disable了,还是不行;stack overflow上有老哥说要去/etc/sysconfig/network下修改网卡配置,显然不是同一个发行版,别说文件了,连那个目录都不存在;
正解
于是怀疑是否是 dhcpcd 这要老哥给整的,用 systmctl status dhcpcd,实锤~~。log 里明明白白写着 rebinding 然后就从同一个冲突域下的另一个路由器上拿了个 ip 过来。
PS. 以后开发环境的网络也得小心,能用三层交换机隔离开就别拿个二层路由凑合,前前后后折腾将近1h才解决……
后记
以后还是用 nmcli 来配置网络好些,用这个工具可以直接看到当前网卡上的配置,以及查看修改后配置是否生效,这次就是默认走了dhcp拉回来的那个,导致访问不了外网。
1 | nmcli connectiion show eth0 |

