一、Linux网络基础
1、网络基础知识(略)
2、Linux主机接入网络的配置项
(1、MAC
(2、IP/mask
静态IP
DHCP动态获取
(3、路由(默认网关)
(4、DNS服务器地址
3、Linux网络管理工具:
(1、ifcfg工具:
ifconfig子命令
route子命令
(2、ip工具:目前主流的网络配置命令(临时有效、重启失效)
link子命令
addr子命令
route子命令
(3、setup图形化网络配置工具(实质也是修改配置文件后保存)
(4、nmcli工具(Centos7)
(5、nmtu工具(Centos7)
(6、直接修改配置文件(永久有效)
(7、nentstat 网络链接查询、路由查询、接口流量查询工具
(8、ss 网络链接查询、路由查询、接口流量查询工具
性能优于netstat,适用于连接数目多的服务器
4、TCP链接状态:
LISTEN # 监听状态
ESTABLISHED # 已建立链接
FIN_WAIT_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
CLOSED # 链接关闭状态
5、主机名配置及修改
临时修改:
hostname # 显示主机名
hostname 指定主机名 # 配置为指定主机名称
hostnamectl status # 显示主机名详细信息
hostnamectl set-hostname 指定主机名 # 设定主机名
永久修改:
[[email protected] ~]#vim /etc/sysconfig/network
NETWORKING=yes # 此项为整个linux服务器接入网络的总开关
HOSTNAME=www.bcc.com
6、本地dns解析文件/etc/hosts
格式:
[[email protected] oneapm]$ cat /etc/hosts
127.0.0.1 localhost
10.12.38.211 clickhouse1
10.12.38.212 clickhouse2
10.12.38.213 clickhouse3
7、Linux上网卡命名方式:
传统命名方式:eth{0|1|2|3...|}
CentOS命名:
基于udev,支持多种命名方案,通过主板接口位置进行命名,可实现预测功能,网卡更换后只要位置不变,任然为原网卡名字
固件Firmware或者BIOS为主板上集成的设备提供的索引信息可用,且可预测,则根据此索引进行命名(如:eno....)
固件Firmware或者BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名(如:ens...)
如过固件接口的物理位置信息可用,则根据此信息进行命名(如:enp2s...)
如果用户显示启动,也可根据MAC地址进行命名(如:enx+mac地址)
上述都不可使用时回归传统命名机制(如:eth...)
(上述命名机制中,有的需要biosdevname程序的参与)
网卡名称组成格式:
en:ethernet以太网有限网卡
wl:wlan无限局域网网卡
ww:wwan无限广域网网卡
网卡常见索引:
o+index:集成网卡的索引为“o”加上索引号(如:eno16777736)
s+index:通过插槽介入的独立网卡,其索引为“s“加上插槽的索引号
(如:ens152333412)
x+mac:表示基于MAC进行命名
(如:ensF352A238BC123)
p+PCI的bus+s+index:表示通过PCI总线的总线号及插槽的索引进行命名
(如:enp2s156786)
centos7网卡命令流程:
第一步:默认先进行udev方式命名
第二步:如果第一步命名没有发生,则biosdevname=1,进行第二步命名
第三步:如果第二步命名也没有发生,则进行第三步命名
第四步:以上命名不成功,则回归传统命名,或者保留原来的名字
CentOS 7回归传统方式命名
[[email protected] ~]# vim /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet" ##改为GRUB_CMDLINE_LINUX="net.ifnames=0 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
~
[[email protected] ~]# cd /etc/default/
[[email protected] default]# ls
grub nss useradd
[[email protected] default]# groub2-mkconfig -o /boot/grub/grub2.cfg ##为grub2生成配置文件
完成以上步骤后需要重新启动系统
二、ifcfg工具(yum install net-tools)
1、ifconfig子命令:网络接口及地址管理命令
查看接口:
ifconfig # 查看所有处于活动状态对的网络接口地址
ifconfig -a # 查看所有网络接口地址(包含活动状态和非活动状态的接口)
ifconfig 指定网络接口 # 查看指定网络接口地址
启用、禁用接口:
ifconfig 指定接口 up # 启用接口
ifconfig 指定接口 down # 禁用接口
配置接口(立即生效、重启失效):
ifconfig 指定接口 IP/MASK [up|down] # 配置地址、掩码,并启用或禁用接口
ifconfig 指定接口 IP netmask MASK [up|down] # 配置地址、掩码,并启用或禁用接口
附加特性:
promisc # 启用混杂模式,及报文目标MAC不是自己的MAC也接收该报文
# 往往抓包时使用该特性
-promisc # 禁用混杂模式
示例:
[[email protected] ~]# ifconfig ens33 192.168.254.136 netmask 255.255.255.0 up
[[email protected] ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.254.136 netmask 255.255.255.0 broadcast 192.168.254.255
inet6 fe80::432c:758e:6a6:312 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:9a:7f:1a txqueuelen 1000 (Ethernet)
RX packets 909 bytes 66819 (65.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 247 bytes 33009 (32.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2、route子命令:路由管理命令(立即生效、重启失效)
查看本机路由:
route -n
示例:
[[email protected] ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.254.2 0.0.0.0 UG 100 0 0 ens33
192.168.254.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
添加路由:
主机路由:访问目标主机时,报文从指定接口发出,通过指定网关路由
route add -host 目标主机IP gw 网关IP dev 指定接口
示例:
[[email protected] ~]# route add -host 192.168.189.5 gw 192.168.254.254 dev ens33
[[email protected] ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.254.2 0.0.0.0 UG 100 0 0 ens33
192.168.189.5 192.168.254.254 255.255.255.255 UGH 0 0 0 ens33
192.168.254.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
网络路由:访问目标网段时,报文从指定接口发出,通过指定网关路由
route add -net 目标网段IP/MASK gw 网关IP dev 指定接口
route add -net 目标网段IP/MASK netmask MASK gw 网关IP dev 指定接口
示例:
[[email protected] ~]# route add -net 192.168.199.0 netmask 255.255.255.0 gw 192.168.254.253 dev ens33
[[email protected] ~]# route add -net 192.168.166.0/24 gw 192.168.254.253 dev ens33
[[email protected] ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.254.2 0.0.0.0 UG 100 0 0 ens33
192.168.166.0 192.168.254.253 255.255.255.0 UG 0 0 0 ens33
192.168.189.5 192.168.254.254 255.255.255.255 UGH 0 0 0 ens33
192.168.199.0 192.168.254.253 255.255.255.0 UG 0 0 0 ens33
192.168.254.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
缺省路由:无指定路由时,报文从指定接口发出,通过指定网关路由
route add -net 0.0.0.0 network 0.0.0.0 gw 网关IP dev 指定接口
route add default gw 默认网关IP dev 指定接口
示例:
[[email protected] ~]# route add default gw 192.168.254.2 dev ens33
[[email protected] ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.254.2 0.0.0.0 UG 0 0 0 ens33
0.0.0.0 192.168.254.2 0.0.0.0 UG 100 0 0 ens33
192.168.166.0 192.168.254.253 255.255.255.0 UG 0 0 0 ens33
192.168.189.5 192.168.254.254 255.255.255.255 UGH 0 0 0 ens33
192.168.199.0 192.168.254.253 255.255.255.0 UG 0 0 0 ens33
192.168.254.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
删除路由:
route del -net 目标主机IP
route del -host 目标网段IP
示例:
[[email protected] ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.254.2 0.0.0.0 UG 0 0 0 ens33
0.0.0.0 192.168.254.2 0.0.0.0 UG 100 0 0 ens33
192.168.166.0 192.168.254.253 255.255.255.0 UG 0 0 0 ens33
192.168.189.5 192.168.254.254 255.255.255.255 UGH 0 0 0 ens33
192.168.199.0 192.168.254.253 255.255.255.0 UG 0 0 0 ens33
192.168.254.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
[[email protected] ~]# route del -net 192.168.166.0/24
[[email protected] ~]# route del -net 192.168.199.0/24
[[email protected] ~]# route del -host 192.168.189.5
[[email protected] ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.254.2 0.0.0.0 UG 0 0 0 ens33
0.0.0.0 192.168.254.2 0.0.0.0 UG 100 0 0 ens33
192.168.254.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
三、IP工具:目前主流的网络配置命令(临时有效、重启失效), yum install -y iproute
1、ip link:设备接口连接管理
ip link show 指定设备 # 显示指定设备物理接口及接口二层简要信息
ip link set 指定设备 {up|down} # **/禁用指定接口
示例:
[[email protected] ~]# ip link show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:9a:7f:1a brd ff:ff:ff:ff:ff:ff
[[email protected] ~]# ip link set ens33 up
2、ip addr:设备地址管理
显示指定设备地址信息
ip addr show 指定设备
添加地址(可添加多个,并赋予标签)
ip addr add 地址/mask dev 指定设备 label‘标签名’ scope {glob|link|host}
# 为指定设备添加地址或者删除地址(可添加多个),并赋予标签
# 指定scope该地址的有效范围
glob # 全局有效
link # 链接有效
hose # 本机有效
删除地址:
ip addr flush dev 指定设备 label 标签模式 #清空指定设备地址
3、ip route:路由管理工具
ip route show #显示所有路由信息
ip route show dev 指定设备 #显示指定设备的路由信息
ip route via 下一跳地址 #显示指定下一跳的路由信息
ip route src 源地址 #显示指定源地址的路由信息
ip route add #添加路由信息
添加主机地址网关
ip route add 目标主机IP via 下一条地址 dev 指定出口设备
添加网络地址网关
ip route add 目标网段IP/mask长度 via 下一条地址 dev 指定出口设备
添加默认网关
ip route add default via 网关地址 dev 指定设备 # 添加默认网关
删除默认网关
ip route del default
删除指定路由
ip route delete
清空路由表
ip route flush
ip route flush dev 指定设备 # 清空指定设备的路由条目
ip route flush via 指定下一跳 # 清空指定下一跳的路由条目
ip route flush src 指定源地址 # 清空指定源地址的路由条目
四、setup工具(yum install setuptool)
setup命令后进入交互界面进行配置:
六、nmcli工具
nmcli general status # 查看已启用的连接
nmcli radio # 配置接口radio参数
nmcli connection # 接口的启动、禁用和网络参数配置
numcli connection show 指定设备 # 查看设备连接状态
numcli connection up 指定设备 # 启用指定设备连接
numcli connection down 指定设备 # 禁用指定设备连接
numcli connection modify 指定设备 ipv4.{addresses|gatway|dns1..}
numcli connection modify 指定设备 ipv4.addresses P/MASK #给指定设备修改地址
numcli connection modify 指定设备 +ipv4.addresses IP/MASK #给指定设备添加地址
numcli connection modify 指定设备 -ipv4.addresses IP/MASK #给指定设备删除地址
numcli connection modify 指定设备 -ipv4.addresses IP/MASK #给指定设备删除地址
numcli connection modify 指定设备 +ipv4.agatway IP #给指定增加网关
numcli connection modify 指定设备 +ipv4.DNS IP #给指定增加DNS
(新地址配置后需要connection down和up禁用、启用才能生效)
numcli device
numcli device status 指定设备 # 查看指定接口连接状态
numcli device show 指定设备 #查看指定设备的详细信息
示例:
[[email protected] rules.d]# nmcli general status
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
connected full enabled enabled enabled enabled
[[email protected] rules.d]# nmcli connection modify +ipv4.addresses 192.168.254.13
七、nmtu工具(system-config-securitylevel-tui)
nmtui命令后进入交互界面进行配置:
八、网络相关配置文件(通过修改配置文件设定网络参数永久有效)
1、网络参数配置文件:/etc/sysconfig/network-scripts/ifcfg-接口名称
[[email protected] network-scripts]# vim ifcfg-eno16777736
TYPE="Ethernet" # 此网卡的接口类型(Ethernet、Bridge)
BOOTPROTO="dhcp" # **此设备时使用的协议(dhcp、static、none、bootp)
NM_CONTROLLED="NO" # 关闭NetworkManage管理服务
IPADDR=“” # 静态IP地址
NETNASK=“” # 子网掩码
GATEWAY=“” # 默认网关
DNS1=“” # DNS1服务器指向
DNS2=“” # DNS2服务器指向
DEFROUTE="yes"
PEERDNS="yes" # 如果为dhcp,是否允许dhcp服务器发票的DNS信息覆盖修改/etc/recolv.conf
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777736"
UUID="f9158e3d-7878-48c5-a475-97d79a6d830d" # 该设备UUID(应与设备UUID保持一致)
HWADDR=“” # MAC(应该与设备MAC一致)
DEVICE="eno16777736" # 该配置文件应用到的设备(应该与设备名字保持一致)
ONBOOT="yes" # 系统引导时,是否**该设备(即重启时是否启用该网卡)
USERCTL # 普通用户是否可以管理该设备
"ifcfg-eno16777736" 16L, 320C 16,1 全部
通过配置文件给同一块网卡配置多个地址
[[email protected] network-scripts]# cp ifcfg-eno16777736 ifcfg-eno16777736:1
[[email protected] network-scripts]# vim ifcfg-eno16777736:1
TYPE="Ethernet"
BOOTPROTO="dhcp"
NM_CONTROLLED="NO"
IPADDR=“192.168.207.189”
NETNASK=“255.255.255.0”
GATEWAY=“192.168.207.2”
DNS1=“8.8.8.8”
DNS2=“9.9.9.9”
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777736:1"
[[email protected] ~]# service network restart
2、路由配置文件:/etc/sysconfig/network-scripts/route-接口名称
该文件不存在,需要手动创建
文件格式1:每行定义一组路由(推荐使用该格式)
目标网络 via 下一跳
示例:
[[email protected] network-scripts]# vim route-eno16777736
192.168.0.0 /24 via 192.168.207.2
文件格式2:每三行定义一组路由
ADDRESSn=目标网络地址
NETMASKn=mask
GATEWAY=网关地址
示例:
[[email protected] network-scripts]# vim route-eno16777736
192.168.0.0 /24 via 192.168.207.2
或者:
ADDRESS0=192.168.10.0
NETMASK0=255.255.255.0
GATEWY0=192.168.207.2
ADDRESS1=192.168.20.0
NETMASK1=255.255.255.0
GATEWAY1=192.168.207.2
3、DNS服务器配置文件:/etc/resolv.conf
格式:
dnsservername1 server_ip1
dnsservername2 server_ip2
dnsservername3 server_ip3
示例:
vim /etc/resolv.conf
nameserver1 8.8.8.8
nameserver2 9.9.9.9
如果安装了NetworkManage,通过修改/etc/resolv.conf文件来配置DNS需要关闭NetworkManage的dns管理功能
编辑配置文件关闭:
vim /etc/NetworkManager/NetworkManager.conf
dns=none
或直接关闭服务:
systemctl stop NetworkManager
DNS解析测试工具:dig,需要先安装yum install bind-utils(也可以使用host命令测试)
dig -t A servername # 将域名解析为地址
dig -x IP # 将IP解析为域名
-t A servername # 将域名解析为地址
dig -t A servername # 将域名解析为地址
示例:
[[email protected] ~]# dig -t A www.baidu.com
...
[[email protected] ~]# dig -x 183.232.231.174
4、修改后需要重启网卡:
方式一:
[[email protected] ~]# ifconfig eno16777736 down
[[email protected] ~]# ifconfig eno16777736 up
方式二:
[[email protected] ~]# service network restart
[[email protected] ~]# /etc/rc.d/init.d/network restart