网络接口

常见并且常用的网络接口有:

  • 网卡
  • 网桥

网络接口的配置推荐去配置文件中做相应的修改,不推荐使用命令行!

命令介绍

最好的参考就是命令自带的help命令,记得使用!

ip

参考:ip命令

ip命令用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道,是Linux下较新的功能强大的网络配置工具。

ifconfig

参考:ifconfig命令

ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了

brctl

参考:
brctl ,
Bridge

brctl用来配置网桥。

用来创建网卡、给网络接口配置ip等

常用命令

网桥

1
2
3
4
5
6
7
8
9
brctl addbr br0       #建立一个网桥br0
brctl addif br0 eth0 #为网桥br0添加接口eth0
brctl delif br0 eth0 #删除网桥br0中的eth0网卡接口
brctl delbr br0 #删除网桥br0

brctl show #查看所有网桥及其上的接口

ifconfig br0 up #开启网桥
ifconfig br0 down #关闭网桥

网卡

1
2
3
4
ifconfig eth0 up      #开启网卡
ifconfig eth0 down #关闭网卡
dhclient eth0 #动态分配IP,如果网卡本身是static配置,则会叠加一个IP而非覆盖,重启丢失

配置参考实例:
Ubuntu
CenOS

配IP

1
2
3
4
5
6
7
8
9
ip add 
ip addr add ip_address/subnet_mask [broadcast_address] dev interface #配IP
ip route add default via <默认网关的 IP 地址> #配网关,可以省略
ip link set interface up #启动

ip addr del ip_address/mask dev interface #删IP



网络接口配置文件

  • Redhat网卡配置是放在/etc/sysconfig/network-scripts目录下面的一大堆文件里面,修改网络时需要依次修改。如CentOS等。
  • Debian系的则是存在/etc/network/interfaces文件里面,无论有多少块网卡,统统扔在这个文件里。如Ubuntu、Debian等。

注意:

  1. 对接口配置文件做出修改之前,最好备份一下;实际上,对系统的任何配置文件做出修改之前,备份一下是明智的决定,你会感谢自己的这个习惯的,相信我!
  2. 只要修改了配置文件,就要重启网络服务!

基本排错步骤

  1. ping 127.0.0.1ping的通说明tcp协议栈没有问题
  2. ping 主机地址 ping的通说明网卡没有问题
  3. ping 路由器默认网关 ping的通说明包可以到达路由器
  4. 最后 ping DNS服务器地址

卡在哪一步,就在那里找具体问题

重启网络服务

一般情况下直接使用系统调用:

1
systemctl restart network

即可,但有时会报错,虽然没什么影响,网络服务也确实重启了,但是看着不舒服,这里再单独介绍一下:

CentOS:
好像只有systemctl restart network

Ubuntu:

1
2
sudo /etc/init.d/networking force-reload   #重新加载网路配置文件
sudo /etc/init.d/networking restart

常见问题解决

共同

接口没有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
2
3
4
5
auto eth0
iface ent0 inet static
address 10.0.83.2
netmask 255.255.255.0
gateway 10.0.0.1

CentOS:

1
2
3
4
IPADDR=10.0.0.2
NETMASK=255.255.255.0
GATEWAY=10.0.0.1

DHCP

若接口配置中的BOOTPROTO配置如下:

1
BOOTPROTO=dhcp

则为动态分配IP,这时无需自己配置IP、网关等,会自动分配;

若是在这种情况下没有IP,则要看该接口连接的上级是不是没有IP,比如虚拟机中网卡没有IP,并且是DHCP模式,则检查宿主机中与虚拟机用来通信的网桥是不是没有IP!逐级往上找即可,最终定会找到一个问题的源头

Ubuntu

CentOS

CentOS中yum报错问题

报错代码:

1
2
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"

解决办法:
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"

添加后重启网络服务

评论