Linux网络管理
一 . IP 地址与 IPv4
IP地址:是在计算机网络中用来唯一标识一台设备的一组数字。
ipv4的表示方法:点分十进制
IPv4 地址由 32 位二进制数组成,为了便于人类阅读和记忆,采用点分十进制表示法:
- 将 32 位二进制数分成 4 组,每组 8 位(称为一个 "字节")
- 每组 8 位二进制数转换为对应的十进制数(范围 0-255)
- 四组十进制数之间用小数点分隔,例如
192.168.1.1
ipv4地址结构:
IPv4 地址的 32 位被划分为两部分:网络位 和主机位,具体划分由子网掩码决定
网络位:表示哪一个网络
主机位:表示在该网络中具体的哪一台设备
例如:
对于 IP 地址192.168.1.100
和子网掩码255.255.255.0
(二进制11111111.11111111.11111111.00000000
)
- 网络位为前 24 位(对应子网掩码中 "1" 的部分),即
192.168.1
,表示该设备属于192.168.1
网段。 - 主机位为后 8 位,即
100
,表示该网段内的第 100 台设备。
ipv4分类:
A: 0.0.0.0~127.255.255.255 网络位 /8
B: 128.0.0.0~191.255.255.255 网络位 /16
C: 192.0.0.0~223.255.255.255 网络位 /24
D: 224.0.0.0~239.255.255.255
E: 240.0.0.0~255.255.255.255
A类私有ipv4地址: 10.0.0.0-----10.255.255.255
B类私有ipv4地址: 172.16.0.0-----172.31.255.255
C类私有ipv4地址: 192.168.0.0-----192.168.255.255
二 . Linux服务器当中配置IP的相关信息(四种方法)
1.图形化方法一(前提:图形化安装):


配置完成之后点击Apply(应用)

注意:需要先将其关闭再打开(标红位置点两下)
2.图形化方法二(前提:图形化安装):
终端中输入:nmtui( 进入Network Manager TUI 的界面)




更改完成之后,移动到页面最下方




最后返回退出


3.更改配置文件:
(1)查看网卡的配置文件:
powershell
[root@stw ~]# cd /etc/sysconfig/network-scripts/
[root@stw network-scripts]# ls
ifcfg-ens33 ifdown-ppp ifup-ib ifup-Team
ifcfg-lo ifdown-routes ifup-ippp ifup-TeamPort
ifdown ifdown-sit ifup-ipv6 ifup-tunnel
ifdown-bnep ifdown-Team ifup-isdn ifup-wireless
ifdown-eth ifdown-TeamPort ifup-plip init.ipv6-global
ifdown-ib ifdown-tunnel ifup-plusb network-functions
ifdown-ippp ifup ifup-post network-functions-ipv6
ifdown-ipv6 ifup-aliases ifup-ppp
ifdown-isdn ifup-bnep ifup-routes
ifdown-post ifup-eth ifup-sit

(2)编辑这个配置文件:
powershell
[root@stw network-scripts]# vim ifcfg-ens33

重要的一些配置:
TYPE=Ethernet ------网卡类型:以太网
BOOTPROTO=none ------网络配置方式:none、static--手动配置 dhcp--自动获取
NAME=ens33 ------网络链接名称
UUID=44f1b6ef-509f-42e1-88ab-ff974b9dc01b ---网卡的唯一标识
DEVICE=ens33 ---网卡设备名称
ONBOOT=yes ----网卡下次启动的状态,yes启动,no不启动(一定设置为yes)
IPADDR=192.168.100.30 -----网卡的ipv4的地址
NETMASK=255.255.255.0 或者 PREFIX=24 ----网络位、子网掩码
GATEWAY=172.16.30.1 ----网关
DNS1=172.16.30.254 -----DNS
(3)现在把IP地址改成192.168.100.30后保存退出

但是可以发现IP地址并没有改变

(4)需要重启网卡服务
powershell
[root@stw network-scripts]# systemctl restart network
再次查看是否更改成功

