Linux系统网络属性和基本配置

来源:互联网 发布:淘宝代理货源平台 编辑:程序博客网 时间:2024/06/06 01:18

这里写图片描述

一、网络属性概念

在计算机网络中,主机想要连接上互联网,就必须配置IP地址、子网掩码、网关、路由、DNS服务器地址和主机名等属性。

  • IP地址主要用于确定自身所处的网络,以及对方主机是否与本主机是否在同一网络当中。
  • 子网掩码是与IP地址按位进行“与”运算得到主机所在的网段地址,可快速确定用户主机所在网络。配置好IP地址和子网掩码可以实现本地通信。
  • 网关主要用于本机与其他网络主机通信使用。
  • 路由是建立路径条目,分为三种:
    1.网络路由:目标是一个网络
    2.主机路由:目标是一个主机
    3.默认路由:目标是所在非本地网络,通常默认路由的下一跳为主机上某某块网卡的网关地址。
  • DNS服务器地址主要使用户对域名进行解析,其中包括:
    1.主DNS服务器
    2.备用DNS服务器
    3.第三备用DNS服务器

二、网络属性配置

在配置参数信息之前我们可以先通过命令获取一下网卡的信息,确定要对哪一块网卡进行配置。

[root@ ~]$dmesg | grep -i eth0[    1.206705] e1000 0000:02:01.0 eth0: (PCI:66MHz:32-bit) 00:50:56:26:35:44[    1.206715] e1000 0000:02:01.0 eth0: Intel(R) PRO/1000 Network Connection

查看网卡芯片的数据信息:

[root@ ~]$lspci | grep -i eth 02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)

获得了网卡信息之后就可以对网卡进行相关参数的配置了,配置IP以及Netmask有两种方式:手工指定地址(静态IP)和动态获得(DHCP服务器分配)

本文主要是配置静态IP的配置

1、ifconfig

