<Linux基础第3集>清华镜像源配置+网络基础概念理解(IP地址+网卡+网关+子网掩码+DNS...)

更新中

先看目录

我在Linux学习过程中遇到的问题

Linux里"下载命令"和"下载软件包"有区别吗

本质上"下载命令"和"下载软件包"都是一个东西,没有区别

apt install python3这个命令,本质上就是 :

你的电脑向"Linux官方软件服务器(Linux官方仓库,官方服务的远程软件服务器)"发送下载请求--->下载Python3的软件包--->自动安装到你的系统--->安装完成后,你就可以使用python3这个命令了

为什么"下载软件包"与"下载命令"没有区别

先说一句绝对正确的话 : 在Linux中,所有的命令,本质都是软件包,所有你能执行的软件本质上都是命令------命令和软件是"一体两面"的东西,只是叫法不一样

下载软件包 = 为了获取对应的命令

能执行命令 = 已经安装好了对应的软件包

apt下载过程

我使用的Linux发行版是Ubuntu

以apt install python3为例,整个过程是这样的 :

  • 我的电脑向位置在欧洲的Ubuntu官方服务器(默认源)发送请求-------(准确来说应该是 : 我的电脑会查看/etc/apt/sources/list这个文件中的默认下载地址是哪里,向这个地址的服务器发送请求)
  • 从这个服务器下载python3对应的完整软件包+所有运行依赖
  • 自动完成软件包的解压,安装,配置
  • 安装完成后,python3命令就可以使用了

为什么在国内使用 默认源 速度慢

源=软件仓库的服务器地址

Ubuntu默认源=欧洲的Ubuntu官方服务器地址

国内网络访问欧洲服务器,跨洋链路长,延迟高,宽带受限,导致下载软件包时速度经常只有几十KB/s,甚至出现下载失败/校验错误等问题(总之就是 : 物理距离远 + 跨国网络链路限制)

怎么解决"默认源"下载数据慢的问题

国内镜像源-------简单来说,就是国内的公司/机构把Ubuntu官方服务器里的所有软件包,完整的复制到自己的国内服务器上,形成的"官方内容副本"

为什么国内镜像源下载快?

这个可以用「快递送货」的例子理解:
默认欧洲源 :相当于你在国内网购,商家却从欧洲仓库发货,快递要跨越大洋,路上要走几天,速度很慢
国内镜像源:相当于商家在国内建了个仓库,和欧洲仓库里的商品一模一样,你下单后直接从国内仓库发货,当天就能到,速度飞快

国内镜像源好处 :

  • 速度快---------在国内镜像源下载软件包不需要跨洋,国内网络链路短,宽带充足,所以下载速度从[几十KB/s]直接跳到[几 MB/s ~ 几十 MB/s]
  • 完全免费且合法---------这个是公益服务
  • 内容和官方源完全一致---------国内镜像源会定期和官方Ubuntu服务器同步,软件包完全一致
  • 不改变任何命令用法---------更换镜像源之后,apt install/update等命令的用法完全不变,只是下载地址变了

怎么配置清华大学镜像源

配置清华镜像源本质就是把/etc/apt/sources.list里的下载地址,替换为清华大学的国内服务器地址

(配置完成之后pat install的下载速度直接拉满)

  • 1.查看Ubuntu版本代号(确认版本代号是多少)
  • 2.备份原来的默认源文件(保命用的)
  • 3.打开源配置文件进行编辑
  • 4.清空所有内容+粘贴清华镜像源地址(不同版本代号的Ubuntu,粘贴的内容不一样)
  • 5.保存之后退出编辑器
  • 6.刷新源缓存(如新配置生效,如果没有error就是成功了)
  • (这个修改镜像源的过程,和apt install命令执行过程有异曲同工之妙)

ip地址

ip(internet protocol address) : 网络部分 + 主机部分

IP地址的组成

网络部分 : 用来标识一个网络,代表ip地址所属网络(具体怎么标识一个网络,后面再说)

主机部分 : 用来去区分一个网络中的不同主机,能唯一标识网段上的某台设备

子网掩码(网络掩码) : 区分一个ip地址中的网络部分和主机部分

eg :

ip : 192.168.1.1/24

这个24代表32位中有24位是1,固定住前24位是网络位 后面的范围是[0,255]

一共256个机位,减去特殊的两个,还有254个可用的机位

假设网络位为n位,主机位有32-n位,范围[0,232-n-1] 一共232-n-2个主机位

IP地址的分类

IP地址总数是232

127.0.0.1是永远指向本机
按照第一个十进制段[1,255]分类 :

A类 1~126 --------/8 默认子网掩码 : 255.0.0.0

