返回顶部

Linux 网络属性配置

IP地址分类

IP地址分为5类,A,B,C,D,E,其中D和E在工作中不会使用

A类地址

第一段为网络号,后三段为主机号;

有效的网络号:0 000 0000 - 0 111 1111 = 1 -127

网络数量:126个,127被用作回环地址;

每个网络中的主机数量:2^24-2,减去全为0和全为1的;

默认子网掩码:255.0.0.0, /8;子网掩码用于与IP地址按位进行与运算,从而取出其网络地址(根据网络地址可以判断出网络是否属于同一网段)

私网地址:10.0.0.0/255.0.0.0

B类地址

前两段为网络号,后两段为主机号;

有效的网络号:10 00 0000 - 10 11 1111 = 128-191

网络数量:2^14

每个网络中的主机数量:2^16-2

默认子网掩码:255.255.0.0, /16;

私网地址:172.16.0.0 - 172.31.0.0

C类地址

前三段为网络号,最后一段为主机号;

有效的网络号:110 0 0000 - 110 1 1111 = 192-223;

网络数量:2^21

每个网络中的主机数量:2^8-2;

默认子网掩码:255.255.255.0 , /24 ;

D类地址

1110 0000 - 1110 1111 = 224-239

E类地址

240-255

注意:IP地址中主机位全为1的表示广播地址;主机位全为0的表示网络地址;

配置Linux主机接入网络

  1. 本地通信:配置IP/NETMASK(子网掩码)

  2. 跨网络通信:配置路由(网关);

  3. 基于主机名通信:配置DNS服务器地址,Linux系统可以配置三个DNS指向;

静态指定

ifcfg系列

 

  1. ifconfig:配置IP,子网掩码;

  2. route:配置路由;

  3. netstat:状态及统计数据查看工具;

iproute2系列 

  1. ip OBJECT

  2. addr:地址和掩码

  3. route:路由

  4. link:接口

Centos7专用

  • nmcli(命令行工具)
  • nmtui(图形化工具)

配置文件方式:redhat及相关发行版

# 网络配置
/etc/sysconfig/network-scripts/ifcfg-NETCARD_NAME
# DNS配置
/etc/resolv.conf
# 主机名配置
hostname
配置文件:/etc/sysconfig/network
CentOS7系统:hostnamectl命令

动态分配依赖于本地网络中有DHCP服务

网络接口命名方式

传统命名

  • 以太网:ethX,例如:eth0, eth1, ...
  • ppp网络:pptX,例如:ppp0, ppp1, ...

可预测命名方案(CentOS7)

  • 支持多种不同命名机制,firmware拓扑结构  
(1)如果firmware或bios为主板上即成的设备提供的索引信息可用,则根据此索引进行命名,如,eno1,eno2, ...
(2)如果firmware或bios为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此信息进行命名,如ens1, ens2, ...
(3)如果硬件接口的物理位置信息可用,则根据此信息命名,如enp2s0,...
(4)如果用户显示定义,也可根据MAC地址命名,例如:enx122161ab2e10,...

命名格式组成  

en: ethernet
wl: wlan
ww: wwan
# 名称类型
    o<index>:集成设备的设备索引号;
    s<slot>:扩展槽的索引号;
    x<MAC>:基于Mac地址的命名;
    p<bus>s<slot>:基于总线及槽的拓扑结构进行命名;

ifconfig命令

(1)查看接口地址

使用格式

ifconfig [INFACE]

  • [INFACE]:表示网卡接口名称;

 (2)管理 IP 地址

使用格式

  • ifconfig INTERFACE IP/MASK [up]
  • ifconfig INTERFACE IP netmask NETMASK [up]

 

 注意:ifconfig命令会立即将配置送往内核中,并立即生效;重启后无效;

route命令

功用:路由查看和管理  

路由条目类型

  1. 主机路由:目标地址为单个IP;

  2. 网络路由:目标地址为IP网络;

  3. 默认路由:目标为任意网络,0.0.0.0/0.0.0.0;

查看路由条目

route -n

添加路由条目

route add [-net | -host] target [netmask Nm] [gw Gw] [[dev] If]

练习1、添加目标地址为172.16.100.7的主机路由;  

route add -host 172.16.100.7  dev ens33

 

 或者

route add -host 172.16.100.7 gw 10.104.205.16

 

练习2:添加目标地址网络为10.0.0.0/8的网络路由条目  

route add -net 10.0.0.0/8 gw 10.104.205.16 dev ens33

 

练习3、添加默认路由 

route add default gw 10.104.205.16 dev ens33

 

 删除路由条目

route del [-net | -host] target [gw Gw] [netmask Nm] [[dev] If]

删除主机路由  