查看接口:ifconfig[interface]        -a包括未激活状态的所有接口
[root@ ~]$ifconfigens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        inet 192.168.25.15  netmask 255.255.255.0  broadcast 192.168.25.255        inet6 fe80::9495:167:3cbf:1a97  prefixlen 64  scopeid 0x20<link>        ether 00:50:56:26:35:44  txqueuelen 1000  (Ethernet)        RX packets 1031  bytes 109212 (106.6 KiB)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 548  bytes 92132 (89.9 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536        inet 127.0.0.1  netmask 255.0.0.0        inet6 ::1  prefixlen 128  scopeid 0x10<host>        loop  txqueuelen 1  (Local Loopback)        RX packets 0  bytes 0 (0.0 B)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 0  bytes 0 (0.0 B)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

CentOS7上的网卡默认命名方式是ens,传统的命名方式是eth

启用或禁用网卡:

ifconfig IFNAME up|downifup IFNAME   也可以启用ifdown IFNAME 也可以禁用

设置IP地址:
ifconfig IFNAME IP/Netmask [up]

注意:CIDR格式的掩码,类似172.16.0.1/24

示例:

[root@ ~]$ifconfig lo 6.6.6.6/24[root@ ~]$ifconfig lolo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536        inet 6.6.6.6  netmask 255.255.255.0        inet6 ::1  prefixlen 128  scopeid 0x10<host>        loop  txqueuelen 1  (Local Loopback)        RX packets 1  bytes 180 (180.0 B)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 1  bytes 180 (180.0 B)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

或者使用
ifconfig IFNAME IP netmask Netmask

注意:完整格式的掩码,即类似255.255.0.0

示例:

[root@ ~]$ifconfig lo 7.7.7.7 netmask 255.255.255.0[root@ ~]$ifconfig lolo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536        inet 7.7.7.7  netmask 255.255.255.0        inet6 ::1  prefixlen 128  scopeid 0x10<host>        loop  txqueuelen 1  (Local Loopback)        RX packets 1  bytes 180 (180.0 B)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 1  bytes 180 (180.0 B)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

设定的地址会立即送往内核,因此会立即生效,但不会永久生效

2、ip

通过ip命令来配置网卡IP地址参数

ip [ OPTIONS ] OBJECT { COMMAND|help }    OBJECT:{ link | addr | route }      link:链接接口,如eth0、ens33      addr:管理接口上的地址     route:管理路由
set:设定接口属性ip link set DEVICE{up|down}:启动或禁用接口;promisc{on|off}:是否支持混杂模式;name NEWNAME:设定接口使用新名字;show:显示接口状态,例如启动的特性,HWADDR等;IP link show[DEVICE],如显示eth0网卡的相关硬件信息;示例:Not enough information: "dev" argument is required.[root@ ~]$ip link set lo down[root@ ~]$ip link set lo name loopback[root@ ~]$ip link set loopback up[root@ ~]$ip link show loopback1: loopback: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

addr:

add:添加地址del:删除地址    ip addr {add|del} IDADDR dev STRING示例:[root@ ~]$ip addr add 6.6.6.6/24 dev loopback[root@ ~]$ip addr show loopback              1: loopback: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00    inet 127.0.0.1/8 scope host loopback       valid_lft forever preferred_lft forever    inet 6.6.6.6/24 scope global loopback       valid_lft forever preferred_lft forever    inet6 ::1/128 scope host        valid_lft forever preferred_lft forever

route:

list|show:显示路由     ip route listadd:添加路由     ip route add DESTINATION via GATEWAY [dev IFNAME]示例:[root@ ~]$ip route add default via 172.18.0.1   [root@ ~]$ip route listdefault via 172.18.0.1 dev ens37 172.18.0.0/16 dev ens37  proto kernel  scope link  src 172.18.254.108  metric 100 192.168.25.0/24 dev ens33  proto kernel  scope link  src 192.168.25.15 192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1 del:删除路由     ip route del DESRINATION示例:[root@ ~]$ip route del default via 172.18.0.1[root@ ~]$ip route list172.18.0.0/16 dev ens37  proto kernel  scope link  src 172.18.254.108  metric 100 192.168.25.0/24 dev ens33  proto kernel  scope link  src 192.168.25.15 192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1 

3、TUI

通过文本命令的方式执行程序,而不是通过图形界面窗口的点击按钮的方式,具体操作如下:

CentOS6

在命令行输入setup命令:
这里写图片描述

选择 Network Configuration

这里写图片描述
选择 Device configuration

这里写图片描述

选择需要配置的网卡

这里写图片描述

填写需要配置的参数

这里写图片描述

参数填好后点击“OK”按钮

这里写图片描述

选择“Save”按钮保存

CentOS7

在命令行中输入nmtui(类似CentOS6的setup工具,但只能编辑链接、启用或禁用连接、更改主机名)
这里写图片描述

Edit a connection

这里写图片描述

选择需要配置的网卡,回车

这里写图片描述

填写需要编辑的参数

这里写图片描述

填写完后,选贼“OK”按钮,然后退出即可

需要注意的是,在更改完成之后,需要重启网络服务,配置才能生效;

CentOS6系统需要执行:

service network restart

CentOS7系统需要执行:

systemctl restart network

或者

systemctl restart network.service

4、通过修改配置文件

每个网络接口都有一个配置文件/etc/sysconfig/network-scripts/ifcfg-IFNA ME,我们可以通过编辑这个配置相应的参数信息,配置文件中有以下几项:

TYPE=EthernetBOOTPROTO=noneDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens33UUID=c5f8717e-9402-440d-9092-3cac375d705cDEVICE=ens33ONBOOT=yesIPADDR=192.168.25.15PREFIX=24GATEWAY=192.168.25.1DNS1=192.168.25.1IPV6_PEERDNS=yesIPV6_PEERROUTES=yesUSERCTL=no

常用的参数说明

TYPE:设备类型,通常有“Ethernet”,“Bridge”;
BOOTPROTO:启动此设备时使用的配置协议,取值有static(手动配置)、none(手动配置)、dhcp或bootp(动态配置);
DEFROUTE:默认路由;
IPV6INIT:是初始化ipv6协议地址;
HWADDR:网卡的MAC地址,此地址应该与网卡ROM中的固定地址一致;
NM_CONTROLLED:NM即NetworkManager的简写,建议设定为no;
UUID:网卡设备的唯一识别号;
DEVICE:此配置文件所关联到的设备,其值通常应该ifcfg-IFNAME中的IFNAME
ONBOOT:此设备是否随OS启动而激活;
IPADD:此接口的IP地址;
NETMASK:子网掩码;
PREFIX:子网掩码位数;
GATEWAY:网关;
DNS1:DNS服务器指向的主DNS服务器;
DNS2:备用DNS服务器地址;
DNS3:第三备用DNS服务器地址
USERCTL:是否允许普通用户管理此接口;
PEERDNS:当BOOTPROTO的值为dhcp时,是否允许dhcp服务器提供的dns服务指向覆盖本地手动配置的DNS服务器指向;

注意重启网络服务后方能生效,操作命令前面已经给出。

6、配置DNS参数

除了上面所说的几种方法外常用的还有通过修改DNS地址的配置文件 /etc/resolv.conf,该文件当中可以设置多个DNS地址,格式如下:

[root@ ~]$vim /etc/resolv.conf# Generated by NetworkManagersearch ghynameserver 172.18.0.1       #主DNS服务器地址nameserver 8.8.8.8          #备用DNS服务器地址那么server  114.114.114.114  #第三备用DNS服务器地址

注意:修改或配置dns地址配置是不需要重启网络服务的。

7、路由管理

上面提到过的,主机要想访问其他网络就必须有网关和相应的路由信息,网关的配置我们已经讲解了,接下来我们了解一下通过route命令来管理路由。

(1) 查看本机内核路由表:route :
-n:以数字格式显示地址

[root@ ~]$route Kernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Ifacedefault         gateway         0.0.0.0         UG    100    0        0 ens37172.18.0.0      0.0.0.0         255.255.0.0     U     100    0        0 ens37192.168.25.0    0.0.0.0         255.255.255.0   U     0      0        0 ens33192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0[root@ ~]$route -n        #注意观察加-n后的差别Kernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface0.0.0.0         172.18.0.1      0.0.0.0         UG    100    0        0 ens37172.18.0.0      0.0.0.0         255.255.0.0     U     100    0        0 ens37192.168.25.0    0.0.0.0         255.255.255.0   U     0      0        0 ens33192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

(2)添加路由:新增路由条目,用户告诉本机至某目标网络或者主机要经由的下一跳路由

route add [-net|-host] TARGET gw GATEWAY [dev IFNAME]    -net 后面需要跟一个网络地址,表示网络路由    -host 后面需要跟一个主机地址, 表示主机路由示例:到达192.168.0.0/24网络,经由172.18.0.1网关;[root@ ~]$route add -net 192.168.0.0/24 gw 172.18.0.1[root@ ~]$route -nKernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface0.0.0.0         172.18.0.1      0.0.0.0         UG    100    0        0 ens37172.18.0.0      0.0.0.0         255.255.0.0     U     100    0        0 ens37192.168.0.0     172.18.0.1      255.255.255.0   UG    0      0        0 ens37192.168.25.0    0.0.0.0         255.255.255.0   U     0      0        0 ens33192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0到达主机192.168.1.1 经由172.18.0.1网关;[root@ ~]$route add -host 192.168.1.1 gw 172.18.0.1[root@ ~]$route -nKernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface0.0.0.0         172.18.0.1      0.0.0.0         UG    100    0        0 ens37172.18.0.0      0.0.0.0         255.255.0.0     U     100    0        0 ens37192.168.0.0     172.18.0.1      255.255.255.0   UG    0      0        0 ens37192.168.1.1     172.18.0.1      255.255.255.255 UGH   0      0        0 ens37192.168.25.0    0.0.0.0         255.255.255.0   U     0      0        0 ens33192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0设置默认网关:route add -net 0.0.0.0 gw 172.18.0.1route add default gw 172.18.0.1

(3)删除路由:

route del [-net|host] TARGET gw GATEWAY [dev IFNAME]示例:删除配置的默认路由[root@ ~]$route del -net 0.0.0.0 gw 172.18.0.1[root@ ~]$route -nKernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface172.18.0.0      0.0.0.0         255.255.0.0     U     100    0        0 ens37192.168.0.0     172.18.0.1      255.255.255.0   UG    0      0        0 ens37192.168.1.1     172.18.0.1      255.255.255.255 UGH   0      0        0 ens37192.168.25.0    0.0.0.0         255.255.255.0   U     0      0        0 ens33192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

注意:所有配置立即发往内核中的协议栈,所以立即生效,不会永久生效;如果想要永久生效,就需要修改配置对应静态的配置文件,配置文件可以通过两种方式进行修改。(配置文件的路径问 /etc/sysconfig/network-scripts/route-IFNAME)

配置方式一:每一刚定义个路由条目格式:DESTINATION via GATEWAY     192.168.0.0/24 via 172.18.0.2     192.168.1.1 via 172.16.0.3配置方式二:每三行定义一条路由条目格式:    ADDERSS#=    NETMASK#=    GATEWAY#=示例:    ADDRESS1=192.168.0.0    NETMASK1=255.255.255.0    GAATEWAY1=172.18.0.2

注意:两种方式不能混合使用

8、更改主机名

更改主机名也是既可以通过命令配置,也可以通过修改对应的配置文件来定义。

(1) 首先通过命令方式:hostname命令

hostname NEWNAME 可以更改当前主机名

[root@ ~]$hostname www.test.com[root@ ~]$hostname     www.test.com

此方式可以立即生效,如果想看到效果,需要退出当前专断重新登录即可

(2)还可以通过修改内核参数:/proc/sys/kernel/hostname来定义主机名

[root@ ~]echo "www.test.com" > /proc/sys/kernel/hostname

此方式立即生效,如果想看效果,需要退出当前专断重新登录即可

(3)通过修改配置文件:/etc/sysconfig/network 和 /etc/hosts

在/etc/sysconfig/network文件当中修改 HOSTNAME=www.test.com 即可;在/etc/hosts 文件当中添加(注意这里是添加,不是修改)本机IP与主机名的对应关系cat /etc/hosts127.0.0.1   www.test.com localhost localhost.localdomain localhost4 localhost4.localdomain4172.18.25.15 www.test.com

单独修改/etc/sysconfig/network 文件中的内容就跟更改了主机名,但是这样名字最燃改了,如果没有外部DNS配合,自己找不到自己的名称地址,会很怪异,因此当通过配置文件来修改主机名的时候,同时将两个文件一起修改。

注意:通过修改配置文件来修改该主机名不会立即生效,需要重启系统火锅source配置文件,然后重新登录即可,可以永久生效知道下一次修改主机名。


三、网络管理中常用工具

1、ping

检测目标朱姐网络是否可达,以及相关网络延时

2、traceroute IP

探测到达目标主机中间所经过网关设备

3、mtr HOST

合并ping与traceroute命令的功能的网络诊断工具

4、netstat和ss

网络状态探测工具

netstat:

-r:显示路由表
-n:数字显示,不反解ip地址至主机名;
-t:tcp协议的相关连接
-u:udp协议的相关连接
-l:显示处于监听状态(即等待别点进程连接访问)
-a:显示所有连接,对于tcp而言即处于各种状态
-p:显示相关连接的关联到的进程的名字及PID;
常用组合:-rn、-tnl、-unl、-tunl、-tan、-tnlp

ss:

-t:tcp协议的相关连接
-u:udp协议的相关连接
-n:数字格式
-l:显示处于监听状态
-a:显示所有连接
-m:显示所有使用信息
-o stat {establishes|fin_wait_1|fin_wait_2|listening}
常用组合:-tnl、-unl、-tan、-tunl、tnlp