DHCP 工作过程

DHCP(动态主机配置协议)主要用来给网络里的设备分发 IP 地址,在一个局域网里只要有一个 DHCP Server 服务,所有加入到这个局域网的设备都可以通过它获取一个自己的 IP 地址,从而进行通信。如果没有 DHCP 服务,就需要人工给每一个设备配置上 IP 地址才能正常上网。

阅读全文 →

hostapd 使用

hostapd 主要用来控制无线网卡,对外提供无线访问能力。

安装

sudo apt install hostapd -y

配置

interface=wlan0
bridge=br0               # 🚀 核心:由 hostapd 负责把无线流量动态塞进你的 br0 网桥
ssid=MyLinux5G_WiFi      # 你的 Wi-Fi 名字
hw_mode=g
channel=6
wpa=2
wpa_passphrase=你的密码写在这里
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
rsn_pairwise=CCMP

启动

sudo systemctl unmask hostapd
sudo systemctl enable --now hostapd

4g 怎么配置

# --- 基础配置 ---
interface=wlan0
driver=nl80211
ssid=My_2.4G_Network
country_code=CN

# --- 核心:2.4GHz 频段设置 ---
hw_mode=g
# 2.4G 强烈推荐且只推荐使用:1, 6, 11 这三个互不干扰的信道
channel=6

# --- 开启 802.11n (Wi-Fi 4) 支持 ---
ieee80211n=1
require_ht=1
# 2.4G 频段太拥挤,强烈建议默认使用 [HT20] 以保证连接稳定性
ht_capab=[HT20][SHORT-GI-20]

# --- 安全加密配置 (WPA2-Personal) ---
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=YourStrongPassword888
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=CCMP

5g 怎么配置

# --- 基础配置 ---
interface=wlan0
driver=nl80211
ssid=My_5G_Network
country_code=CN

# --- 核心:5GHz 频段设置 ---
hw_mode=a
# 推荐使用 36, 40, 44, 48 或 149, 153, 157, 161
channel=36 

# --- 开启 802.11n (Wi-Fi 4) 支持 ---
ieee80211n=1
require_ht=1
# 开启 40MHz 频宽。[HT40+] 表示向上扩展信道,如果 channel 选 36 可以用 +
ht_capab=[HT40+][SHORT-GI-40]

# --- 开启 802.11ac (Wi-Fi 5) 支持 (如果你的网卡支持) ---
ieee80211ac=1
require_vht=1
# 1 表示 80MHz 频宽,这是 5G 高速的关键
vht_oper_chwidth=1
# 信道中心频率,如果 channel 选 36,这里填 42;如果选 149,这里填 155
vht_oper_centr_freq_seg0_idx=42
vht_capab=[SHORT-GI-80]

# --- 安全加密配置 (WPA2-Personal) ---
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=YourStrongPassword888
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=CCMP

怎么调整信号强度

解除国家码限制

阅读全文 →

nftables/nft 使用

以前的 Linux 系统配置网络流量主要是用 iptables,但是从内核版 3.13 开始加入 nf_tables 模块,真正的 iptables 便慢慢被弃用,现在的系统底层都是用的 nftables,iptables 命令只是一个命令转换器,用来兼容以前的 iptables 命令语法,底层还是写入到了 nftables。ufw 和 firewalld 也只是前端工具,将 nftables 封装的更易于使用。

阅读全文 →

mac 连接开发板串口

术语介绍

串口
全称是串行通信接口。在这个接口上传输数据,数据是像车在单行车道上排队通过一样。数据是一比特比特按顺序传输的。对比而言,并口则像多车道,数据可以并行传输多个。
而同时串口的电路简单,不需要高级驱动,甚至不需要操作系统运行起来。硬件成本极低,所以一般的开发板上都会留一个串口用于救砖,调试等等。
波特率
串口是串行的发送 0 和 1,接受方需要定时去查看电路的状态来获取数据,在串口语境下的波特率就是每秒钟传输的比特数。有了这个数据,就能知道发送方多久发送一个数据,接受方按同样的时间间隔去采样电压就可以获取数据了。

阅读全文 →

systemd-netword 使用

经常用 debian 的系统,一直配置网络都是在/etc/network/interface/ ,但是在ubuntu 里,配置网络主要用 netplan。两者配置起来还是有不小的区别,最近查了下,现在整体的趋势是用 systemd-networkd,这是 systemd 自带的网络配置工具。netplan 本质上是一个语法转换器,最终的配置也是用的 systemd-networkd。而 network/interface 也比较老旧了,现在的系统是使用 systemd 初始化的,自然也都有 systemd-networkd 工具。
正好需要配置一个网关小主机,学习一下 systemd-networkd 的配置方式。

阅读全文 →

创龙 Linux 镜像编译

(文章是编译创龙的 t153 开发板系统时记录的,不一定适用于所有开发板)

准备环境

准备系统源码

一般开发板厂商都会随系统给一份 linux 的源码,大概好几个 G,下载这份源码。放到希望编译的机器里。
我是要在一台 linux PC 里编译,所以会复制到系统里,找一个工作目录解压。

阅读全文 →

空间索引

空间索引本质上是一种数据结构,用来组织和检索具有“位置属性”的数据。就像二叉树一样,它可以提高检索的效率,只不过是处理一维数据。
空间索引常分为层级式索引和网格化索引。
层级式(Hierarchical)包括

阅读全文 →

Linux 路由规则

1. 流量分拣的三级流程

当一个 IP 包准备发出(或进入)时,内核会按照以下顺序进行“三审制”:

第一级:分拣员 (ip rule)

这是最高层。内核会查阅规则列表(从优先级 0 开始往后查)。

阅读全文 →

交换机和路由器

一 交换机

交换机是“二层设备”,它是个“脸盲”,根本看不懂 IP 地址,它只认物理网卡的 MAC 地址。
我们可以把局域网比作一栋单身公寓,交换机就是公寓一楼的宿管大爷

  • 端口(Port): 连着网线的物理接口,相当于通往各个房间的走廊。俗称网口。
  • MAC 地址: 网卡出厂自带的硬件地址,相当于每个房间门上永远不会变的物理门牌号(比如 101房、102房)。
  • IP 地址: 相当于住户的名字
    在这个比喻下,交换机(宿管大爷)的工作机制只有非常简单的三个动作:学习、泛洪、转发

1 基本组成:多个端口 + MAC 地址表逻辑

  • 物理形态: 就是一堆平等的端口(LAN 口)。
  • 核心逻辑:不处理 ARP。ARP 是两台电脑/服务器之间为了询问对方 MAC 地址而大喊大叫的动作。交换机的核心逻辑是维护“MAC 地址表”
  • 它的视角: 它是个“瞎子”,看不见 IP 地址,也听不懂 ARP 里的内容。它只负责看数据包外壳上的源物理 MAC 地址目标物理 MAC 地址,然后根据自己的 MAC 表,决定把数据从哪个端口扔出去。
  • 总结: 交换机 = 多端口 + 基于 MAC 地址的物理转发规则

2 能力

A 学习(Learning):记小本本

交换机内部有一张极其重要的表,叫 MAC 地址表(MAC Table)。一开始,这张表是空的。 当你的电脑接入网线并随便发送一个数据帧时,交换机会立刻拆开数据帧看一眼:

阅读全文 →