当前位置: 首页 > news >正文

[Linux] Linux网络管理

目录

网络基础回顾

OSI 模型

TCP/IP 模型

IPV4 地址

IPV4 路由

查看网络配置

网卡信息

查看 IP

查看路由

查看 dns

网络连通性测试

ping测试

路由跟踪

ss工具

配置网络

环境准备

自动配置

手动配置

nmcli命令

网络启停

设备控制

自动获取和手动配置

网络配置文件

配置主机名和名称解析

配置主机名

配置名称解析

配置 /etc/hosts

配置 DNS 服务器

小知识:


网络基础回顾

OSI 模型

  1. 物理层:提供为建立、维护和拆除物理链路所需要的机械的、电气的、功能的和规程的特性;有关的物理链路上传输非结构的位流以及故障检测指示。

  2. 数据链路层:在网络层实体间提供数据发送和接收的功能和过程;提供数据链路的流控。

  3. 网络层:控制分组传送系统的操作、路由选择、拥护控制、网络互连等功能,它的作用是将具体的物理传送对高层透明。

  4. 传输层:提供建立、维护和拆除传送连接的功能;选择网络层提供最合适的服务;在系统之间提供可靠的透明的数据传送,提供端到端的错误恢复和流量控制。

  5. 会话层:提供两进程之间建立、维护和结束会话连接的功能;提供交互会话的管理功能,如三种数据流方向的控制,即一路交互、两路交替和两路同时会话模式 。

  6. 表示层:代表应用进程协商数据表示;完成数据转换、格式化和文本压缩。

  7. 应用层:提供OSI用户服务,例如事务处理程序、文件传送协议和网络管理等。

TCP/IP 模型

IPV4 地址

IPV4 路由

查看网络配置

网卡信息

网卡名称:

  • 旧名称,eth0 eth1。(Ethernet)

  • 新名称,根据网卡的拓扑类型命名。例如ens192,eno4。

linux网络接口传统的名称为eth0 eth1 eth2 ….ethN。然而这种机制会引起一些问题,例如网络接口的增加和删除。

在rhel7或者更高版本中,接口命名规则如下

  • 前2个字符:Ethernet 接口以en开头,WLAN接口以wl开头,WWAN接口以ww开头。

  • 下一个字符:o(onboard)代表板载设备,s(slot)代表PCI热插拔,p代表pci接口网卡。

  • 最后N表示index ID或者port。

例如

  • eno1,代表Ethernet 类型、板载设备、端口号是1的网卡。

  • wlp4s0,代表位于PCI总线4上插槽0中的WLAN卡。如果该卡是一个多功能设备(具有多个端口或者具有一些其他功能)。示例,enp0s1f0代表位于PCI总线0上插槽1中的以太网卡的功能0。

  • 如果无法分配固定接口名,将使用传统方式ethN命名。

关注mac地址:00:0c:29:6e:7c:e9

 # 查看网络设备清单
 [root@rocky8 ~]# ip link
&nbsp;1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
&nbsp; &nbsp;  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
&nbsp;2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
&nbsp; &nbsp;  link/ether 00:0c:29:6e:7c:e9 brd ff:ff:ff:ff:ff:ff
&nbsp;... ...
&nbsp;​
&nbsp;# 查看单个网络设备信息
&nbsp;[root@rocky8 ~]# ip link show ens192 
&nbsp;2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
&nbsp; &nbsp;  link/ether 00:0c:29:6e:7c:e9 brd ff:ff:ff:ff:ff:ff
查看 IP

关注IP地址和掩码位数:10.1.8.10/24。

&nbsp;[root@rocky8 ~]# ip addr show ens192 
&nbsp;2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
&nbsp; &nbsp;  link/ether 00:0c:29:6e:7c:e9 brd ff:ff:ff:ff:ff:ff
&nbsp; &nbsp;  inet 10.1.8.10/24 brd 10.1.8.255 scope global noprefixroute ens192
&nbsp; &nbsp; &nbsp; &nbsp; valid_lft forever preferred_lft forever
&nbsp; &nbsp;  inet6 fe80::1ef8:97bd:4b70:c805/64 scope link noprefixroute 
&nbsp; &nbsp; &nbsp; &nbsp; valid_lft forever preferred_lft forever
查看路由

default代表主机的网关,也就是10.1.8.2

&nbsp;[root@rocky8 ~]# ip route
&nbsp;default via 10.1.8.2 dev ens192 proto static metric 100 
&nbsp;10.1.8.0/24 dev ens192 proto kernel scope link src 10.1.8.10 metric 100 
&nbsp;192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1

说明:

  1. 直连网络10.1.8.0/24和192.168.122.0/24,可以 直接通信。

  2. 其他网络中主机,通过默认路由发送到目标,这里是default对应的条目,也就是10.1.8.2。

查看 dns

/etc/resolv.conf 文件中nameserver指明服务想哪个DNS服务器查询域名对应IP。

