网络管理

网络管理

网络功能都在内核当中

前言

早期的内核是通过网络的mac地址来命名的,centos5,6都是用eth开头,如果主机上原本有一个网卡被内核命名为eth0,结果这个网卡坏了拿下来之后在原本的地方又放了一个新的网卡,那么他还是eth0吗?不是,很有可能被内核识别成为eth1,因为内核是通过网卡的mac地址来识别网卡的。centos7改了命名方式,这种方式根据插槽来命名,也就是说在一个插槽上的任意网卡都是一个名字。

这篇取名为LINUX网络管理,是把公司内部常见centos和ubuntu系统的网络配置囊括了,包括ip家族、ifconfig家族、nmcli家族、netplan。除非特殊场景,我一向是反对通过图形界面配置LINUX网络的,因为图形界面配置与命令行的配置完全独立于命令行的,如果命令行与图形界面同时存在网络配置,会造成冲突,影响系统配置进度。

  • centos6的网络配置推荐

centos6临时网络配置推荐使用ifconfig家庭,永久修改推荐使用修改配置文件,通过/etc/init.d或services 重启网络服务;

  • centos7的网络配置推荐

centos6临时网络配置推荐使用ip家庭,永久修改推荐使用修改配置文件,通过systemctl重启网络服务;

  • centos8的网络配置推荐

centos8的网络配置推荐ip家庭,永远修改推荐使用使用nmlic

  • ubuntu 18+

ubuntu 临时网络配置推荐使用ip,永久修改推荐使用netplan,通过netplan apply应用。

ifcfg家族

ifconfig

ifconfig 仅显示本机活动接口的地址
ifconfig -a显示本机活动与不活动的接口的地址
ifconfig eth0 显示eth0的属性信息
ifconfig eth0 192.168.80.6/24 配置ip和掩码
ifconfig eth0 {up|down} 网卡打开关闭

混杂模式:

ifconfig promisc启用混杂模式,不是给自己的数据包也会留下

ifconfig –promisc 关闭混杂模式,只接收给自己的数据包

route

路由管理命令

route add default gw 192.168.80.1         添加默认路由
route add -net 0.0.0.0/24 gw 192.168.80.1 dev ens33  添加默认路由
route add -host 192.168.1.3 gw 192.168.80.1 dev ens33 添加主机路由
[root@localhost ~]# route -n
Destination   Gateway     Genmask     Flags Metric Ref  Use Iface
0.0.0.0     192.168.80.1  0.0.0.0     UG  0   0    0 ens33
192.168.1.3   192.168.80.1  255.255.255.255 UGH  0   0    0 ens33

U代表up开户状态

G代表这是个路由条目

H这是一个主机路由

route add -net 192.168.10.0/24 gw 192.168.80.1 dev ens33  添加网络路由
[root@localhost ~]# route -n
Destination   Gateway     Genmask     Flags Metric Ref  Use Iface
192.168.10.0  192.168.80.1  255.255.255.0  UG  0   0    0 ens33

route del -host 192.168.1.3  删除主机路由
route add -net 192.168.50.0/24 gw 192.168.80.1 dev ens33  删除网络路由
route del -net 0.0.0.0 gw 192.168.80.1 netmask 255.255.255.0  删除默认路由

默认网关如果有两个,后面那个是不会有作用的。

DNS

[root@localhost ~]# echo "nameserver 223.6.6.6">/etc/resolv.conf

当配置完成DNS之后我们进行测试,测试的命令有两种:

FQDN(安全限定域名)--->ip这种方式叫正解,所谓的完全限定域名就是像. www是主机名,baidu是域名。把ip解析成完全限定域名的方式叫反解。测试的命令有两种:

dig  –t  A [www.baidu.com](http://www.baidu.com)   #解析出百度的IP
dig –x 223.6.6.6       #通过此ip地址解析出完全限定域名
host  –t  A [www.baidu.com](http://www.baidu.com)     #解析出百度的IP
host –t  PTR 223.6.6.6         #通过此ip地址解析出完全限定域名

netstat

  • l -t :显示tcp协议相关
  • l -u:显示udp协议相关
  • l -w:raw socket裸套节字相关,裸套节字就能通过程序不经过传输层直接使用IP地址
  • l -l:处于监听的状态
  • l -a:所有状态
  • l -n:以数字显示ip和端口
  • l -e:扩展格式
  • l -p:显示相关进程及PID

常用的组合:

  • l -tan以数字显示与tcp相关的所有状态
  • l -tnl以数字显示与tcp相关处于监听状态的端口
  • l -tnlp:这个最应该记下来

ping

l 我们通过 ping 查看一下往返时间,在局域网当中如果超过 10 毫秒的话就不正常了。

  • l -c # 指定发包的次数
  • l -s # 指定 ping 包的大小,默认 64 个字节
  • l -t # 指定 TTL 值
  • l -i # 指定等待几秒发一个 ping 包
  • l -w # 指定 ping 命令执行多长秒结束

测试通过的每一个路由器和测试对方的什么操作系统

traceroute

跟踪数据包,查看沿途过了哪些路由器,常用于排错 不通的地方使用标识,traceroute 如果通过 NAT 的时候会出现号 使用的时候直接使用 traceroute 后面加上要跟踪的 IP 地址即可 。

nslookup

测试 DNS 是否正常,测试 DNS 是否能解析域名也可以直接使用 ping,看看能不能解析出域名,有的服务器不允许 ping,这没有关系,我们要看的是第一行,看看有没有解析出域名即可。 nslookup 是专门用来测试 NDS 的,后面直接跟上域名即可。

nslookup www.baidu.com 

永久修改路由

如果有多块网卡的话根据需要创建多个路由配置文件,路由配置文件默认是没有的,所

以要进行创建,创建只能在/etc/sysconfig/network-scripts/这个目录里面创建一个 route-<网卡>的文件。如果我们只能一个网卡的话一般就是 eth0,就可以创建:/etc/sysconfig/network-scripts/route-eth0 文件,如下:

vim /etc/sysconfig/network-scripts/route-eth0 
0.0.0.0/0       via 192.168.80.1 默认路由 via 是下一跳 
192.168.100.0/24 via 192.168.80.1 网络路由 
192.168.200.2/32    via 192.168.80.1 主机路由 

note:同样的,也需要进行网络服务重启才能生效,如果配置路由之前没有在网卡的配置文件当中配置 ip 地址等信息的话,即使在这里设置了路由也不会生效的,想想也很简单嘛!没有 ip 地址怎么能配置网关呢?

给网卡绑定多个 ip 地址

使用场景,一个服务器上有多个公司网站,想使用多个 ip 分别访问。就是使用子接口嘛!与路由器差不多,网络地址不一样,mac 地址是一样的,在网络服务重启之后通过命令添加的子接口失效,但我们可以配置文件让其永久不失效。 比如原来有个网卡 eth0,那么加一个子接口就是 eth0:# #号从 0 开始,举个例子:

l 临时给网卡添加多个IP

ifconfig eth0:0 192.168.80.7/24 在 eth0 上加一个新的 ip 地址 
ifconfig eth0:0 down 关闭这个子接口,up 之后也失效了,物理接口并不会

l 永久给网卡添加多个IP

永久给网卡添加多个 ip 地址,把物理网卡的配置文件 cp 一份做为子接口的配置文件,然后在子接口的配置文件里面把:设备名修改成子接口的名字、IP 修改、子网掩码一定要有,然后重启网卡即可。

cd /etc/sysconfig/network-scripts/ 
cp ifcfg-eth0 ifcfg –eth0:0  #不要忘记修改这个网络配置文件+4
vim ifcfg-eth0:0 
service network restart 

绑定 mac 地址和 ip 地址

防止 arp 欺骗的重要手段 arp –a 查看缓存的 mac 地址 arp –s 192.168.80.1 ##:##:##:##绑定 mac 地址,重启无效

cat /proc/net/arp 
arp –d 192.168.80.1 删除绑定的 mac 地址 
永久绑定  
vim /etc/ethers 
192.168.80.66 ##:##:##:##  

重启之后依然有效

IP家族

子命令:

show: ip link show {dev eth0 | up | down} #查看eth0接口地址,开启的接口,关闭的接口

set :ip link set {up | down} dev eth0 #关闭或者开户eth0接口

 [root@LAMP ~]# ip link set down dev eth0  #除了down当然还有up

image-20200406135130752

image-20200406135136101

addr

ip addr {add|del|show}

#ip addr的使用格式,如果有地址默认是追加,而不是覆盖

image-20200406135200491

image-20200406135205085

[root@LAMP ~]# ip addr del 192.168.80.10/24 dev eth0 label 'eth0:0'
linux的地址其实是配置在内核当中的

[root@LAMP ~]# ip addr add 192.168.80.100/24 dev eth0 label 'eth0:1'
[root@LAMP ~]# ip addr flush dev eth0 label eth0:1

nmcli

  • 查看是否打开了network manager
[root@C8 ~]# nmcli n off
[root@C8 ~]# nmcli n
disabled
[root@C8 ~]# nmcli n on
[root@C8 ~]# nmcli n
enabled

nmcli将网卡与连接分离开,网卡就是网卡,连接就是连接,一个网卡可以有多个连接,这一点很好理解,一个网卡本身就可以配置多个IP地址,每个IP地址都是一个连接,一个连接同一时间只能属于一个网卡,一个网卡在同一时间也只能有一个活跃的连接,连接是可以附加的任何网卡上的,connection就是连接,device就是网卡,connection和device就是nmcli当中最常使用的两个子命令。

  • connection
# 简写
nmcli connection 可简写成 nmcli c

# 常用命令,# 常见状态
nmcli connection show
	active:带颜色,表示当前connection生效
	inactive 不带颜色,表示当前conncction不生效

# 交互式编辑connection
nmcli connection edit CONNECTION_NEME
# 例子
[root@C8 ~]# nmcli connection show
NAME   UUID                                  TYPE      DEVICE 
ens33  3ef1f955-6936-473a-bc07-b8ba151b697d  ethernet  ens33  
[root@C8 ~]# nmcli connection edit ens33
[root@C8 ~]# nmcli connection edit 3ef1f955-6936-473a-bc07-b8ba151b697d 
  • device
# 简写
nmcli device 可简写成 nmcli d

# 常见状态,在这里status等同于connection当中的show,就是查看状态
[zhanghe@C8 ~]$ nmcli device status
DEVICE      TYPE      STATE         CONNECTION     状态
ens33       ethernet  connected     ens33          已连接
virbr0      bridge    disconnected  --             网卡已被Nmcli托管,但未有连接
ens37       ethernet  disconnected  --             网卡已经被nmcli托管,但未有连接
lo          loopback  unmanaged     --             网卡未被nmcli 托管
virbr0-nic  tun       unmanaged     --        
  • 修改
## 不交互,直接修改,修改之后需要通过nmcli connection up 重读才会生效,此操作是直接写入到配置文件当中。

# 自动获取
[zhanghe@C8 network-scripts]$ nmcli connection modify ens33 ipv4.method auto 
[zhanghe@C8 network-scripts]$ nmcli c up ens33

# 手动设置
[zhanghe@C8 network-scripts]$ nmcli connection modify ens33 ipv4.method manual

[zhanghe@C8 ~]$ nmcli connection show 
NAME    UUID                                  TYPE      DEVICE 
ens33   3ef1f955-6936-473a-bc07-b8ba151b697d  ethernet  ens33  
virbr0  0e1432b5-0b75-4607-82cb-682c2216c61c  bridge    virbr0

[zhanghe@C8 ~]$ nmcli connection modify ens33 ipv4.address 192.168.0.88
[zhanghe@C8 ~]$ nmcli connection modify ens33 ipv4.gateway 192.168.0.99
[zhanghe@C8 ~]$ nmcli connection modify ens33 ipv4.dns 223.5.5.5
[zhanghe@C8 ~]$ nmcli connection modify ens33 ipv4.routes "192.168.33.0/24 192.168.0.22"
[zhanghe@C8 ~]$ nmcli connection up ens33

# 连招
[zhanghe@C8 ~]$ nmcli connection modify ens33 ipv4.method manual ipv4.address 192.168.77.9/24 ipv4.gateway 192.168.77.1 ipv4.dns 223.7.7.7 ipv4.routes "192.168.73.0/24 192.168.77.9"
[zhanghe@C8 ~]$ nmcli connection up ens33
## 交互式
[zhanghe@C8 ~]$ nmcli connection edit ens33    
nmcli> goto ipv4.address
nmcli ipv4.addresses> change 
Edit 'addresses' value: 192.168.0.77/24
Do you also want to set 'ipv4.method' to 'manual'? [yes]: yes
nmcli ipv4.addresses> print
addresses: 192.168.0.77/24
nmcli ipv4.addresses> back
nmcli ipv4> goto ipv4.gateway
nmcli ipv4.gateway> change 
Edit 'gateway' value: 192.168.0.22
nmcli ipv4.gateway> print
gateway: 192.168.0.22
nmcli ipv4.routes> change 
Edit 'routes' value: 10.100.12.0/24 192.168.0.22
nmcli ipv4.routes> print
routes: { ip = 10.100.12.0/24, nh = 192.168.0.22 }
nmcli ipv4.gateway> back
nmcli ipv4> back
nmcli> save
nmcli> activate 

netplan

bresee@bresee:~$ vim /etc/netplan/50-cloud-init.yaml
network:
    version: 2
    renderer: networkd
    ethernets:
       enp129s0f0:
               dhcp4: no
               dhcp6: no
               addresses: [10.50.12.10/22]
               gateway4: 10.50.12.1
               nameservers:
                       addresses: [10.30.12.6,10.50.0.50]
							routes:
	             - to: 192.168.22.0/24 
	               via: 192.168.22.4
# 让netplan生效
netplan apply

route

[root@LAMP ~]# ip route add 0.0.0.0/0 via 192.168.80.1 dev eth0  #添加默认路由
[root@LAMP ~]# ip route add default via 192.168.80.1   #添加默认路由
[root@LAMP ~]# ip route add 192.168.90.0/24 via 192.168.80.1 dev eth0  #添加网络路由
[root@LAMP ~]# ip route add 192.168.100.1 via 192.168.80.1 dev eth0  #添加主机路

[root@LAMP ~]# ip route flush 0.0.0.0/0 via 192.168.80.1  #删除默认路由
[root@LAMP ~]# ip route flush default via 192.168.80.1  #删除默认路由
[root@LAMP ~]# ip route flush 192.168.1.1  #删除主机路由
[root@LAMP ~]# ip route flush 192.168.200.0 #删除主机路由

[root@LAMP ~]# ip route show
[root@LAMP ~]# ip route flush dev eth0

ss

 ss -tan state ESTABLISHED

检查套接字的工具

image-20200406135352187

网卡命名


posted @ 2020-04-06 13:56  张贺贺呀  阅读(502)  评论(0编辑  收藏  举报