Linux网络基础知识全面总结
文章目录
- linux网络基础知识
- 1.1 IP地址和子网掩码
- 1.2 网关和路由
- 1.3 域名系统 (DNS)
- 1.4 端口和协议
- Linux网络配置
- 2.1 ifconfig命令
- 2.2 网络接口配置文件
- 2.3 DHCP自动获取IP地址
- 2.4 静态IP地址配置
- 2.5 网络重启和应用配置
- 3. 网络工具和命令
- 3.1 ping命令
- 3.2 traceroute和mtr命令
- 3.3 nslookup和dig命令
- 3.4 netstat命令
- 3.5 iftop和nethogs命令
- 4. 远程连接和管理
- 4.1 SSH协议与OpenSSH
- 4.2 Telnet和FTP
- 4.3 VNC远程桌面
- 4.4 使用rsync传输文件
- 5. 防火墙和安全性
- 5.1 iptables防火墙
- 5.2 UFW(Uncomplicated Firewall)
- 5.3 SELinux和AppArmor
- 6. 网络服务和配置
- 6.1 Apache HTTP服务器
- 6.2 Nginx服务器
- 6.3 DNS服务器(如BIND)
- 6.4 DHCP服务器(如ISC DHCP)
- 6.5 FTP服务器(如vsftpd)
- 7. 虚拟网络和容器技术
- 7.1 虚拟网络设备
- 7.2 使用Docker容器
- 7.3 使用Kubernetes管理容器
- 8. 网络故障排除和调优
- 8.1 常见网络故障排查方法
- 8.2 网络性能调优技巧
- 8.3 网络流量分析工具(如Wireshark)
- 总结
linux网络基础知识
1.1 IP地址和子网掩码
在网络中,IP地址是用于唯一标识一个设备的地址。它由四个用点分隔的数字组成,例如192.168.0.1
。
而子网掩码用于确定网络中哪些部分是网络地址,哪些部分是主机地址。子网掩码也是由四个用点分隔的数字组成,例如255.255.255.0
。
# 示例代码
IP地址:192.168.0.1
子网掩码:255.255.255.0
1.2 网关和路由
网关是连接不同网络的设备,通过它可以实现不同网络之间的通信。它通常是局域网中的路由器。
路由是指网络中传输数据包的路径选择过程。路由器根据数据包的目的地地址选择最佳路径进行转发。
# 示例代码
网关地址:192.168.0.254
1.3 域名系统 (DNS)
域名系统 (DNS) 是互联网中用于将域名解析为对应IP地址的系统。通过DNS,我们可以使用便于记忆的域名访问网站,而不是直接使用IP地址。
# 示例代码
DNS服务器:8.8.8.8
1.4 端口和协议
端口用于标识一个应用程序或服务在设备上的通信接口。不同的应用程序使用不同的端口号进行通信。
协议定义了数据传输的规则和格式,常见的协议有TCP和UDP。TCP是一种面向连接的可靠传输协议,而UDP是一种无连接的不可靠传输协议。
# 示例代码
HTTP协议使用的端口:80
FTP协议使用的端口:21
Linux网络配置
2.1 ifconfig命令
ifconfig命令用于显示和配置网络接口的信息,包括IP地址、子网掩码、MAC地址等。
# 示例代码
ifconfig eth0
2.2 网络接口配置文件
在Linux系统中,网络接口的配置信息保存在配置文件中。通过编辑这些配置文件,我们可以设置网络接口的参数。
# 示例代码
/etc/network/interfaces
2.3 DHCP自动获取IP地址
DHCP是一种网络协议,可以自动分配IP地址给设备。通过配置DHCP客户端,我们可以实现自动获取IP地址的功能。
# 示例代码
dhclient eth0
2.4 静态IP地址配置
静态IP地址是指手动配置的固定IP地址,不会自动改变。通过编辑网络接口的配置文件,我们可以设置静态IP地址。
# 示例代码
auto eth0
iface eth0 inet staticaddress 192.168.0.100netmask 255.255.255.0gateway 192.168.0.1
2.5 网络重启和应用配置
在修改网络配置之后,我们可以通过重启网络服务或者重新加载配置文件来使配置生效。
# 示例代码
service networking restart
3. 网络工具和命令
3.1 ping命令
ping
命令用于测试主机与目标主机之间的连通性。它发送ICMP回显请求并等待目标主机的回应。
使用示例:
# 示例代码
ping 192.168.0.1 # 向目标IP地址发送ICMP回显请求
ping www.example.com # 向目标域名发送ICMP回显请求
3.2 traceroute和mtr命令
traceroute
命令用于确定数据包到达目标主机所需经过的路径。mtr
命令结合了ping
和traceroute
的功能,并提供更详细的信息。
使用示例:
# 示例代码
traceroute 192.168.0.1 # 追踪数据包到达目标IP地址的路径
traceroute www.example.com # 追踪数据包到达目标域名的路径
mtr 192.168.0.1 # 综合显示到达目标IP地址的路径和延迟信息
mtr www.example.com # 综合显示到达目标域名的路径和延迟信息
3.3 nslookup和dig命令
nslookup
命令用于查询域名服务器,获取主机的IP地址和其他DNS记录。dig
命令也用于查询DNS记录,并可以提供更详细的信息。
使用示例:
# 示例代码
nslookup www.example.com # 查询域名对应的IP地址
nslookup -type=mx example.com # 查询域名的MX记录
dig www.example.com # 查询域名对应的IP地址和其他详细信息
dig -t mx example.com # 查询域名的MX记录和其他详细信息
3.4 netstat命令
netstat
命令用于显示各种网络相关信息,包括网络连接、路由表、接口统计等。
使用示例:
# 示例代码
netstat -tulpn # 显示所有监听端口和对应的进程
netstat -rn # 显示路由表
netstat -i # 显示网络接口信息
3.5 iftop和nethogs命令
iftop
命令用于实时监测网络流量,显示各个网络接口的实时传输速率和连接信息。nethogs
命令也可以监测网络流量,但它更关注每个进程的流量使用情况。
使用示例:
# 示例代码
iftop # 监测网络流量,显示各个网络接口的实时传输速率和连接信息
nethogs eth0 # 监测网络流量,显示每个进程的流量使用情况(针对指定网络接口)
4. 远程连接和管理
4.1 SSH协议与OpenSSH
SSH(Secure Shell)是一种安全的网络协议,用于在不安全的网络上安全地执行远程连接和管理操作。OpenSSH是一个流行的SSH实现。
使用示例:
# 示例代码
ssh username@hostname # 使用SSH连接到远程主机
ssh -p port username@hostname # 指定SSH连接端口
scp file.txt username@hostname:~/ # 使用SCP传输文件到远程主机
4.2 Telnet和FTP
Telnet和FTP是两种不安全的远程连接和文件传输协议。它们在现代网络中的使用已经受到限制,更安全的替代方案如SSH和SFTP已经被广泛采用。
4.3 VNC远程桌面
VNC(Virtual Network Computing)是一种远程图形化桌面协议,允许用户通过网络远程访问和控制远程计算机的桌面界面。
使用示例:
# 示例代码
vncserver :1 # 启动VNC服务器,显示编号为1的桌面
vncviewer hostname:1 # 连接到远程主机上的VNC服务器
4.4 使用rsync传输文件
rsync
命令是一个功能强大的文件同步工具,可以在本地或远程主机之间进行文件传输和备份。
使用示例:
# 示例代码
rsync -avz /local/path username@hostname:/remote/path # 将本地目录同步到远程主机
rsync -avz username@hostname:/remote/path /local/path # 从远程主机同步到本地目录
这些工具提供了远程连接和管理的功能,让用户可以方便地通过网络进行远程操作、文件传输和桌面访问。但请注意,在使用这些工具时,务必采取安全措施,如使用密码或公钥认证以及限制网络访问权限,以保护系统安全。
5. 防火墙和安全性
5.1 iptables防火墙
iptables是一个用于配置Linux内核网络包过滤规则的工具,可以实现防火墙功能。通过配置iptables规则,可以控制进出系统的网络流量,提高系统的安全性。
使用示例:
# 示例代码
iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许SSH连接
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允许HTTP连接
iptables -A INPUT -j DROP # 默认拒绝所有其他连接
5.2 UFW(Uncomplicated Firewall)
UFW是一个基于iptables的简化防火墙配置工具,它提供了一种简单的方式来管理和配置防火墙规则。
使用示例:
# 示例代码
ufw enable # 启用UFW防火墙
ufw allow ssh # 允许SSH连接
ufw allow http # 允许HTTP连接
ufw default deny # 默认拒绝所有其他连接
5.3 SELinux和AppArmor
SELinux和AppArmor是两种Linux操作系统上的安全模块,它们提供了更强大的权限控制和应用程序隔离机制,用于增强系统的安全性。
SELinux使用示例:
# 示例代码
sestatus # 检查SELinux状态
getenforce # 获取SELinux强制模式
setenforce 0 # 关闭SELinux强制模式
AppArmor使用示例:
# 示例代码
apparmor_status # 检查AppArmor状态
aa-status # 检查AppArmor状态(旧的Ubuntu发行版)
aa-enforce /path/to/profile # 强制应用程序使用指定的AppArmor配置文件
6. 网络服务和配置
6.1 Apache HTTP服务器
Apache是一个广泛使用的开源HTTP服务器软件,它提供了处理和传送Web页面所需的功能和性能。
6.2 Nginx服务器
Nginx是另一个流行的Web服务器软件,以其高性能和低内存消耗而闻名,常用于高负载的Web环境中。
6.3 DNS服务器(如BIND)
DNS服务器用于将域名解析为IP地址,其中BIND(Berkeley Internet Name Domain)是一个常用的开源DNS服务器软件。
6.4 DHCP服务器(如ISC DHCP)
DHCP服务器提供自动分配IP地址和其他网络配置信息的服务,ISC DHCP是一个常用的DHCP服务器软件。
6.5 FTP服务器(如vsftpd)
FTP服务器用于文件传输,vsftpd是一个非常稳定和安全的FTP服务器软件。
7. 虚拟网络和容器技术
7.1 虚拟网络设备
虚拟网络设备是一种在计算机系统中模拟物理网络设备的技术,常用于构建虚拟化环境和网络隔离。
7.2 使用Docker容器
Docker是一个流行的容器化平台,它能够将应用程序及其依赖项打包为容器,实现快速部署和可移植性。
7.3 使用Kubernetes管理容器
Kubernetes是一个开源的容器编排平台,用于自动部署、扩展和管理容器化应用程序。
8. 网络故障排除和调优
8.1 常见网络故障排查方法
网络故障排查是解决网络问题的关键步骤,常用的方法包括检查网络连接、配置和日志,以及使用网络诊断工具等。
8.2 网络性能调优技巧
网络性能调优是提高网络传输效率和速度的过程,可以通过调整网络参数、优化硬件设备和使用更高级的网络协议来实现。
8.3 网络流量分析工具(如Wireshark)
Wireshark是一款流行的网络流量分析工具,可用于捕获和分析网络数据包,以帮助诊断和解决网络问题。
总结
总结部分:
本文全面介绍了Linux网络基础知识及相关配置、工具、远程连接与管理、防火墙与安全性、网络服务与配置、虚拟网络与容器技术以及网络故障排除和调优等内容。通过阅读本文,你将对Linux网络有更深入的理解,并能够应用于实际的网络环境中。
文章首先介绍了IP地址和子网掩码的概念,以及网关和路由的作用。 接着,我们学习了域名系统(DNS)的原理,了解了如何将域名解析为IP地址。还详细介绍了端口和协议的概念,以及常见的端口和协议的应用场景。
在Linux网络配置方面,我们了解了使用ifconfig命令进行网络接口配置,以及配置文件的编辑方式。同时,我们学习了如何通过DHCP自动获取IP地址,以及如何配置静态IP地址。此外,还介绍了网络重启和应用配置的方法,帮助你更好地管理网络设置。
为了更好地了解和管理网络,我们介绍了一系列网络工具和命令。包括使用ping命令测试网络连通性,使用traceroute和mtr命令跟踪网络路径,使用nslookup和dig命令查询域名信息,以及使用netstat、iftop和nethogs命令监控网络流量。这些工具和命令将有助于你更好地诊断和解决网络问题。
远程连接和管理是网络管理中不可或缺的一部分,我们介绍了SSH协议与OpenSSH的使用,以及Telnet、FTP和VNC远程桌面的配置和连接方法。此外,还介绍了使用rsync传输文件的技巧,方便你在不同主机之间快速同步文件。
在网络安全性方面,我们详细介绍了iptables防火墙的配置,以及简化版防火墙UFW的使用方法。同时,还介绍了SELinux和AppArmor两种安全模块的功能和配置方式,帮助你提升系统的安全性。
对于网络服务和配置,我们重点介绍了常用的Apache HTTP服务器和Nginx服务器的搭建和配置,以及DNS服务器(如BIND)、DHCP服务器(如ISC DHCP)和FTP服务器(如vsftpd)的配置方法。这些服务的使用将为你的网络环境提供更多功能和灵活性。
虚拟网络和容器技术是当前发展趋势,我们介绍了虚拟网络设备的概念和使用方法,以及使用Docker容器和Kubernetes管理容器的技术。这些技术将帮助你更好地实现资源的隔离和管理,提高系统的可扩展性和灵活性。
最后,我们介绍了网络故障排除和调优的方法。包括常见网络故障排查方法,网络性能调优技巧以及使用Wireshark等网络流量分析工具。这些方法和工具将帮助你更快速地解决网络问题,并优化网络性能。
通过本文的学习,你将成为一名网络管理的高手,能够更好地理解和应用Linux网络知识,提升网络环境的稳定性、安全性和性能。加油!
相关文章:

