这个问题讲真也是比较奇怪的,反正最终原因我是搞不清楚,但是起码能解决了,所以在这记录下,省得有其他人也被坑(我还以为是系统问题,重装了好多次...)

因为某些原因不想用自己那堆/30的IP,所以我单独买了一个IP拿来开小鸡,准备放点小东西,所以这可能也是问题的由来了(猜测),总之,我就这么创建了一个虚拟MAC,然后把VM的网卡配置为这个MAC并开始安装系统,这个过程还是挺正常的,除了在配置网络时选择手动配置,填入的网关被黄色高亮了,我才意识到可能会出问题。但是以往我这么配置的时候并没有遇到啥错误,所以也就一头雾水的继续下去了。

OK,一切顺利,安装完成,重启,恩,然后我尝试使用XShell连接,发现不通。继续从控制台访问,发现系统已经启动正常了,登陆后发现无网络,这特么就很尴尬了。ifconfig输出一切正常,然后顺手route -n看了眼路由?????

咋就个169.254.0.0的辣鸡路由?我的0.0.0.0/0捏?????懵逼,尝试使用service重启网络,然后……特么还报错network unreachable了,这这这,我也是醉了,去看了下ifcfg-eth0中的配置,好像没错啊,这很不给面子啊。于是,我手动加路由

ip route add default via GATEWAY dev eth0
1
iprouteadddefaultviaGATEWAY deveth0

然后...继续报错SIOCADDRT: Network is unreachable ,这尼玛,我母鸡都是这个网关你跟我说不通,interesting哦

换个方式

ip route add default dev eth0
1
iprouteadddefaultdeveth0

然后竟然通了!

ip route change default via GATEWAY dev eth0
1
iproutechangedefaultviaGATEWAYdeveth0

这下也没有报错了,喵喵喵喵喵?

真是有意思了,网上搜了一圈都说要么在ifcfg-eth0中添加GATEWAY=x.x.x.x(然而我本来就有),要么说这是你网关写错了(然而并不可能),这就很尴尬啊,没办法咯

由于修改的路由会被network的重启刷新掉,所以必须找个办法让修改默认路由的命令跟着network一起apply

所以,我们在/etc/sysconfig/network-scripts/ 下新建route-eth0

vi /etc/sysconfig/network-scripts/route-eth0

#之所以先添加一个网关的路由是因为在这个文件中只能选择添加,而不能修改路由,所以无法使用上面的先add然后change的方式

#之所以无法直接运行最上面那条命令,我估计是因为网关的IP本身没有路由,所以我们先对网关的IP加个路由,然后再添加默认路由

GATEWAY/32 dev eth0
default via GATEWAY dev eth0
1
2
3
4
5
6
7
vi /etc/sysconfig/network-scripts/route-eth0

#之所以先添加一个网关的路由是因为在这个文件中只能选择添加,而不能修改路由,所以无法使用上面的先add然后change的方式

#之所以无法直接运行最上面那条命令,我估计是因为网关的IP本身没有路由,所以我们先对网关的IP加个路由,然后再添加默认路由

GATEWAY/32deveth0
defaultviaGATEWAYdeveth0

然后继续使用service重启network,然后一切正常,重启之后依旧没有问题。就这么解决咯