[root@rocky8 ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
search demisse.cloud
nameserver 218.2.135.1

网络连通性测试

ping测试

ping www.baidu.com -c 4

路由跟踪

#若ping不通,可以跟踪路由,查看数据最远到达位置
mtr -n 1.1.1.1

ss工具

ss命令用于查看系统中网络状态信息

ss -ltnu4
  • -l(listening):仅显示 监听状态 的套接字(服务端端口)。

  • -t(TCP):显示 TCP 协议 的套接字。

  • -n(numeric):以 数字形式 显示 IP 和端口(不解析域名和服务名,如 22 而不是 ssh)。

  • -u(UDP):显示 UDP 协议 的套接字。

  • -4(IPv4):仅显示 IPv4 的套接字(不包括 IPv6)。

  • -a :查看所有

配置网络

环境准备

在虚拟机中新添加一个网卡,设置为

启动虚拟机

#验证网卡是否添加成功
ip -br link

自动配置

#服务器配置
[17:10:59 root@client-znf ~]# nmtui

使用上下键、tab键进行移动,回车选中条目

进入编辑连接,找到有线连接,进入替换为ens224

配置完后点击确定,返回到主界面,移动到启用连接

启用ens224

退出该界面。

手动配置

其余步骤相同

自动配置用在无静态IP地址需求的其他情况,手动配置用在需要静态IP的情况。

nmcli命令

网络启停

如果网络停用了,右上角网络连接会消失。

#停用网络
nmcli networking off

#启用网络
nmcli networking off

设备控制

device是设备(网卡),connection是连接(网卡的配置)

#显示设备列表状态信息
nmcli device

#断开设备链接
[10:57:59 root@server-znf ~]# nmcli device disconnect ens224

#连接设备
[11:03:07 root@server-znf ~]# nmcli device connect ens224

自动获取和手动配置

#添加连接
nmcli connection add type ethernet
#查看
nmcli connection show
#删除连接
nmcli connection delete ethernet 
#添加动态连接
nmcli connection add type ethernet ifname ens224 con-name ens224-dynamic 
#查看
ip -br a
#添加静态连接
nmcli connection add type ethernet ifname ens224 con-name ens224-static 
#配置静态连接
nmcli connection modify ens224-static \
ipv4.method manual \
ipv4.addresses 10.1.1.10/24 \
ipv4.gateway 10.1.1.2 \
ipv4.dns 8.8.8.8
#启用静态连接
nmcli connection up ens224-static 
#禁用ipv6
nmcli connection modify ens224-static ipv6.method disabled 
#启用
nmcli connection up ens224-static
#查看
ip -br a
网络配置文件

提示:尽量不要通过手动修改配置,来配置网络。

# 动态配置
[root@server ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens192-dynamic 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=default
NAME=ens192-dynamic
UUID=27d7dd0a-a5d1-4ed8-81ad-1051f89f89d1
DEVICE=ens192
ONBOOT=yes# 静态配置
[root@server ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens192-static 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=10.1.8.20
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=default
NAME=ens192-static
UUID=652c8436-ac91-4697-b4ad-43d8dac83f8f
DEVICE=ens192
ONBOOT=yes
GATEWAY=10.1.8.2
DNS1=10.1.8.2# 某个网卡的路由配置
[root@server ~]# cat /etc/sysconfig/network-scripts/route-ens192-static 
ADDRESS0=192.168.50.0
NETMASK0=255.255.255.0
GATEWAY0=10.1.8.2

配置主机名和名称解析

配置主机名

主机名规范:短名称+域名,例如rocky8.demisse.cloud。主机名是rocky8,域名是demisse.cloud。

# 查看主机名
[root@rocky8 ~]# hostname
rocky.demisse.cloud# hostnamectl命令修改主机名同时会同修改配置文件/etc/hostname
[root@rocky8 ~]# hostnamectl set-hostname rocky8.demisse.cloud
# 或者直接修改配置文件
[root@rocky8 ~]# vim /etc/hostname
rocky8.demisse.cloud# 重启依然有效
[root@rocky8 ~]# reboot# hostname命令设置的主机名,重启将失效。
配置名称解析

当访问其他主机的时候,名称也会映射为IP地址,与目标主机通信。

linux服务器解析名称顺序如下:

  1. /etc/hosts 文件

  2. DNS 服务器

配置 /etc/hosts
[root@rocky8 ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain610.1.8.10   rocky8.demisse.cloud rocky8 abc haha[root@rocky8 ~]# ping -c2 rocky8
PING rocky8.demisse.cloud (10.1.8.10) 56(84) bytes of data.
64 bytes from rocky8.demisse.cloud (10.1.8.10): icmp_seq=1 ttl=64 time=0.024 ms
64 bytes from rocky8.demisse.cloud (10.1.8.10): icmp_seq=2 ttl=64 time=0.054 ms--- rocky8.demisse.cloud ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1023ms
rtt min/avg/max/mdev = 0.024/0.039/0.054/0.015 ms[root@rocky8 ~]# ping -c2 abc
PING rocky8.demisse.cloud (10.1.8.10) 56(84) bytes of data.
64 bytes from rocky8.demisse.cloud (10.1.8.10): icmp_seq=1 ttl=64 time=0.026 ms
64 bytes from rocky8.demisse.cloud (10.1.8.10): icmp_seq=2 ttl=64 time=0.043 ms--- rocky8.demisse.cloud ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1034ms
rtt min/avg/max/mdev = 0.026/0.034/0.043/0.010 ms[root@rocky8 ~]# ping rocky9
ping: rocky9: 未知的名称或服务
配置 DNS 服务器

使用 nmtui 配置DNS服务器。

# 删除 DNS 服务器配置
[root@rocky8 ~]# nmcli connection modify ens160 -ipv4.dns 218.2.135.1
[root@rocky8 ~]# nmcli connection up ens160# 断开另外一个网卡
[root@rocky8 ~]# nmcli device disconnect ens192# 确保以下文件中没有 nameserver 记录
[root@rocky8 ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
search demisse.cloud[root@rocky8 ~]# ping baidu.com
ping: baidu.com: 未知的名称或服务# 配置DNS服务器,再验证
[root@rocky8 ~]# nmcli connection modify ens160 ipv4.dns 218.2.135.1
[root@rocky8 ~]# nmcli connection up ens160 
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/24)
[root@rocky8 ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
search demisse.cloud
nameserver 218.2.135.1# ping公网服务器,通过 dns 服务器获取地址
[root@rocky8 ~]# ping -c2 baidu.com 
PING baidu.com (110.242.68.66) 56(84) bytes of data.
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=1 ttl=128 time=35.5 ms
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=2 ttl=128 time=34.6 ms--- baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 34.667/35.115/35.563/0.448 ms[root@rocky8 ~]# ping -c2 www.baidu.com
PING www.a.shifen.com (180.101.50.242) 56(84) bytes of data.
64 bytes from 180.101.50.242 (180.101.50.242): icmp_seq=1 ttl=128 time=3.15 ms
64 bytes from 180.101.50.242 (180.101.50.242): icmp_seq=2 ttl=128 time=3.19 ms--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 3.149/3.167/3.185/0.018 ms# baidu.com 域中没有 hello 该主机,所以 ping
[root@rocky8 ~]# ping hello.baidu.com
ping: hello.baidu.com: 未知的名称或服务

小知识:

如果在client上执行命令ssh zhangsan@server,访问失败,可能的原因有:

  • 网络问题

  • 物理链路:是否连接网线、网卡是否有问题

  • 逻辑配置:客户端和服务端网络配置,ip手动配置错误,网关配置错误,dns或者/etc/hosts有问题,networking是否打开

  • 防火墙设置

  • ssh服务问题

  • ssh服务是否启动、ssh服务配置是否禁止用户登录、客户端版本和服务端版本不匹配

http://www.lryc.cn/news/622555.html

相关文章:

  • 跨域:浏览器有同源策略,但是为何 cdn 请求资源的时候不会有跨域限制?
  • 【低成本扩容】动态扩容实战指南
  • AMD Ryzen AI Max+ 395四机并联:大语言模型集群推理深度测试
  • 开源 Arkts 鸿蒙应用 开发(十八)通讯--Ble低功耗蓝牙服务器
  • 昇腾AI自学Day2-- 深度学习基础工具与数学
  • 利用cursor+MCP实现浏览器自动化释放双手
  • vscode中使用CMake Tools生成compile_commands.json文件后,如何告诉clangd这个文件在哪里呢?
  • 新手向:Python列表、元组、集合和字典的用法对比
  • JavaScript 核心语法与实战笔记:从基础到面试高频题
  • macOS 中查看当前生效 shell 及配置文件的方法
  • linux网络基础
  • 二叉树的三种遍历方法
  • KVM虚拟化技术解析:从企业应用到个人创新的开源力量
  • 开源 Arkts 鸿蒙应用 开发(十七)通讯--http多文件下载
  • 4.6 Vue 3 中的模板引用 (Template Refs)
  • Vue中的数据渲染【4】
  • java 面试八股集锦
  • IO流-打印流
  • ROS相关的ubuntu基础教程
  • 移动互联网发展战略
  • Android面试指南(一)
  • C#WPF实战出真汁08--【消费开单】--餐桌面板展示
  • C#WPF实战出真汁09--【消费开单】--选择菜品
  • Linux软件编程--线程
  • socket编程UDP
  • 深度解析和鲸社区热门项目:电商双 11 美妆数据分析的细节与价值
  • AI Agents 2025年十大战略科技趋势
  • 【Java学习】锁、线程死锁、线程安全2
  • 【原理】C# 字段、属性对比及其底层实现
  • 使用npm/pnpm自身安装指定版本的pnpm