Linux网络基础知识全面总结
文章目录 linux网络基础知识1.1 IP地址和子网掩码1.2 网关和路由1.3 域名系统 (DNS)1.4 端口和协议 Linux网络配置2.1 ifconfig命令2.2 网络接口配置文件2.3 DHCP自动获取IP地址2.4 静态IP地址配置2.5 网络重启和应用配置3. 网络工具和命令3.1 ping命令3.2 traceroute和mtr命令…...

【arm实验2】按键中断事件控制实验
设置按键中断,按键1按下,LED亮,再次按下,灭 按键2按下,蜂鸣器叫,再次按下,停 按键3按下,风扇转,再次按下,停 主函数: linuxlinux:~/study/08-c$…...

【数据结构-栈 二】【单调栈】每日温度、接雨水
废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【单调栈的应用】,使用【栈】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为&am…...

基于Keil a51汇编 —— 控制语句
ALIGN ALIGN expression ALIGN 语句将位置计数器设置为下一个地址模 2^表达式。 这可用于确保下一条语句在 2^n 边界上对齐。例如,对齐缓存行中的代码或数据。如有必要,汇编程序会创建一个间隙。间隔字节的内容因各个部分而异: 在data中未定…...

单目标优化算法:火鹰优化算法(Fire Hawk Optimizer,FHO)求解23个函数--提供MATLAB代码
一、火鹰优化算法FHO 火鹰优化算法(Fire Hawk Optimizer,FHO)由Mahdi Azizi等人于2022年提出,该算法性能高效,思路新颖。 单目标优化:火鹰优化算法(Fire Hawk Optimizer,FHO&#…...

数据集笔记:分析OpenCellID 不同radio/ create_time update_time可视化
1 读取数据 (以新加坡的cellID为例) import geopandas as gpd import pandas as pdopencellidpd.read_csv(OpenCellID_SG.csv,headerNone,names[radio,mcc,net,area,cell,unit,lon,lat,range,samples,changeable1,created1,updated,AveSignal]) opence…...

【特纳斯电子】血氧饱和度监测仪设计-实物设计
视频及资料链接:血氧饱和度监测仪设计-实物设计 - 电子校园网 编号: T5662203M-SW 设计简介: 本设计是基于STM32的血氧饱和度监测仪系统,主要实现以下功能: 1. STM32单片机作为微处理器 2. MAX30102进行心率血氧检…...

雪花算法生成ID传到前端之后精度丢失问题
第一种:使用注解解决 使用方便简单,粒度高,适用于部分字段需要单独转换的场景,灵活度高 // 两种注解,选其一即可 // JsonFormat(shape JsonFormat.Shape.STRING) JsonSerialize(using ToStringSerializer.class) pri…...

Windows 10 - 适用于各种服务(Redis、MySQL)的文件迁移到其他目录后,导致的各种服务找不到的问题 - 注册服务 - 关闭服务 - 重启服务
目录 一、MySQL 服务找不到问题二、Redis 服务找不到问题Tips 三、PostgreSQL 服务找不到问题参考链接 必须要用管理员打开 doc 窗口,然后才进行以下操作。 通用命令 先关闭 xxx 服务 sc query xxx服务名,如 redis 服务 sc query redis sc query 删除…...

Java 串行接口调用优化
准备面试总结下 1.CompletableFuture static ThreadPoolExecutor poolExecutor new ThreadPoolExecutor(10, 20, 1000L, TimeUnit.MICROSECONDS, new ArrayBlockingQueue<>(100));public static void main(String[] args) throws ExecutionException, InterruptedExcep…...

【Java 进阶篇】JavaScript `typeof` 操作符详解
JavaScript是一种弱类型语言,这意味着变量的数据类型通常是灵活的。为了更好地理解和操作数据,JavaScript提供了typeof操作符,它可以用来确定一个值的数据类型。在本篇博客中,我们将详细讨论typeof操作符,包括它的用法…...

electron之进程间通信
Electron进程间通信 使用electron编写程序时经常遇到下面这种场景: 当用户点击一个按钮时,需要将页面输入的信息保存到本地电脑上; 或者是点击菜单时,需要页面窗口做出响应。 用户点击的按钮和窗口展示的内容是运行在渲染进程中&…...

Linux网络编程:UDP协议和TCP协议
目录 一. 对于端口号的理解 1.1 网络通信五元组 1.2 端口号的划分策略 二. 网络通信中常用的指令 2.1 netstat指令 2.2 pidof指令 三. udp协议 3.1 udp的概念及特点 3.2 udp协议端格式 3.3 对于面向数据报及应用层发送与读取数据的理解 四. tcp协议的概念及特点 五.…...

【SCS-CN】SCS-CN模型中CN值的确定
目录 一、说明二、SWAT三、HEC-HMS四、CN值转换公式五、确定CN25.1 ArcSWAT 2009用户指南5.2 SWAT plus Document5.3 National Engineering Handbook5.4 HEC-HMS水文建模系统原理方法应用5.5 Technical Release 55 (TR-55) 六、确定水文土壤单元(HSG)6.1…...

【C++】继承 ① ( 面向对象特点 | 类之间的关系 | 单继承与多继承 | 继承关系特性 )
文章目录 一、面向对象相关概念1、面向对象特点2、类之间的关系 二、继承概念1、名词说明2、单继承与多继承单继承多继承 3、继承关系特性 一、面向对象相关概念 1、面向对象特点 面向对象的 4 4 4 大特点 : 抽象 : 只关注对象的功能和行为 , 而不过问实现的具体细节 ;封装 :…...

虹科方案 | 虹科ATTO加速虚拟存储管理
虹科方案 | 虹科ATTO加速虚拟存储管理 文章来源:虹科网络安全 点此阅读原文:https://mp.weixin.qq.com/s/SYruurSQSodUvyhZBr-BMQ 1 方案背景 企业越来越多地转向服务器虚拟化,以有效利用硬件资源、降低运营成本,并为维护和灾难恢…...

Docker项目部署lnmp+wordpress
一.项目环境 公司在实际的生产环境中,需要使用Docker 技术在一台主机上创建LNMP服务并运行Wordpress网站平台。然后对此服务进行相关的性能调优和管理工作。 1.1 环境描述 主机 操作系统 IP地址 主要软件 Docker C…...

leetcode 121. 买卖股票的最佳时机、122. 买卖股票的最佳时机 II
121. 买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从…...

系统架构设计:5 论软件的可靠性设计
目录 一 可靠性设计 1 可靠性 2 影响可靠性的因素 3可靠性设计技术 (1)避错技术...

03 独立看门狗 hal库 stm32cubemx
1.设置配置参数 > 2.初始化 IWDG_HandleTypeDef hiwdg;/* IWDG init function */ void MX_IWDG_Init(void) //Tout((42^prer) rlr) /40 // IWDG_PRESCALER_8 (42^prer) 8/40 *5*2000 64/40 *4095 ---6s {/* USER CODE BEGIN IWDG_Init 0 *//* USER CODE END IWDG_…...

大数据学习(6)-hive底层原理Mapreduce
&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博>主哦&#x…...

SQLite:TIMESTAMP类型使用
SQLite:CURRENT_TIMESTAMP是以GMT时区为准,而不是本地机器的时区 在本文中,我们将介绍SQLite数据库中的一个特性:CURRENT_TIMESTAMP。在SQLite中,我们可以使用CURRENT_TIMESTAMP函数来获取当前时间戳。然而࿰…...

迅镭激光GI系列高功率激光切割机成功中标覆铜板龙头企业HZ公司
新材料被称为“发明之母”和“产业粮食”,是现代科技发展的基础,和信息技术、生物技术一起并称为最重要和最具发展潜力的三大领域,它是我国先进制造业发展的支撑和保障,对推动技术创新、促进制造业优化升级、保障国家安全等具有重…...

基于SSM的网络安全宣传网站设计与实现
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…...

k8s修改集群IP--重置集群
原来IP地址 192.168.10.138 k8s-master 192.168.10.139 k8s-node1 192.168.10.140 k8s-node2 新IP地址 192.168.10.148 k8s-master 192.168.10.149 k8s-node1 192.168.10.150 k8s-node2 cp -Rf /etc/kubernetes/ /etc/kubernetes-bak pki 证书目录保留下来: rm -rf …...

记录:R语言生成热图(非相关性)
今天解决了一个困扰了我很久的问题,就是如何绘制不添加相关性的热图。一般绘制热图是使用corrplot包画相关性图,但是这样有一个前提,就是输入的数据集必须进行相关性分析。那么如果我不需要进行相关性分析,而是直接绘制能够反应数…...

第55篇-某did滑块流程分析-滑动验证码【2023-10-12】
声明:该专栏涉及的所有案例均为学习使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!如有侵权,请私信联系本人删帖! 文章目录 一、前言二、滑块流程分析三、参数分析1.verifyParam参数分析2.c参数分析四、captchaToken激活五、流程整理一、前言 我…...

正点原子嵌入式linux驱动开发——Linux内核顶层Makefile详解
之前的几篇学习笔记重点讲解了如何移植uboot到STM32MP157开发板上,从本章就开始学习如何移植Linux内核。 同uboot一样,在具体移植之前,先来学习一下Linux内核的顶层Makefile文件,因为顶层 Makefile控制着Linux内核的编译流程。 L…...

C++ 笔记索引
C 参考手册访问地址 环境 VS coda 配置 VS coda C、python运行与Dbug配置 C、python、VS code插件安装与SSH使用 (不推荐) w10系统一般只用vs w10系统 如何使用 C、cmake、opencv、 语言基础 C main函数 测试例子 C常用基本类型、数组、复制内存 memcpy C if、else、switc…...

Android攻城狮学鸿蒙-配置
1、config.json配置 鸿蒙中的config.json应该类似于Android开发中Manifest.xml,可以进行页面的配置。根据顺序,会识别启动应用的时候,要打开哪个界面。 2、 Ability详解,以及与Android的Activity对比。 他人的学习文章连接&…...