《Linux从小白到高手》理论篇:深入理解Linux的网络管理

今天继续宅家,闲来无事接着写。本篇详细深入介绍Linux的网络管理。

如你所知,在Linux中一切皆文件。网卡在 Linux 操作系统中用 ethX,是由 0 开始的正整数,比如 eth0、eth1... ethX。而普通猫和ADSL 的接口是 pppX,比如 ppp0 等。

在管理复杂网络方面,相较于其他绝大多数的闭源操作系统,Linux 操作系统是有极大的优势,修改配置文件,在几分钟就可以搞定。但闭源图形界面的操作系统就没有这么幸运了,可能需要反复切换图形化管理界面,还可能耗时误事。

涉及到配置网络接口、路由、防火墙、网络服务和安全、网络故障排除等多个方面。

网络接口配置

网络接口是连接到计算机的网络设备,如以太网卡。Linux提供了各种命令和配置文件,用于配置网络接口的IP地址、子网掩码、默认网关和DNS服务器等。

常用命令和工具:

ifconfig:用于显示和配置网络接口的信息。ifconfig在较新的系统中被ip命令取代,但在很多旧系统中仍然可用。

ip命令:新一代网络配置命令,用于显示和配置网络接口的信息,如IP地址、子网掩码等。

nmcli:NetworkManager命令行工具,用于管理和配置网络连接。

配置文件:

/etc/network/interfaces:较旧的Linux系统或Debian和Ubuntu等基于Debian的发行版中使用的网络配置文件。

/etc/sysconfig/network-scripts/ifcfg-:CentOS和Red Hat等基于RHEL的发行版中使用的网络配置文件。

2、路由配置

路由是决定网络数据包从源到目的地的路径。Linux中的路由表存储了网络的路由信息。通过配置路由表,可以添加、删除和修改路由条目,实现数据包转发和流量控制。

常用命令:

route:用于显示和配置内核的IP路由表。

ip route:ip命令的一部分,用于配置和管理路由表。

3、防火墙管理

Linux提供了多种工具来配置防火墙规则,以控制网络流量并保护系统免受恶意攻击。

常用工具:

iptables:用于配置Linux内核的网络包过滤规则。

nftables:iptables的继任者,提供了更高级的功能和性能。

firewalld:动态防火墙管理工具,提供了更高级的功能和图形化界面。

4、网络服务配置

Linux操作系统可以作为各种网络服务的服务器,如Web服务器(如Apache)、邮件服务器(如Postfix)、文件共享服务器(如Samba)等。网络管理员需要配置这些服务的参数和权限,以确保它们正常运行并满足特定需求。

5、网络安全管理

网络安全是网络管理的重要方面。Linux提供了各种安全功能和工具,如访问控制列表(ACL)、安全套接字层(SSL)、虚拟专用网络(VPN)等,以增强网络的安全性。网络管理员需要识别和应对潜在的安全威胁,并采取相应的措施加强系统安全。

6、网络监控和故障排除

Linux提供了多种工具来监控网络状态、诊断网络问题并进行故障排除。

常用工具:

ping:用于测试主机之间的网络连接。

traceroute/tracepath:用于显示数据包到达目标主机所经过的路由路径。

netstat/ss:用于显示网络连接、路由表、接口统计等网络相关信息。

tcpdump/wireshark:用于捕获和分析网络上的数据包。

7、图形化网络配置工具

Linux还提供了一些图形化工具来配置网络参数。

常用工具:

NetworkManager:提供图形化界面,允许用户轻松配置和管理网络接口、无线网络、VPN连接等。

GNOME Settings:在GNOME桌面环境中进行网络配置。

KDE NetworkManager:在KDE桌面环境中进行网络配置。

Wicd:轻量级的网络管理工具,适用于基于GTK的桌面环境。

Linux网络管理相关的常用操作

