网络配置方式:
- 静态指定 - 命令临时配置和修改配置文件
- 动态配置 - DHCP - Dynamic Host Configuration Protocol
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 桥接模式
环境拓扑:
环境配置:
#配置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)'