可以发现,已经成功更改为192.168.100.30
4.依靠纯命令更改:
-
nmcli connection show -----列出当前主机所有可用的网络连接
-
修改ens33的IP地址为192.168.100.30/24 网关192.168.100.254 dns为114.114.114.114
nmcli connection modify ens33 ipv4.addresses 192.168.100.30/24 ipv4.gateway 192.168.100.254 ipv4.dns 114.114.114.114 ipv4.method manual connection.autoconnect yes
- 激活网络连接nmcli connection up ens33
(1)可以先查看系统中所有已经配置的网络连接
powershell
[root@stw network-scripts]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 44f1b6ef-509f-42e1-88ab-ff974b9dc01b ethernet ens33
virbr0 d653f5e4-420d-4e5f-b474-3c67c1202f3c bridge virbr0

(2)修改ens33的IP地址为192.168.100.30/24 网关192.168.100.254 dns为114.114.114.114
powershell
[root@stw network-scripts]# nmcli connection //可以通过按两次Tab键查看提示
add delete edit help load monitor show
clone down export import modify reload up
[root@stw network-scripts]# nmcli connection modify
ens33 help path uuid
filename id --temporary virbr0
[root@stw network-scripts]# nmcli connection modify ens33
[root@stw network-scripts]# nmcli connection modify ens33 ipv4.
ipv4.addresses ipv4.dns ipv4.may-fail
ipv4.dad-timeout ipv4.dns-options ipv4.method
ipv4.dhcp-client-id ipv4.dns-priority ipv4.never-default
ipv4.dhcp-fqdn ipv4.dns-search ipv4.route-metric
ipv4.dhcp-hostname ipv4.gateway ipv4.routes
ipv4.dhcp-send-hostname ipv4.ignore-auto-dns ipv4.route-table
ipv4.dhcp-timeout ipv4.ignore-auto-routes
[root@stw network-scripts]# nmcli connection modify ens33 ipv4.addresses 192.168.100.30/24 ipv4.dns 114.114.114.114 ipv4.gateway 192.168.100.254 ipv4.method manual connection.autoconnect yes //完整命令
(3)查看是否配置成功(可以看出并没有成功配置)

(4)激活网络连接
power
[root@stw network-scripts]# nmcli connection up ens33
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
(5)再次查看可以看出已经成功配置

三 . 添加网卡和相关信息
1、虚拟机--设置--添加--选中网络适配器--添加--选择仅主机--确定
2、添加网络连接
nmcli connection add con-name ens33 ifname ens33 type ethernet
3、给网卡配置IPv4地址
nmcli connection modify ens33 ipv4.addresses 192.168.100.20/24 ipv4.gateway 192.168.100.254 ipv4.dns 114.114.114.114 ipv4.method manual connection.autoconnect yes
4、激活网络连接
nmcli connection up ens33
1、虚拟机--设置--添加--选中网络适配器--完成--选择仅主机(可自行选择
我这里选择NAT模式)--确定



查看我配置的网卡(真实名称为ens36)

但是我的网卡的配置文件中没有我新配置的网卡