B类 128~191 --------/16 默认子网掩码 : 255.255.0.0

C类 192~223 --------/24 默认子网掩码 : 255.255.255.0

...

这样分类可以通过IP地址的第一个十进制数,快速知道这个IP属于哪种规模的网络

网卡(network card)

网卡是电脑/服务器上面的一个硬件设备(现很多都集成在主板上),也可以是虚拟网卡(WSL中的虚拟网卡)

核心作用 :

  • 1.是数据进出电脑的唯一通道(电脑要上网,要和其他电脑出数据,数据必须通过网卡"进出")
  • 2.每一块网卡都有一个"全球唯一的物理地址MAC地址",相当于大门的身份证,全球唯一

子网掩码(网络掩码)

是和IP地址成对出现的一组数据(比如 : 255.255.255.0)

核心作用 : 把IP地址和子网掩码做"与运算",结果相同就是同一个局域网

网关(gateway)

是一个网络的出口设备,通常是路由器的IP地址(如 192.168.1.1)

核心作用 :

  • 如果两台设备在同一个局域网,数据直接通过网卡互传,不需要网关
  • 如果两台设备不在同一个局域网(比如 你要访问百度) : 数据必须先发给网关,再有网关转发到目标网络

以你的电脑要访问百度为例

  • 你的电脑的IP地址(192.168.1.100)要访问百度服务器(公网IP 180.101.50.188)
  • 子网掩码判断 : 你电脑IP和百度IP不在同一个局域网
  • 你的电脑必须需要网关,先把数据包发给网关(比如路由器IP 192.168.1.1)
  • 网关把数据发送给互联网,最终送到百度的服务器
  • 百度服务器返回数据,再通过网关传回你的电脑

"在同一个网段"和"在同一个局域网"一样吗?

答案 : 不一样

一个局域网可以包含多个网段
一个路由器可以有多个网段

下面详细讲讲 :

路由器的核心功能之一 : 划分网段+转发不同网段的数据

举个具体的技术例子:

子网掩码规则:255.255.255.0(意思是 IP 地址前 3 段相同,就是同一个网段)

设备 A IP:192.168.1.100

设备 B IP:192.168.1.200

设备 C IP:192.168.2.50

按照规则 :

A和B属于同一个网段,可以直接通信,不需要网关

C和A不在同一个网段,通信需要经过网关转发

DNS(Domain Name System)域名解析系统

DNS是互联网的一项服务,是将域名和IP地址相互映射的一共分布式数据库

www.baidu.com----------DNS------>IP地址

到底是怎么从www.baidu.com------>百度IP地址

在浏览器访问www.baidu.com 系统会在Linux系统中检查/etc/hosts

文件中有没有对应关系的记录,有直接打开对应IP地址的网站,没有就来联网去DNS服务器询问是否有记录,找到百度服务器的IP地址

hostname主机名

bash 复制代码
hostname # 显示主机名
hostnamectl set-hostname lixiangCP # 把主机名设置为lixinagCP 

固定IP

当前我们虚拟机的Linux系统,其IP地址是通过DHCP服务获得

DHCP : 动态获得IP地址,即每一次重启一次设备后都会获取一次,导致IP地址频繁更换

ping命令

ping命令,检查指定的网络服务器是否是可连通状态

bash 复制代码
ping  -c num ip/主机名
# 检查服务器的IP地址/主机名的IP地址是否是联通的

wget(web get)命令

wget(从网络上获取文件),是非交互式的文件下载器,可以在命令行内下载网络文件

安装wget

bash 复制代码
apt update && apt install wget -y
# 刷新软件商店 && 安装wget

使用wget命令

bash 复制代码
wget https://ww.exapmle.com/test/txt
# 下载的文件会保存在当前终端所在的目录下
# 下载过程会显示进度条,文件大小,下载速度,剩余时间
# -b(background) 是后台下载,终端可以继续做其他事,会将日志写入到当前工作目录的wget-log文件,想看进度可以用tail -f wget-log查看
# -c(continue) 如果文件很大,用-c参数续传(中断后重新执行,从断电继续下载)

如果正在下载,想终止,就Ctrl + c,下载就终止了

bash 复制代码
wget -O [新文件名] [文件URL]
# 不加-O,下载的文件名于服务器上面一样
# 加-O,下载的文件名命名位[新文件名]

URL(uniform resource locater 统一资源定位符)=网址

curl命令

curl(client url) : 客户端URL工具

核心 : 向指定的URL地址发送网络请求,并获取服务器 返回的内容

(既可以下载文件 ,也可以上传文件 ,发送请求 ,测试网站连通性 ,验证服务器状态)

curl的安装

bash 复制代码
# 刷新并安装curl
apt update && apt install curl -y