修改或者手动配置Ip地址,如将动态IP改成静态

  1. vim修改对应的网卡配置文件

    vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改以下信息,设置成静态ip,(注意,具体的ip地址请根据你虚拟机的设置来定:

//修改以下内容
BOOTPROTO=static  //启用静态IP地址
ONBOOT=yes      //开机自动启用网络连接
//设置IP详细信息
IPADDR=192.168.100.10    //设置IP地址
NETMASK=255.255.255.0   //子网掩码
GATEWAY=192.168.100.1   //设置网关

2.保存文件并重启网络服务或者整个系统:

sudo systemctl restart network
// 或者重启整个系统
sudo reboot

管理网络服务

启动、停止和重启网络服务:

使用systemctl命令,例如:

启动网络服务:systemctl start network。

停止网络服务:systemctl stop network。

重启网络服务:systemctl restart network。

查看网络服务状态:

systemctl status network可以显示网络服务的当前状态,包括是否正在运行、启动时间、日志信息等。

测试网络连接

使用ping命令:

ping命令用于测试与其他主机的网络连接。例如:ping www.baidu.com将向指定的域名发送 ICMP 数据包,并显示响应时间和数据包丢失情况。

ping -c 可以指定发送的数据包数量,例如ping -c 5 192.168.1.1将向 IP 地址为 192.168.1.1 的主机发送 5 个数据包。

使用traceroute命令:

traceroute命令用于跟踪数据包从本地主机到目标主机的路径。例如:traceroute www.baidu.com将显示数据包经过的每个路由器的 IP 地址和响应时间。

设置路由

查看路由表:

route -n命令可以显示当前系统的路由表,包括目标网络、网关、子网掩码等信息。

添加静态路由:

route add -net <network-address> netmask <netmask> gw <gateway-address>

可以添加静态路由。例如:route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.2将添加一条到 192.168.2.0/24 网络的静态路由,网关为 192.168.1.2。

删除静态路由:

route del -net <network-address> netmask <netmask>

可以删除静态路由。例如:route del -net 192.168.2.0 netmask 255.255.255.0将删除上述添加的静态路由。

网络故障排除

查看网络日志:

系统的网络日志通常位于/var/log/目录下的特定文件中,如messages或syslog。可以查看这些日志文件以获取有关网络问题的信息。

使用网络诊断工具:

tcpdump:可以捕获网络数据包,用于分析网络通信问题。例如:tcpdump -i eth0可以捕获以太网接口eth0上的数据包。

nmap:网络扫描工具,可以用于检查网络上的主机和服务的可用性。例如:nmap 192.168.1.0/24可以扫描 192.168.1.0/24 网段中的主机。

tcpdump

tcpdump是一个强大的网络数据包捕获工具,tcpdump允许用户捕获和分析网络上传输的数据包。它可以捕获特定网络接口上的数据包,用于网络故障排除,安全分析,性能优化分析等。

1.基本捕获:

直接运行tcpdump,它将捕获指定网络接口上的所有数据包,并将其输出到终端。例如:tcpdump -i eth0将捕获以太网接口eth0上的数据包。

  1. 过滤数据包:

tcpdump支持使用各种过滤条件来筛选数据包。例如,可以使用以下命令只捕获特定 IP 地址的数据包:tcpdump host 192.168.1.100。

可以使用其他过滤条件,如端口号(port 80表示捕获端口为 80 的数据包)、协议类型(tcp或udp)等。例如:tcpdump tcp port 80将捕获 TCP 协议且端口为 80 的数据包。

  1. 保存捕获的数据包:

可以使用-w选项将捕获的数据包保存到文件中,以便后续分析。例如:tcpdump -i eth0 -w packets.pcap将捕获以太网接口eth0上的数据包并保存到packets.pcap文件中。

读取保存的数据包文件:

使用-r选项可以读取之前保存的数据包文件进行分析。例如:tcpdump -r packets.pcap。

4、输出格式

默认输出:

默认情况下,tcpdump的输出显示数据包的基本信息,包括时间戳、源 IP 地址和端口、目标 IP 地址和端口以及协议类型。例如:

 21 :23:45.678901 IP 192.168.1.100.5678 > 192.168.1.200.80: TCP ......

详细输出:

可以使用-v选项增加输出的详细程度,显示更多关于数据包的信息,如数据包的长度、标志位等。例如:tcpdump -v -i eth0。

本篇完结。
码字不易,宝贵经验分享不易,请各位支持原创,转载注明出处,多多关注作者,家人们的点赞和关注是我笔耕不辍的动力。

相关推荐
我们的五年几秒前
【Linux课程学习】:进程程序替换,execl,execv,execlp,execvp,execve,execle,execvpe函数
linux·c++·学习
gma99917 分钟前
Etcd 框架
数据库·etcd
爱吃青椒不爱吃西红柿‍️20 分钟前
华为ASP与CSP是什么?
服务器·前端·数据库
IT果果日记22 分钟前
ubuntu 安装 conda
linux·ubuntu·conda
Python私教24 分钟前
ubuntu搭建k8s环境详细教程
linux·ubuntu·kubernetes
羑悻的小杀马特37 分钟前
环境变量简介
linux
Yz98761 小时前
hive的存储格式
大数据·数据库·数据仓库·hive·hadoop·数据库开发
wkj0011 小时前
php操作redis
开发语言·redis·php
苏-言1 小时前
Spring IOC实战指南:从零到一的构建过程
java·数据库·spring
小陈phd1 小时前
Vscode LinuxC++环境配置
linux·c++·vscode