网络配置方式:

  • 静态指定 - 命令临时配置和修改配置文件
  • 动态配置 - DHCP - Dynamic Host Configuration Protocol
1 ifconfig命令

ifconfig - 网卡IP相关管理命令

来自于net-tools包,建议使用ip命令代替,CentOS8不默认安装

# rpm -i 检查net-tools包是否安装
[root@CentOS8 ~]# rpm -qi net-tools
package net-tools is not installed
# 安装net-tools工具包
[root@CentOS8 ~]# yum -y install net-tools

ifconfig用法:

ifconfig [interface]
ifconfig -a
ifconfig iface [up|down]
ifconfig interface [aftype] options | address ...
ifconfig iface IP/netmask [up]
ifconfig iface IP netmask NETMASK

范例:

# 给网口eth0添加IP和掩码
[root@CentOS8 ~]# ifconfig eth0 192.168.40.14 netmask 255.255.255.0

# 清楚eth0上面的IP地址
[root@CentOS8 ~]# ifconfig eth0 0.0.0.0/0

# 启用禁用网卡
[root@CentOS8 ~]# ifconfig eth0 down
[root@CentOS8 ~]# ifconfig eth0 up

# 对一个网卡设置多个IP地址
[root@CentOS8 ~]# ifconfig eth0:1 172.16.1.100/24
2 route命令

route - Kernel IP routing table,管理内核IP路由表

route用法:

route add [-net|-host|default] target [netmask] [gw GW] [[dev] IF]
route del [-net|-host] target [gw GW] [netmask Nm] [[dev] IF]

查看路由表:

[root@CentOS8 ~]# route
[root@CentOS8 ~]# route -n   

范例:

# 目标地址:192.168.1.3  网关:172.16.0.1
[root@CentOS8 ~]# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0

