Linux网络基础配置与网络进阶管理
一、 网络基本配置:
真不敢想象没有网络的一天 应该怎样度过,但是有了网络就行了?原来刚有了网络时由于没有统一的标准,各大硬件厂商各自为政,都在搞网络,但是都只是同一厂商的设备可以进行通讯,就 和不同的国家的人交流使用了不同的语言一样,难以将所有的网络连接起来,之后Internet有了统一的标准,大家都遵循它的标准,后来计算机才能进行网 络通讯,同样将linux主机接入网络也必须进行配置它的网络,及其相关的主机名等,下面将逐一进行配置:
1. 主机名:
rhel6中主机名修改
2. ip/mask,路由,默认网关等使用过命令进行设置:
注:在rhel6和rhel7中都可使用上面的命令进行修改,rhel6和rhel7中都可以使用network、NetworkManager两个服务进行对网络管理,但是在rhel6当中建议使用network服务rhel6中NetworkManager服务可能不太稳定,许多环境下会关闭该服务,比如在双网卡绑定,网卡别名等情况下。在rhel7当中推荐使用后者。原因是如果两个服务同时存在有可能修改配置文件不起作用,建议使用一个服务,另一个停掉,这样不会引起冲突。
3. DNS服务设置:
(可以配置多个DNS服务器。主次第三DNS服务器)两个版本的系统均在配置文件中配置即可,当然也可以使用命令如nmcli等。DNS对应的配置文件是 /etc/resolv.conf ,如果在网卡的配置文件当中PEERDNS配置的选项如果为yes,并且IP地址是自动获取,则按网卡的配置文件自动生成该文件,DNS解析时会首先查找/etc/hosts文件,如果该文件没有响应的记录,则会查找/etc/resolv.conf文件,当然可以修改配置文件/etc/nsswitch.conf 找到#hosts开头的下一行将hosts后面的两个参数调换顺序即可改变两者的优先级。
4. 网络配置文件:
在/etc/sysconfig/network-scripts 目录下,存放网络启动相关的配置信息,静态指定的方式除了上面的临时指定,还有通过文本图形化设置,也非常方便:
网卡配置文件文件如下:
二、网卡别名(rhel6中):
可以将多个IP绑定到一个网卡上面网卡名字的DEVICE后面加冒号和相应的数字,可以自己定义,如eth0:1,在配置是注意在真实的物理网卡配置上可以配置dhcp,别名上面只能使用静态IP给主机添加IP,其他配置和一般的网卡配置一样,网卡别名可以用在如为多个vlan提供服务,因为多个vlan是属于不同的网络中,所以一台服务器可以为一块网卡配置多个ip,使它分属于不同的vlan。rhel7中可以在配置文件中使用索引的方式添加多个IP,也可以使用nmcli命令进行直接添加无需添加别名设置
三、 ip命令使用:
ip可以临时性管理ip地址,包括添加删除,添加别名:
示例:
四、 nmcli命令的使用
nmcli是一个控制和管理NetworkManager服务的命令行工具,nmcli可以实现报告网络状态,修改,删除编辑创建等操作,在NetworkManager管理思想中,网络设备是关联一个链接名的,通过链接的配置信息绑定至网卡等设备上,使得设备生效下面是它的使用方法和具体案例:
nmcli dev status :列出所有设备
nmcli dev dis <DEV> 关闭硬件接口
nmcli con show :列出所有连接
nmcli con up <ID>:激活ID连接
nmcli con down <ID> 取消激活
nmcli dev dis <DEV> 中断物理接口,并且暂时禁用自动连接
nmcli net off :禁用所有管理的接口
nmcli con add … :添加新连接
nmcli con mod <ID> 修改连接
nmcli con del <ID> 删除连接
nmcli con reload 重新加载配置
nm-connection-editor 图形化管理工具
nmtui 文本字符的图形化管理工具
注:此处的ID即为nmcli创建的链接名
示例:
为物理接口添加一个类型为Ethernet,链接名为classlink,自动连接,具有如下ip和网关的连接
附:nmcli命令生成的配置文件中选项与配置文件对应项:
五、 几种常见的网卡绑定工作模式:
网卡绑定可以提高网络的冗余,保证网络可靠性,提高网络速度。拥有等许多单网卡没有的优势,在rhel6中该技术名字叫网卡绑定,到了rhel7当中,有了网络工作组的概念实质上原理相同。
1. mode 0 (round-robin)从头到尾的在每一个slave网卡上顺序发送数据包,该模式可以提供负载均衡和容错
2. mode1(active-backup)主备模式,在同一时间只有一个处于活动,为了防止交换机发生混乱此时绑定的mac地址只有一个外部端口可见
3. mode3(broadcast)广播策略在所有的slave接口上传送相同的报文,本模式提供容错能力
六、网卡绑定bonding(以bond0为例)与网络工作组配置:
1. bonding配置步骤:
创建bonding设备的配置文件,然后添加需要绑定的物理设备
卸载bond时,删除相关配置文件,卸载bonding模块,首先使用lsmod找到bonding模块,然后使用rmmod 查到的模块名称(许多人更喜欢使用modprobe -r 模块名)来代替使用rmmod )
最后用wireshare可以抓到ping包的icmp包:
2. rhel7中网络工作组(Networking Teaming)配置:
网络工作组和旧版的bonding技术相比提供更好的性能和扩展性,由守护进程teamd和内核驱动实现:多种工作方式(runner):broadcast、roundrobin、activebackup、
loadbalance、lacp。其中除了activebackup这种方式外,其它都需要交换机支持,如交换机的端口聚合等技术否则无法实现响应的功能。需要注意的是:在启动网络组时不会启动网络组的物理分配的port接口,需要手动启动,启用物理接口时也不会启动网络组这种逻辑接口。但是禁用网络组接口,会禁用组中的物理port接口。
(1) 创建网络组:
nmcli con add type team con-name CNAME ifname
INAME [config JSON]
CNAME 连接名,INAME 接口名
JSON 指定runner 方式
格式:'{"runner": {"name": "METHOD"}}' # 两个冒号后面分别有一个空格
METHOD 可以是broadcast, roundrobin, activebackup, loadbalance, lacp.
(2) 创建port接口:
nmcli con add type team-slave con-name CNAME ifname INAME master TEAM
CNAME 连接名, INAME 网络接口名,TEAM 网络组
接口名.
连接名若不指定,默认为team-slave-IFACE .
nmcli dev dis INAME; nmcli con up CNAME
INAME 名 设备名 CNAME 网络组接口名或port
具体示例:
下面将创建一个逻辑设备名是team0,物理设备名也叫team0(因为team本来是一个逻辑设备,所以只好指定物理设备也是它啦!其实它是不存在的了),添加两块物理网卡,连接名为team0-port1,team0-port2 。物理网卡真实名字为eno50332208和eno33554984,并设定team的工作方式为activebackup,指定其ip地址dns网关,子网掩码等信息
使用nmcli命令生成的三个配置文件如下:也可以直接编辑配置文件重启服务使其生效
七、route路由管理命令:
route -n 查看路由(在windows中可以使用route print打印路由)
使用route命令可以给主机添加或删除路由,其中子网掩码可以用netmask来指定
可以添加0.0.0.0/0表示默认路由
route add|delete [-net|-host] target [netmask ] [gw gateway] [dev interface]
示例:
八、 使用netstat和ss命令查看网络套接字信息:
使用netstat命令查看网络连接路由表,端口信息
常用参数:前面是短选项,管道后面是相应的长选项
-t | --tcp :tcp相关协议
-u |--udp:udp相关协议
-w|raw:raw socket相关
-l |listening:处于监听状态
-a|all :所有状态
-n |numeric:以数字显示ip和端口号
-p|--program : 显示相关进程及PID
-I 显示接口统计信息
示例:(常用的组合:-tan,-uan,-tnl,-unl)
原文链接:https://blog.51cto.com/jackcui/1851455
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通