使用curl命令

client uniform resource locator 客户端网址/客户端统一资源定位符

bash 复制代码
curl www.baidu.com
# 终端直接输出www.baidu.com的全部HTL网页源代码

# 作用 : 快速验证网站是否可以正常访问+服务器是否返回内容,比ping更精准

# 对比ping : ping只是测试连通性,不关心服务器返回什么,curl是测试连通性+拿到服务器返回的实际内容,判断网页是否争夺能够打开
bash 复制代码
curl -O url # 用于下载 url是网址

端口

计算机之间的通讯,IP地址只能锁定计算机,无法锁定一个具体的程序

通过端口可以锁定计算机上的具体程序

Linux系统有六万多个端口

分为公认端口,注册端口,动态端口

nmap(network mapper网络映射器)

用途 :

  • 扫描局域网设备
  • 检查端口开放/关闭
  • 判断主机是否在线
  • 查看服务器服务版本

安装nmap

bash 复制代码
# 刷新软件商店 && 安装namp
apt update &&& apt install namp -y

nmap 127.0.0.1

127.0.0.1永远代表本机,等价于localhost

bash 复制代码
# 用nmap扫描本机回环地址127.0.0.1
nmap 127.0.0.1
# 输出 :
Starting Nmap 7.80 ( https://nmap.org ) at 2026-01-16 19:33 CST # 开始nmap7,80在2026-01-16 19:33 CST
Nmap scan report for localhost (127.0.0.1) # nmap扫描报告对于localhost(127.0.0.1)
Host is up (0.0000020s latency). # 主机正常开机(延迟时间)
All 1000 scanned ports on localhost (127.0.0.1) are closed # 所有1000个被扫描的端口在本机上是关闭的
Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds # nmap结束: 1个IP地址被扫描在0.008秒内

netstat(network statistics网络状态)

核心作用 : 查看本机(只看本机)所有网络接口,端口监听,网卡信息,路由表(不扫描外部设备,这是和nmap最核心区别)

已经有了ss命令,更加强大,所以直接学习ss命令

ss(socket statistics 套接字统计工具)命令

核心功能 : Linux系统原生的网络状态查询工具,直接读取内核网络数据

参数 中文作用 算法工程师使用场景
-t(TCP) 只显示 TCP 协议的套接字 / 连接信息 99% 的服务(SSH、Jupyter、TensorBoard)都用 TCP 协议,必加此参数
-l(Listening) 只显示 处于监听状态的端口 检查服务是否正常启动(比如 Jupyter 的 8888 端口是否在监听)
-n(Numeric) 以纯数字形式显示 IP 地址和端口号,不解析域名 / 服务名 避免 DNS 解析卡顿,结果更简洁(比如直接显示 8888 而不是 jupyter)
-u(UDP) 显示UDP协议的所有连接/端口
-4(IPv4) 只显示IPv4协议的网络信息
-6(IPv6) 只显示IPv6协议的网络信息

-tln 只显示本机上所有处于监听状态的TCP端口,且以纯数字形式输出

进程

ps(process)命令

bash 复制代码
ps -e -f # 查看进程信息 
# -e查看所有
# -f格式化显示

# 输出 :
UID          PID    PPID  C STIME TTY          TIME CMD
root         996     975  0 18:48 pts/0    00:00:00 su
root        1007     996  0 18:48 pts/0    00:00:00 bash
root        2402    1007  0 20:34 pts/0    00:00:00 ps -f
# 用户ID 进程ID 父进程(启动此进程的其他进程)ID 此进程的CPU占用率 starttime进程启动时间 启动此进程的终端信号 启动命令

kill命令

bash 复制代码
kill -9 进程ID
# -9 表示强制关闭
相关推荐
代码AC不AC2 小时前
【Linux】进程优先级和进程切换
linux·进程·进程优先级·进程切换调度算法
MengFly_2 小时前
Java广播 —如何利用广播做服务发现
java·网络·服务发现
Configure-Handler2 小时前
ubuntu 22.04 配置VNC远程连接
linux·运维·ubuntu
Macbethad2 小时前
半导体EFEM设备TwinCAT程序设计方案
java·前端·网络
一个平凡而乐于分享的小比特2 小时前
Makefile 源码编译系统详解
linux·makefile
再出发new start2 小时前
IPV6基础 二
网络
木卫二号Coding2 小时前
在 Ubuntu 上安装 noVNC
linux·运维·ubuntu
小小代码狗2 小时前
PHP伪协议和文件包含
网络·网络安全·php
聚铭网络2 小时前
聚铭网络再次入选数世咨询《中国数字安全价值图谱》“日志审计”推荐厂商
网络·安全