# 目标:192.168.0.0  网关:172.16.0.1
[root@CentOS8 ~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
[root@CentOS8 ~]# route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
[root@CentOS8 ~]# route add -net 192.168.8.0/24 dev eth1 metric 200

#默认路由,网关:172.16.0.1
[root@CentOS8 ~]# route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
[root@CentOS8 ~]# route add -net 0.0.0.0/0 gw 172.6.0.1
[root@CentOS8 ~]# route add default gw 172.16.0.1

[root@CentOS8 ~]# route del -host 192.168.1.3
[root@CentOS8 ~]# route del -net 192.168.0.0 netmask 255.255.255.0

2.1 配置静态路由

环境准备:

#准备四台主机,给虚拟机添加对应模式网卡:
HostA主机: eth0 NAT模式
RouterA主机: eth0 NAT模式,eth1 仅主机模式
RouterB主机:eth0 桥接模式,eth1 仅主机模式
HostB主机:eth0 桥接模式

环境拓扑:

网络系列之 - Linux网络配置命令_路由表

环境配置:

#配置HostA
[root@HostA ~]# ifconfig eth0 10.0.0.61/8
[root@HostA ~]# route add -net 10.0.0.0/8
[root@HostA ~]# route add default gw 10.0.0.81 dev eth0

#配置RouterA
[root@RouterA ~]# ifconfig eth0 10.0.0.81/8
[root@RouterA ~]# ifconfig eth1 192.168.0.82/24
[root@RouterA ~]# route add -net 10.0.0.0/8 dev eth0
[root@RouterA ~]# route add -net 192.168.0.0/24 dev eth1
[root@RouterA ~]# route add -net 172.16.0.0/16 gw 192.168.0.83 dev eth1
[root@RouterA ~]# echo 1 > /proc/sys/net/ipv4/ip_forward  		 # 测试环境临时配置
[root@RouterA ~]# echo 1 > cat /proc/sys/net/ipv4/ip_forward	# 生产环境永久配置

#配置RouterB
[root@RouterB ~]# ifconfig eth0 192.168.0.83/24
[root@RouterB ~]# ifconfig eth1 172.16.0.84/16
[root@RouterB ~]# route add -net 192.168.0.0/24 dev eth0
[root@RouterB ~]# route add -net 172.16.0.0/16 dev eth1
[root@RouterB ~]# route add -net 10.0.0.0/8 gw 10.0.0.81 dev eth0
[root@RouterB ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

#配置HostB
[root@HostB ~]# ifconfig eth0 172.16.0.71/16
[root@HostB ~]# route add -net 172.16.0.0/16 dev eth0
[root@HostB ~]# route add default gw 172.16.0.84 dev eth0

2.2 配置动态路由

通过守护进程获取动态路由,安装quagga包,通过命令vtysh配置

支持多种路由协议:

RIP ==> Routing Infomation Protocol,路由信息协议
OSPF ==> Open Shortest Path First,开放式最短路径优先
BGP ==> Border Gateway Protocol,边界网关协议
3 netstat命令

netstat来自于net-tools包,建议使用ss代替

格式:

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

常用选项:

-t:tcp协议
-u:udp协议
-w:raw socket相关
-l:监听状态
-a:所有状态
-n:以数字显示IP和端口
-e:扩展格式
-p:显示相关进程及PID

显示路由表:

netstat {--route|-r} [--numeric|-n]
-r: 显示内核路由表
-n: 数字格式
4 ip命令

ip命令来自于iproute包,可用于代替ifconfig

# 插ip命令来源于那个安装包
[root@CentOS8 ~]# rpm -qf `which ip`
iproute-5.3.0-5.el8.x86_64

4.1 配置Linux网络属性

ip [OPTIONS] OBJECT { COMMAND | help }

ip命令说明:

OBJECT := { link | addr | route }
ip link - network device configuration
set dev IFACE,可设置属性:up and down:激活或禁用指定接口,相当于 ifup/ifdown
show [dev IFACE] [up]::指定接口 ,up 仅显示处于激活状态的接口

IP地址管理

ip addr { add | del } IFADDR dev STRING [label LABEL] [scope {global|link|host}]
[broadcast ADDRESS]
[label LABEL]:添加地址时指明网卡别名
[scope {global|link|host}]:指明作用域,global: 全局可用.link: 仅链接可用,host: 本机可
用
[broadcast ADDRESS]:指明广播地址 
ip address show 
ip addr flush

范例:

[root@CentOS8 ~]# ip link set eth1 down  		#禁用网卡
[root@CentOS8 ~]# ip link set eth1 name hongnet  #网卡改名
[root@CentOS8 ~]# ip link set hongnet up 		#启用网卡
# 网卡配置别名
[root@CentOS8 ~]# ip addr add 172.16.1.100/16 dev eth0 label eth0:0
[root@CentOS8 ~]# ip addr del 172.16.1.100/16 dev eth0 label eth0:0
# 清除网络地址
[root@CentOS8 ~]# ip addr flush dev eth0

4.2 路由管理

ip route用法

#添加路由:
ip route add TARGET via GW dev IFACE src SOURCE_IP
 TARGET:
 主机路由:IP
 网络路由:NETWORK/MASK
#添加网关:
ip route add default via GW dev IFACE
#删除路由:
ip route del TARGET 
#显示路由:
ip route show|list
#清空路由表:
ip route flush [dev IFACE] [via PREFIX]

范例:

[root@CentOS8 ~]# ip route add 192.168.0.0/24 via 172.16.0.1
[root@CentOS8 ~]# ip route add 192.168.1.100 via 172.16.0.1
# 添加默认路由
[root@CentOS8 ~]# ip route add default via 172.16.0.1
# 清除路由
[root@CentOS8 ~]# ip route flush dev eth0
5 ss命令

ss来自于iproute包,代替netstat,netstat通过遍历/proc来获取socket信息,ss使用netlink与内核tcp_diag模块通信获取socket信息。

格式:

ss [option] ... [filter]

选项:

-t:tcp协议相关
-u:udp协议相关
-w:裸套接字相关
-x:Unix sock相关
-l:listen状态的连接
-a:所有
-n:数字格式
-p:相关的程序及PID
-e:扩展的信息
-m:内存用量
-o:计时器信息

格式说明:

FILTER: [state TCP-STAT] [EXPRESSION]
TCP的常见状态:
  tcp finite state machine:
    LISTEN		#监听
    ESTABLISHED  #已建立的连接
    FIN_WAIT_1	#完成等待
    FIN_WAIT_2
    SYN_SENT	#同步发送
    SYN_RECV	#同步接受
    CLOSED		#关闭
EXPRESSION:
    dport=		#目标端口
    sport=		#源端口

常用组合:

-tan,	#所有tcp协议以数字格式显示
-tanl,	#所有监听状态的tcp协议以数字格式显示
-tanlp, #所有监听tcp的程序及PID以数字格式显示
-uan,	#所有udp协议以数字格式显示

范例:

[root@CentOS8 ~]# ss -l		#显示本地打开的所有端口
[root@CentOS8 ~]# ss -pl	#显示每个进程具体打开的socket
[root@CentOS8 ~]# ss -ta	#显示tcp socket
# 显示所以已建立的ssh连接
[root@CentOS8 ~]# ss -o state established '(dport = :ssh or sport = :ssh)'