Linux 踩过的坑系列-01
关于默认网关的添加。记得楼主之前有一次,无意之间,也不知道做了什么删除文件里面内容的操作,配置好静态IP之后上不了外网。翻阅个各种资料都是没有找到问题。最后发现问题在于配置的虚拟机网卡文件的网关打错了。
这里我把GATEWAY打错了。。。大家注意一下,试了很多种方法还是不行的话,肯定是你配置的内容里面出问题了。linux没有那么难!!!
这里就不吹了,既然说到这里,就总结一下默认网关的添加和DNS服务的添加。
默认网关的添加
查看默认路由
[root@centos7 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 ens33 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
这里如果你也跟我一样没有0.0.0.0的这条的话,应该也是没有配置默认网关。。如果你缺失第一个路由,是肯定无法ping通外网的
正确的应该是这样的
[root@centos7 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 ens33 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 ens33 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
1、首先DNS可能被误删了,需要添加(nameserver=8.8.8.8是谷歌提供的免费的DNS服务,还有一个免费的备用的nameserver=8.8.4.4)
# vim /etc/resolv.conf nameserver 114.114.114.114
2、添加路由
# route add default gw 192.168.1.1
这里的网关是怎么来的就不多说了,查看下本机的网关
3、此时可以选择重启网卡
ifdown ens33
ifup ens33
或者重启网络服务
systemctl restart network
ping一下百度
[root@centos7 ~]# ping baidu.com PING baidu.com (123.125.115.110) 56(84) bytes of data. 64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=1 ttl=45 time=57.8 ms 64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=2 ttl=45 time=59.5 ms 64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=3 ttl=45 time=60.5 ms 64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=4 ttl=45 time=61.0 ms 64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=5 ttl=45 time=65.0 ms
完成!
但是!!!!这里的route add default gw 是添加的临时网关,可能关机,挂起虚拟机或者时间稍微长一点就没有用了。
所以这里我们要进行永久的设置。
配置永久的默认网关
1、在网卡配置文件中设置
vim /etc/sysconfig/network-scripts/ifcfg-ens33 # 目录肯定是一样的,但是网卡文件因网卡名不一样会变动
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 TYPE="Ethernet" 2 PROXY_METHOD="none" 3 BROWSER_ONLY="no" 4 BOOTPROTO="static" 5 IPADDR="192.168.1.133" 6 NETMASK="255.255.255.0" 7 GATEWAY="192.168.1.1" 8 DEFROUTE="yes" 9 IPV4_FAILURE_FATAL="no" 10 IPV6INIT="yes" 11 IPV6_AUTOCONF="yes" 12 IPV6_DEFROUTE="yes" 13 IPV6_FAILURE_FATAL="no" 14 IPV6_ADDR_GEN_MODE="stable-privacy" 15 NAME="ens33" 16 UUID="55accfd8-d5f2-46eb-a68d-bc78985101c8" 17 DEVICE="ens33" 18 ONBOOT="yes"
此时重启网络或者网卡就好了
systemctl restart network
第一种方法亲自测试有效!!后面的没有测试,摘录自网友博客
2、在网卡文件目录里面创建一个route-ens33(网卡号)
[root@centos7 ~]# cd /etc/sysconfig/network-scripts/ [root@centos7 network-scripts]# touch route-ens33 [root@centos7 network-scripts]# vim route-ens33
192.168.10.0/24 via 192.168.1.1 192.168.1.0/24 via 192.168.1.1
然后重启网络或者网卡
3、在网卡我嗯见目录创建一个static-routes文件
vi /etc/sysconfig/network-scripts/static-routes (如果没有,就新建文件) 10.0.0.0/8 via 10.*.*.1 gw 10.0.0.254 dev ens160
重启网卡就OK了。
只是后面的两种,我没有测试,刚开始是GETEWAY怎么测都是错的。所以。。。hm。。。
添加DNS
这个就不再废话讲什么临时的DNS。。直接讲永久添加了。
还是网卡文件,既然大家用到linux的东西,还是建议大家记一下网卡路径,真的还是很重要的一个子路径。
/etc/sysconfig/network-scripts/ifcfg-ens33
打开文件直接添加下面内容到末尾
DNS1=8.8.8.8 DNS2=114.114.114.114
然后呢,还是重启网卡。。
2、脚本添加
nmcli con mod * ipv4.dns "dns1 dns2"
service network restart
重启网卡。。
3、传统修改
手动修改/etc/resolv.conf
nameserver 114.114.114.114 nameserver 8.8.8.8
修改 /etc/NetworkManager/NetworkManager.conf 文件,在main部分添加 “dns=none” 选项:
[main] plugins=ifcfg-rh dns=none
重启。