查看已配置的所有网络连接,然后删除掉我新配置进去的网络连接,再次查看
powersell
[root@stw ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 44f1b6ef-509f-42e1-88ab-ff974b9dc01b ethernet ens33
virbr0 d653f5e4-420d-4e5f-b474-3c67c1202f3c bridge virbr0
Wired connection 1 55c217d0-aa81-38f0-9d73-855c788dc464 ethernet --
[root@stw ~]# nmcli connection delete Wired\ connection\ 1
Connection 'Wired connection 1' (55c217d0-aa81-38f0-9d73-855c788dc464) successfully deleted.
[root@stw ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 44f1b6ef-509f-42e1-88ab-ff974b9dc01b ethernet ens33
virbr0 d653f5e4-420d-4e5f-b474-3c67c1202f3c bridge virbr0
2、添加网络连接
powershell
[root@stw ~]# nmcli connection add con-name ens36 type ethernet ifname ens36
Connection 'ens36' (2e1f9b54-1567-45a7-b6ca-07ffdf64281e) successfully added.
[root@stw ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 44f1b6ef-509f-42e1-88ab-ff974b9dc01b ethernet ens33
virbr0 d653f5e4-420d-4e5f-b474-3c67c1202f3c bridge virbr0
ens36 2e1f9b54-1567-45a7-b6ca-07ffdf64281e ethernet ens36
[root@stw ~]# cd /etc/sysconfig/network-scripts/
[root@stw network-scripts]# ls
ifcfg-ens33 ifdown-post ifup-eth ifup-sit
ifcfg-ens36 ifdown-ppp ifup-ib ifup-Team
ifcfg-lo ifdown-routes ifup-ippp ifup-TeamPort
ifdown ifdown-sit ifup-ipv6 ifup-tunnel
ifdown-bnep ifdown-Team ifup-isdn ifup-wireless
ifdown-eth ifdown-TeamPort ifup-plip init.ipv6-global
ifdown-ib ifdown-tunnel ifup-plusb network-functions
ifdown-ippp ifup ifup-post network-functions-ipv6
ifdown-ipv6 ifup-aliases ifup-ppp
ifdown-isdn ifup-bnep ifup-routes
查看配置文件可以看出已经存在ens36网卡

3、给网卡配置IPv4地址
4、激活网络连接
powershell
[root@stw network-scripts]# nmcli connection modify ens36 ipv4.addresses 192.168.100.100/24 ipv4.dns 114.114.114.114 ipv4.gateway 192.169.100.254 ipv4.method manual connection.autoconnect yes
[root@stw network-scripts]# nmcli connection up ens36
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/29)
[root@stw network-scripts]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 44f1b6ef-509f-42e1-88ab-ff974b9dc01b ethernet ens33
ens36 2e1f9b54-1567-45a7-b6ca-07ffdf64281e ethernet ens36
virbr0 d653f5e4-420d-4e5f-b474-3c67c1202f3c bridge virbr0

可以看出我的查看到的新增的网络连接字段从姜黄色变成了绿色
四 . 移除网卡信息
1、删除网卡的配置文件
cd /etc/sysconfig/network-scripts/
rm -rf ifcfg-ens36
2、删除网卡的网络连接
nmcli connection delete ens36
3、移除网卡
虚拟机--设置--选中网络适配器--移除--确定
1、删除网卡的配置文件
powershell
[root@stw ~]# cd /etc/sysconfig/network-scripts/
[root@stw network-scripts]# ls
ifcfg-ens33 ifdown-post ifup-eth ifup-sit
ifcfg-ens36 ifdown-ppp ifup-ib ifup-Team
ifcfg-lo ifdown-routes ifup-ippp ifup-TeamPort
ifdown ifdown-sit ifup-ipv6 ifup-tunnel
ifdown-bnep ifdown-Team ifup-isdn ifup-wireless
ifdown-eth ifdown-TeamPort ifup-plip init.ipv6-global
ifdown-ib ifdown-tunnel ifup-plusb network-functions
ifdown-ippp ifup ifup-post network-functions-ipv6
ifdown-ipv6 ifup-aliases ifup-ppp
ifdown-isdn ifup-bnep ifup-routes
[root@stw network-scripts]# rm -rf ifcfg-ens36
再次查看可以看出已经ifcfg-ens36被移除
powershell
[root@stw network-scripts]# ls
ifcfg-ens33 ifdown-ppp ifup-ib ifup-Team
ifcfg-lo ifdown-routes ifup-ippp ifup-TeamPort
ifdown ifdown-sit ifup-ipv6 ifup-tunnel
ifdown-bnep ifdown-Team ifup-isdn ifup-wireless
ifdown-eth ifdown-TeamPort ifup-plip init.ipv6-global
ifdown-ib ifdown-tunnel ifup-plusb network-functions
ifdown-ippp ifup ifup-post network-functions-ipv6
2、删除网卡的网络连接
powershell
[root@stw network-scripts]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 44f1b6ef-509f-42e1-88ab-ff974b9dc01b ethernet ens33
ens36 2e1f9b54-1567-45a7-b6ca-07ffdf64281e ethernet ens36
virbr0 d653f5e4-420d-4e5f-b474-3c67c1202f3c bridge virbr0
[root@stw network-scripts]# nmcli connection delete ens36
Connection 'ens36' (2e1f9b54-1567-45a7-b6ca-07ffdf64281e) successfully deleted.
[root@stw network-scripts]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 44f1b6ef-509f-42e1-88ab-ff974b9dc01b ethernet ens33
virbr0 d653f5e4-420d-4e5f-b474-3c67c1202f3c bridge virbr0
查看到ens36这一条已经被删除

3、移除网卡

五 . 静态路由
1.开启IP转发(只有开启IP转发功能这台服务器才具有路由功能)
powershell
[root@stw ~]# vim /etc/sysctl.conf

对开启IP转发进行应用
powershell
[root@stw ~]# sysctl -p
net.ipv4.ip_forward = 1
主机1:192.168.100.10
主机2: 192.168.100.20
因为是同一网段的所以两台主机可以相互ping通
主机1:
powershell
[root@stw network-scripts]# ping 192.168.100.20
PING 192.168.100.20 (192.168.100.20) 56(84) bytes of data.
64 bytes from 192.168.100.20: icmp_seq=1 ttl=64 time=0.654 ms
64 bytes from 192.168.100.20: icmp_seq=2 ttl=64 time=0.632 ms
64 bytes from 192.168.100.20: icmp_seq=3 ttl=64 time=0.863 ms
^C
--- 192.168.100.20 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.632/0.716/0.863/0.106 ms
主机1:
IP:192.168.100.10
GW:192.168.100.254
主机2:
IP:192.168.100.20
GW:192.168.200.254
现在两台主机处于不同网段,ping不通
主机1:
powershell
[root@stw ~]# ping 192.168.200.20
PING 192.168.200.20 (192.168.200.20) 56(84) bytes of data.
^C
--- 192.168.200.20 ping statistics ---
37 packets transmitted, 0 received, 100% packet loss, time 36015ms
将两台主机开启IP转发功能(略)
查看路由表发现都没有对方的路由信息
主机1:
powershell
[root@stw ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
192.168.100.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
主机2:
powershell
[root@stw2 ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.200.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
2.目标是主机 -host
(1)主机1:(配置静态路由,并且可以看到已经转发到了主机2的路由条目)
powershell
[root@stw ~]# route add -host 192.168.200.20 gw 192.168.100.254 dev ens33
[root@stw ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
192.168.100.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.200.20 gateway 255.255.255.255 UGH 0 0 0 ens33
(2)主机2:(配置静态路由,并且可以看到已经转发到了主机1的路由条目)
powershell
[root@stw2 ~]# route add -host 192.168.100.10 gw 192.168.200.254 dev ens33
[root@stw2 ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
192.168.100.10 gateway 255.255.255.255 UGH 0 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.200.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
因为虚拟机的网关是我们自己配置的虚拟网关(假网关)所以仍然ping不通
但是在实际的配置当中做完如上配置是可以ping通的
powershell
[root@stw ~]# ping 192.168.200.20
PING 192.168.200.20 (192.168.200.20) 56(84) bytes of data.
^C
--- 192.168.200.20 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 999ms
(3)删除静态路由
主机1:
powershell
[root@stw ~]# route del -host 192.168.200.20 gw 192.168.100.254 dev ens33
[root@stw ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
192.168.100.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
主机2:
powershell
[root@stw2 ~]# route del -host 192.168.100.10 gw 192.168.200.254 dev ens33
[root@stw2 ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.200.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
3.目标是网络 -net (可以需要配置网关,也可以不需要配置网关,但需要掩码)
主机1:(配置静态路由,并且可以看到已经转发到了主机2的网段的路由条目)
powershell
[root@stw ~]# route add -net 192.168.200.0 netmask 255.255.255.0 dev ens33
[root@stw ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
192.168.100.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.200.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
主机2:(配置静态路由,并且可以看到已经转发到了主机1的网段的路由条目)
powershell
[root@stw2 ~]# route add -net 192.168.100.0 netmask 255.255.255.0 dev ens33
[root@stw2 ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.200.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
对网段配置静态路由可以ping通(没有用到网关)
主机1:
powershell
[root@stw ~]# ping 192.168.200.20
PING 192.168.200.20 (192.168.200.20) 56(84) bytes of data.
64 bytes from 192.168.200.20: icmp_seq=1 ttl=64 time=1.70 ms
64 bytes from 192.168.200.20: icmp_seq=2 ttl=64 time=0.463 ms
64 bytes from 192.168.200.20: icmp_seq=3 ttl=64 time=7.19 ms
64 bytes from 192.168.200.20: icmp_seq=4 ttl=64 time=8.42 ms
^C
--- 192.168.200.20 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3125ms
rtt min/avg/max/mdev = 0.463/4.447/8.424/3.418 ms
禁ping操作:
对主机1进行禁 ping 操作
主机1:
powershell
[root@stw ~]# vim /etc/sysctl.conf

powershell
[root@stw ~]# sysctl -p /etc/sysctl.conf
在主机2:
powershell
[root@stw2 ~]# ping 192.168.100.10
PING 192.168.100.10 (192.168.100.10) 56(84) bytes of data.
^C
--- 192.168.100.10 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3006ms