route del -host 172.16.100.7

 

 删除网络路由

route  del -net 10.0.0.0/8

netstat命令

netstat命令用于显示网络相关信息,如网络连接,路由表,接口状态等

(1)显示路由信息

netstat -rn

  • -r:显示路由表
  • -n:数字格式显示
netstat -rn

 

(2) 显示网络连接

  • netstat [--tcp|-t] [--udp|-u] [--udplite|-U] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]

常用选项

  1. -t:显示tcp协议相关的连接

  2. -u:显示udp协议相关的连接

  3. -wraw socket相关的连接

  4. -l:显示处于监听状态的连接

  5. -a:显示所有状态的连接

  6. -n:以数字格式显示ipport;

  7. -e:扩展格式

  8. -p:显示相关进程PID

练习1、查看所有tcp协议处于监听状态的连接

netstat -tnlp

 

 练习2、显示tcp协议相关所有状态的连接信息 

netstat -tanlp

 

 显示接口的统计数据

  1. netstat -i:显示所有接口的信息;

  2. netstat -I<IFACE>:显示指定接口的信息;

netstat -i

 

 显示指定接口信息

netstat -Iens33

ifup和ifdown命令

使用格式

  1. ifup IFACE:启用接口

  2. ifdown IFACE:禁用接口

示例

ifdown eno33554960
ifup eno33554960

注意:通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE,来识别接口并完成配置

Linux主机名配置

