一.网卡名字修改
1.网卡命名规则
- CentOS6之前基于传统的命名方式如: eth1, eth0....
- Centos7提供了不同的命名规则,默认是基于固件、拓扑、位置信息来分配
- 这样做的优点是命名是全自动的、可预知的,缺点是比eth0更难读, 比如ens33
2.网卡命名策略(了解)
3.配置网卡命名的方式
⛅为了方便先进到目录,改成你想要的名字
[root@shawn ~]
[root@shawn network-scripts]
⛅直接使用"sed"查找后替换掉
[root@shawn network-scripts]
⛅或者进配置文件进行修改
[root@shawn network-scripts]
⛅进入内核参数文件
[root@shawn network-scripts]
⛅修改这一行,"100"
GRUB_CMDLINE_LINUX="rhgb quiet 'net.ifnames=100 biosdevname=100'"
⛅加载到引导分区,生成菜单
[root@shawn network-scripts]
⛅重启系统生效,再查看是否成功
[root@shawn network-scripts]
[root@shawn ~]
eth100: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
二.基本网络配置
1.查看网卡连接状态
⛅查看当前系统所连接的所有网卡 (我这里只有一个网卡,所以显示一个)
[root@shawn ~]
02:00.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
⛅确认网卡是否连接(link ok 表示网卡能被识别,并且接了有效的网线)
[root@shawn ~]
eth100: negotiated 1000baseT-FD flow-control, link ok
⛅如果显示"failed: .....",则代表网线没连接等等
2.ifconfig
命令
⛅查看
ifconfig -a
ifconfif eth100
⛅配置,添加子接口
ifconfig eth100 192.168.12.188/24
ifconfig eth100 192.168.12.188 netmask 255.255.255.0
ifconfig eth100:1 192.168.12.199/24
⛅删除子接口
ifconfig eth100:1 down
ifconfig eth100:1 del 192.168.12.199
⛅开启与关闭网卡配置
ifconfig eth100 down/up
ifdown eth100 / ifup eth100
⛅设置网卡最大传输单元
ifconfig eth0 mtu 1500
⛅开启和关闭模式(了解)
ifconfig eth0 promisc
ifconfig eth0 -promisc
ifconfig eth0 multicast
ifconfig eth0 -multicast
ifconfig eth0 allmulti
ifconfig eth0 -allmulti
⛅添加删除"ipv6"地址
ifconfig eth0 add 3ffe:3240:800:1005: :2/64
ifconfig eth0 del 3ffe:3240:800:1005: :2/64
3.ifconfig 查看结果解释
[root@shawn ~]
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.12.188 netmask 255.255.255.0 broadcast 192.168.12.255
inet6 fe80::20c:29ff:fe93:fdc8 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:93:fd:c8 txqueuelen 1000 (Ethernet)
RX packets 192442 bytes 23005768 (21.9 MiB)
RX errors 0 dropped 3378 overruns 0 frame 0
TX packets 441431 bytes 34287197 (32.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
⛅全双工传输英文写法是:Full - Duplex Transmissions
是指交换机在发送数据的同时也能够接收数据,两者同步进行
这好像我们平时打电话一样,说话的同时也能够听到对方的声音,目前的交换机都支持全双工。
全双工的好处在于迟延小、冲突少、速度快
⛅半双工:就是指一个时间段内只有一个动作发生,
举个简单例子,一条窄窄的马路,同时只能有一辆车通过,当目前有两量车对开,这种情况下就只能一辆先过,等到头儿后另一辆再开
这个例子就形象的说明了半双工的原理
早期的对讲机、以及早期集线器等设备都是实行半双工的产品
随着技术的不断进步,半双工会逐渐退出历史舞台
⛅CRC即循环冗余校验码(Cyclic Redundancy Check)
是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定
循环冗余检查(CRC)是一种数据传输检错功能
对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传
输的正确性和完整性
⛅网卡发包
1、"ip"包 + 14 个字节的"mac"头变成数据帧"frame"
2、"frame"拷贝到网卡芯片内部的缓冲区,由网卡处理
3、网卡芯片为"frame"添加头部同步信息和"CRC"校验,此时才是真正可以发送的"packet",然后发送
该"packet"
⛅网卡收包
1、网络包"packet"到达网卡,网卡先检查包"packet"的"CRC"校验,保证其完整性和正确性,然后去掉它的头得到"frame"
2、网卡将"frame"拷贝到网卡内部的"FIFO"缓冲区
3、网卡驱动程序产生硬件中断,把"frame"从网卡拷贝到内存中,接下来就交给内核处理
⛅网卡丢包
1.内核通常需要快速的拷贝网络数据包到系统内存
2.因为网卡上接收网络数据包的缓存大小固定,而且相比系统内存也要小得多
3.所以上述拷贝动作一旦被延迟, 必然造成网卡FIFO缓存溢出-进入的数据包占满了网卡的缓存
4.后续的包只能被丢弃,这也应该就是"ifconfig"里的"overrun"的来源。
⛅丢包排查
网卡工作在数据链路层,数据量链路层,会做一些校验,封装成帧
我们可以查看校验是否出错,确定传输是否存在问题。然后从软件层面,是否因为缓冲区太小丢包
⛅先查看底层硬件情况
🌞查看工作模式是否正常
[root@shawn ~]
Speed: 1000Mb/s
Duplex: Full
🌞查看CRC校验是否正常
[root@shawn ~]
rx_crc_errors: 0
⛅通过"ifconfig"可以看到"overruns"是否一直增大,如果查看结果是一直增大
🌞先查看网卡缓冲区
[root@shawn ~]
Ring parameters for ens32:
Pre-set maximums:
RX: 4096
RX Mini: 0
RX Jumbo: 0
TX: 4096
Current hardware settings:
RX: 256
RX Mini: 0
RX Jumbo: 0
TX: 256
🌞进行调大,并再次查看
[root@shawn ~]
[root@shawn ~]
[root@shawn ~]
Ring parameters for ens32:
Pre-set maximums:
RX: 4096
RX Mini: 0
RX Jumbo: 0
TX: 4096
Current hardware settings:
RX: 2048
RX Mini: 0
RX Jumbo: 0
TX: 2048
[root@shawn ~]
[root@shawn ~]
[root@shawn ~]
⛅若想完成永久设置,可以将上述"ethtool"设置写入/"etc/rc.d/rc.local"之中
🌞然后记住必须要加一个x权限
[root@shawn ~]
6.ping
命令
⛅测试两台主机网络是否通
1. ping [目标IP地址]
2. ping -c [次数] [目标IP地址]
⛅禁止别人"ping"自己
7.关闭NetworkManager
服务
- NetworkManager是检测网络、自动连接网络的程序
- 网络管理器最初由 Redhat 公司开发,现在由 GNOME 管理
- 它会干扰网络配置, 比如: DNS经常被刷掉, 所以通常关闭
[root@shawn ~]
[root@shawn ~]
8./etc/sysconfig/network-script/ifcfg-xxx
配置文件相关信息
9.dns
配置文件
⛅可以设置DNS指向,最多三个
[root@shawn ~]
nameserver 8.8.8.8
nameserver 223.6.6.6
/etc/hosts
本地名称解析文件, 优先于DNS
⛅DNS检索优先级
浏览器缓存--->本地系统缓存--->本地计算机HOSTS文件--->ISP远程DNS--->递归or迭代搜索
10.永久设置主机名
⛅通过修改文件来永久修改主机名
[root@localhost ~]
⛅通过命令的方式也是永久修改
[root@localhost ~]
[root@localhost ~]
登出
⛅重新登入即可
11.查看端口与服务的对应关系
[root@shawn ~]
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