网络接口
常见并且常用的网络接口有:
- 网卡
- 网桥
网络接口的配置推荐去配置文件中做相应的修改,不推荐使用命令行!
命令介绍
最好的参考就是命令自带的help命令,记得使用!
ip
参考:ip命令
ip命令用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道,是Linux下较新的功能强大的网络配置工具。
ifconfig
参考:ifconfig命令
ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。
brctl
brctl用来配置网桥。
ip link
用来创建网卡、给网络接口配置ip等
常用命令
网桥
1 | brctl addbr br0 #建立一个网桥br0 |
网卡
1 | ifconfig eth0 up #开启网卡 |
配IP
1 | ip add |
网络接口配置文件
- Redhat网卡配置是放在/etc/sysconfig/network-scripts目录下面的一大堆文件里面,修改网络时需要依次修改。如CentOS等。
- Debian系的则是存在/etc/network/interfaces文件里面,无论有多少块网卡,统统扔在这个文件里。如Ubuntu、Debian等。
注意:
- 对接口配置文件做出修改之前,最好备份一下;实际上,对系统的任何配置文件做出修改之前,备份一下是明智的决定,你会感谢自己的这个习惯的,相信我!
- 只要修改了配置文件,就要重启网络服务!
基本排错步骤
- ping 127.0.0.1ping的通说明tcp协议栈没有问题
- ping 主机地址 ping的通说明网卡没有问题
- ping 路由器默认网关 ping的通说明包可以到达路由器
- 最后 ping DNS服务器地址
卡在哪一步,就在那里找具体问题
重启网络服务
一般情况下直接使用系统调用:
1 | systemctl restart network |
即可,但有时会报错,虽然没什么影响,网络服务也确实重启了,但是看着不舒服,这里再单独介绍一下:
CentOS:
好像只有systemctl restart network
Ubuntu:
1 | sudo init.d/networking force-reload |
常见问题解决
共同
接口没有IP的问题
以CentOS为例,其他同理
检查接口是否启动
这种问题一点要先看一下该网络接口的配置文件中 ONBOOT
这一项配置是不是yes
,如果不是,那就是网卡没有启动,将其配置好重启网络服务即可:
1 | systemctl restart network |
这里一般会报一点错误,报错如下
1 | Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details. |
忽略即可,因为网络服务实际上已经重启了
配置IP是分为静态IP和DHCP动态分配IP;
静态IP
若接口配置中的BOOTPROTO
配置如下(CentOS中是这样,Ubuntu不是这种格式)
1 | BOOTPROTO=static |
则为静态IP,这时就需要自己配置IP、网关等,实例代码如下:
Ubuntu:
1 | auto eth0 |
CentOS:
1 | IPADDR=10.0.0.2 |
DHCP
若接口配置中的BOOTPROTO
配置如下:
1 | BOOTPROTO=dhcp |
则为动态分配IP,这时无需自己配置IP、网关等,会自动分配;
若是在这种情况下没有IP,则要看该接口连接的上级是不是没有IP,比如虚拟机中网卡没有IP,并且是DHCP模式,则检查宿主机中与虚拟机用来通信的网桥是不是没有IP!逐级往上找即可,最终定会找到一个问题的源头
Ubuntu
CentOS
CentOS中yum报错问题
报错代码:
1 | Could &arch=x86_64&repo=os&infra=stock was retrieve mirrorlist http://mirrorlist.centos.org/?release=7 |
解决办法:
DNS中添加8.8.8.8
路径在:/etc/resolv.conf
具体实施:
- 法一:vi
/etc/resolv.conf
,添加一行:nameserver 8.8.8.8
- 法二:
echo "nameserver 8.8.8.8" >> /etc/resolv.conf"
添加后重启网络服务