(1)hostname命令 查看主机名

 

 配置主机名(临时有效,重启无效

hostname NEWHOSTNAME

(2)hostnamectl 命令 ,此命令仅使用于 centos7 系统;  

使用格式

hostnamectl [OPTIONS...] {COMMAND}

常用选线

  1. status:查看当前主机名设定

  2. set-hostname HOSTNAME:设定主机名,永久有效;

hostnamectl status

配置文件修改主机名

配置文件:/etc/sysconfig/network

配置文件格式

HOSTNAME=bj-1-141.enzhi.com

注意:此方法不是立即生效,重启后一直有效;  

配置DNS服务器指向

配置文件:/etc/resolv.conf

文件格式

nameserver DNS_SERVER_IP

 

 测试dns配置能否解析可使用:host, nslookup, dig三种命令的其中一种;如果系统没有安装三种命令,则使用  yum -y install bind-utils 即可;

 

 使用dig与nslookup解析百度域名

dig -t A www.baidu.com 

 

 ip 命令

功用:显示或控制路由设备,策略路由和隧道

使用格式

ip [ OPTIONS ] OBJECT { COMMAND | help }

常用OBJECT  

  • OBJECT={link | addr | route | netns}

ip link

  • 功用:网络设备配置
ip link set
    dev NAME(default):指明要管理的设备,dev关键字可省略;
    up and down:启用或禁用设备;
    multicast on or molticast off:启用或禁用多播功能;
    name NAME:重命名接口;需要停止网络服务;
    mtu NUMBER:设置MTU大小,默认1500;  

练习1 禁用设备或启用设备

ip link set eno33554960 down
ip link set eno33554960 up

练习2、禁用eth1网卡多播功能(这是cents6 的网卡,7的查一下,用法一样)

ip addr show eth1
ip link set eth1 multicast off
ip addr show eth1

练习3、重命名接口名称  

systemctl stop  network.service
ip link set eno33554960 name eno33557788
systemctl start  network.service
ip addr show

ip netns

使用格式

  1. ip netns list:列出所有的netns

  2. ip netns add NAME:添加一个名称空间;

  3. ip link set INTERFACE netns netns_NAME:将指定的接口移动至指定名称空间中;

  4. ip netns exec netns_NAME ip link show:查看名称空间中的设备信息;

  5. ip netns del netns_NAME:删除指定名称空间;

练习1、在ens33接口添加一个名称空间,名为mynetns;

ip netns add mynetns
ip netns list

 

练习2、将ens33接口移动至mynetns名称空间 

ip link set ens33  netns mynetns

练习3、查看mynetns名称空间中的设备信息;  

ip netns exec mynetns ip link show

 练习4、删除mynetns名称空间

ip netns del mynetns

ip address

添加接口IP地址 

ip addr add IFADDR dev IFACE  [label NAME] [broadcast ADDRESS]
    [label NAME]:为额外添加的地址指明接口名;例如:eno33554960:0, eth0:0
    [broadcast ADDRESS]:广播地址;会根据ip和netmask自动计算得出;

添加eno33554960:0接口地址为192.168.1.123/24

ip addr add 192.168.1.123/24 dev eno33554960 label eno33554960:0

 

 

 删除接口IP地址

ip addr del IFADDR dev IFACE

例:删除192.168.1.123/24,接口为eno33554960:0  

ip addr del 192.168.1.123/24 dev eno33554960:0

示例:显示eno33554960的详细信息;  

ip addr show eno33554960

 

 

 清空接口地址

ip addr flush dev IFACE

示例 

ip addr flush dev eno33554960
ip addr show eno33554960

ip route

功用:路由管理

(1)添加路由条目  

练习1、添加目标地址为172.16.100.7的主机路由,网关地址为192.168.152.130;接口为ens38;

ip route add 172.16.100.7  via 192.168.152.130 dev ens38

 

 

 练习2、添加目标网络地址为10.0.0.0/8的网络路由,下一跳为192.168.152.130,接口为ens38

ip route add 10.0.0.0/8 via 192.168.152.130 dev ens38

 

 

(2)删除路由条目 

使用格式:

ip route del TYPE PREFIX

删除主机路由172.16.100.7;删除目标网络为10.0.0.8/8的网络路由条目  

ip route del 172.16.100.7 dev ens38
ip route del 10.0.0.0/8 dev ens38

(3)获取路由条目创建信息  

使用格式:

ip route get TYPE PREFIX

示例:添加一个网络路由,并获取详细信息;  

ip route add 10.0.0.0/8 via 192.168.1.141 dev eno16777728
ip route get 10.0.0.0/8

ss命令

功用:与netstat命令类似,都是获取其网络连接状态信息;可使用FILTER过滤其指定的信息  

使用格式

ss [OPTIONS] [FILTER]

常用选项

-t:tcp协议相关的连接;
-u:udp协议相关的连接;
-w:raw socket相关的连接;
-l:监听状态的连接;
-a:所有状态的连接;
-n:数字格式显示;
-p:相关的程序及PID;
-e:扩展格式信息;
-m:内存用量;
-o:计时器信息;
[FILTER]= [ state TCP-STATE ] [EXPRESSION]
    EXPRESSION:
        dport=
        sport=

TCP的常见状态  

LISTEN
ESTABLISHED
FIN_WAIT_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
CLOSED

练习1、显示所有tcp协议相关的信息;

ss -tnlp

 

 

 练习2、显示tcp协议相关的所有状态信息;

ss -tan

 

 

 练习3、显示tcp协议相关的所有信息,但只显示原端口与目标端口为22的连接状态;

ss -tan '( dport = :22 or sport = :22 )'

 

 

 练习4、查看tcp协议相关的连接信息中状态为ESTABLISHED的所有信息;

ss -tanl state ESTABLISHED

通过配置文件配置网络属性

etc/sysconfig/network-scripts/ifcfg-IFACE  

 

路由相关的配置文件

 

/etc/sysconfig/network-scripts/route-IFACE  

文件配置IP/DNS/GATEWAY等信息

配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE;通过大量参数来定义接口的属性,其可通过vim等文本编辑器直接修改,

也可以使用专用的命令进行修改;

centos6:setup命令,centos7:nmtui命令;  

Ifcfg-IFACE配置文件参数

DEVICE=:此配置文件对应的设备的名称;


ONBOOT=:在系统引导过程中是否激活此接口;


UUID=:此设备的唯一标识,可不写;


BOOTPROTO=:激活此接口时使用什么协议来配置接口属性,常用的有dhcp,bootp,static,none;


TYPE=Ethernet:指明接口类型,常见的有,Ethernet;


DNS1=:主DNS服务器指向;


DNS2=:备用DNS服务器指向;


DOMAIN=:搜索域;


IPADDR=:本机的IP地址;


NETMASK=:子网掩码,


GATEWAY=:默认网关地址;


USERCTL=:是否允许普通用户控制此设备;


PEERDNS=:如果BOOTPROTO的值为dhcp,是否允许dhcp server,分配的dns服务器指向覆盖本地手动指向的dns服务器,默认允许;


HWADDR=:硬件设备的Mac地址;可以不写;


NM_CONTROLLED=yes:是否使用network manager 服务来控制接口;

 

配置示例

网络服务管理

使用格式

  1. CentOS6service SERVICE {start|stop|restart|status|reload}

  2. CentOS7systemctl {start|stop|restart|status|reload} SERVICE.service

注意:使用配置文件方式修改网络属性后,如果要生效,需要重启网络服务

CentOS6:service restart network
CentOS7:systemctl restart network.service

配置文件定义永久生效路由

/etc/sysconfig/network-scripts/route-IFACE

配置文件格式:支持两种配置方式,但是不可以混用;

第一种方式:每行一个路由条目

TARGET   via  GW
  TARGET:目标地址;
  via:关键字
  GW:下一跳地址;

练习1、添加一条主机路由条目,目标主机地址为172.16.100.7,下一跳地址为192.168.1.141;  

CentOS7 配置方式

[root@bj-1-141 network-scripts]# vim route-eno16777728
172.16.100.7 via 192.168.1.141
[root@bj-1-141 network-scripts]# systemctl restart network.service
[root@bj-1-141 network-scripts]# ip route show
default via 192.168.1.1 dev eno16777728  proto static  metric 100
default via 192.168.1.1 dev eno33554960  proto static  metric 101
169.254.0.0/16 dev eno33554960  scope link  metric 1003
172.16.100.7 via 192.168.1.141 dev eno16777728  proto static  metric 100
192.168.1.0/24 dev eno16777728  proto kernel  scope link  src 192.168.1.141  metric 100
192.168.1.0/24 dev eno33554960  proto kernel  scope link  src 192.168.1.122  metric 101

CentOS6配置方式  

[root@bj-1-160-enzhi network-scripts]# cat route-eth1
10.0.0.0/8 via 192.168.1.161
[root@bj-1-160-enzhi network-scripts]# service network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down interface eth1:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:  Determining if ip address 192.168.1.160 is already in use for device eth0...
                                                           [  OK  ]
Bringing up interface eth1:  Determining if ip address 192.168.1.161 is already in use for device eth1...
                                                           [  OK  ]
[root@bj-1-160-enzhi network-scripts]# ip route show
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.160
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.161
169.254.0.0/16 dev eth0  scope link  metric 1002
169.254.0.0/16 dev eth1  scope link  metric 1003
10.0.0.0/8 via 192.168.1.161 dev eth1
default via 192.168.1.1 dev eth0

第二种方式:每三行一个路由条目  

ADDRESS#=TARGET(目标地址)
NETMASK#=MASK(子网掩码)
GATEWAY#=NEXTHOP(下一跳)

练习1、添加一条网络路由,目标网络地址为172.16.0.0/16,下一跳为192.168.1.141;  

[root@bj-1-141 network-scripts]# cat route-eno16777728
ADDRESS0=172.16.0.0
NETMASK0=255.255.0.0
GATEWAY0=192.168.1.141
[root@bj-1-141 network-scripts]# systemctl restart network.service
[root@bj-1-141 network-scripts]# ip route show
default via 192.168.1.1 dev eno16777728  proto static  metric 100
default via 192.168.1.1 dev eno33554960  proto static  metric 101
169.254.0.0/16 dev eno33554960  scope link  metric 1003
172.16.0.0/16 via 192.168.1.141 dev eno16777728  proto static  metric 100
192.168.1.0/24 dev eno16777728  proto kernel  scope link  src 192.168.1.141  metric 100
192.168.1.0/24 dev eno33554960  proto kernel  scope link  src 192.168.1.122  metric 101

配置文件给接口配置多个IP地址永久生效

注意:网卡别名不支持动态获取地址  

复制要添加多个接口的网卡配置文件;而后修改其DEVICE名称及删除UUID;

练习1、为eth1接口配置网卡别名为eth1:0,其IP地址为192.168.1.188/24,网关为192.168.1.1;

# 第一步:复制eth1到eth1:0
[root@bj-1-160-enzhi network-scripts]# cp ifcfg-eth1 ifcfg-eth1:0
# 第二步:修改其内容
[root@bj-1-160-enzhi network-scripts]# vim ifcfg-eth1:0
DEVICE=eth1:0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.188
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
# 第三步:重启网络服务查看eth1:0信息
[root@bj-1-160-enzhi network-scripts]# service network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down interface eth1:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:  Determining if ip address 192.168.1.160 is already in use for device eth0...
                                                           [  OK  ]
Bringing up interface eth1:  Determining if ip address 192.168.1.161 is already in use for device eth1...
Determining if ip address 192.168.1.188 is already in use for device eth1...
                                                           [  OK  ]
[root@bj-1-160-enzhi network-scripts]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:18:EC:38
          inet addr:192.168.1.160  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe18:ec38/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4041 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2376 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:404252 (394.7 KiB)  TX bytes:284678 (278.0 KiB)
eth1      Link encap:Ethernet  HWaddr 00:0C:29:18:EC:42
          inet addr:192.168.1.161  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe18:ec42/64 Scope:Link
          UP BROADCAST RUNNING  MTU:1500  Metric:1
          RX packets:1168 errors:0 dropped:0 overruns:0 frame:0
          TX packets:58 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:130676 (127.6 KiB)  TX bytes:4020 (3.9 KiB)
eth1:0    Link encap:Ethernet  HWaddr 00:0C:29:18:EC:42
          inet addr:192.168.1.188  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING  MTU:1500  Metric:1

  

 

posted @ 2019-10-22 15:33  Crazymagic  阅读(836)  评论(0编辑  收藏  举报