厨房里的常见物品

目录

  1. 学习目标 & 高频动词
  2. 厨房电器(Kitchen Appliances)
  3. 基础厨具(Basic Utensils & Tools)
  4. 调料与酱汁(Cooking Ingredients & Sauces)
  5. 清洁用品(Cleaning Supplies)
  6. 常见场景对话(Dialogues)
  7. 易错点纠正 & 实用替换句(Fixes & Better Phrases)

1) 学习目标 & 高频动词

学习目标(What you will learn)

  • 掌握厨房常见物品的 英文名称
  • 能用 简短句子 描述做饭、清洁等日常场景
  • 学会表达 借物、报修、购物 等常用需求

高频动词(必会)

  • cook / boil / steam / fry / bake:煮 / 蒸 / 炸 / 烤
  • cut / chop / slice:切 / 剁 / 切片
  • pour / stir / mix:倒 / 搅拌 / 混合
  • turn on / turn off:打开 / 关闭(电器)
  • wash / clean / dry:洗 / 清洁 / 擦干

2) 厨房电器(Kitchen Appliances)

关键词 | Key Terms

  • gas stove / electric stove:燃气灶 / 电磁炉
  • microwave oven:微波炉
  • rice cooker:电饭煲
  • steamer / steam cooker:蒸锅 / 蒸汽电器
  • oven:烤箱
  • blender:搅拌机
  • toaster:烤面包机
  • range hood / exhaust hood:抽油烟机

示例句 | Examples

  • We use a gas stove with bottled gas.
  • Please turn on the range hood when cooking.
  • I’ll heat it up in the microwave.

3) 基础厨具(Basic Utensils & Tools)

关键词 | Key Terms

  • knife / chopping board:刀 / 砧板
  • pan / pot / non-stick pan:平底锅 / 锅 / 不粘锅
  • spoon / fork / chopsticks:勺子 / 叉子 / 筷子
  • plate / bowl / glass / cup:盘子 / 碗 / 玻璃杯 / 杯子
  • strainer / colander:滤网 / 漏勺

示例句 | Examples

  • This is a wooden chopping board.
  • Be careful, the knife is very sharp.
  • Could you pass me a bowl?

4) 调料与酱汁(Cooking Ingredients & Sauces)

关键词 | Key Terms

  • cooking oil / salt / sugar / pepper:油 / 盐 / 糖 / 胡椒
  • soy sauce / vinegar:酱油 / 醋
  • oyster sauce / hoisin sauce:蚝油 / 海鲜酱
  • ketchup / tomato sauce:番茄酱
  • barbecue sauce / hot sauce:烧烤酱 / 辣酱
  • sesame oil:香油

示例句 | Examples

  • Please add some salt and pepper.
  • I like noodles with soy sauce.
  • Do you have any hot sauce?

5) 清洁用品(Cleaning Supplies)

关键词 | Key Terms

  • dish soap / dishwashing liquid:洗洁精
  • sponge / scrub brush:海绵 / 刷子
  • dishwasher / detergent:洗碗机 / 洗碗粉
  • rag / towel:抹布 / 毛巾

示例句 | Examples

  • We need more dish soap for the kitchen.
  • Use a sponge to wash the dishes.
  • The dishwasher is broken. Can you fix it?

6) 常见场景对话(Dialogues)

A. 借调料(At a Friend’s House)

You: Do you have any soy sauce?
Friend: Sure, it’s in the fridge.
You: Great, thanks!

B. 报修油烟机(Apartment Maintenance)

You: Hi, my range hood isn’t working properly.
Admin: We’ll send someone to check tomorrow.
You: Thanks, I’ll be home in the morning.

C. 超市购物(At a Supermarket)

You: Excuse me, where can I find oyster sauce?
Clerk: It’s in aisle 5, next to the soy sauce.
You: Perfect, thank you.


7) 易错点纠正 & 实用替换句(Fixes & Better Phrases)

常见纠正

  • non-stop pot → ✅ non-stick pan
  • open the gas → ✅ turn on the gas stove
  • close the fire → ✅ turn off the stove

更自然的替换

  • Could you pass me the salt?
  • Let’s steam the vegetables instead of frying.
  • The microwave doesn’t work. Can I use the oven?
  • Please wash the dishes after dinner.
本文阅读:--

浴室与卫生间常见表达与用具

Learn how to talk about your bathroom in English, from daily routines to equipment issues.
浴室用品的英文表达与真实对话,助你搞定日常交流。

目录

  1. 学习目标 & 高频动作动词
  2. 基本设施与管道配件(Fixtures & Plumbing)
  3. 沐浴与洗漱用品(Shower & Hygiene Items)
  4. 洗衣与干衣设备(Laundry Gear)
  5. 冬季加热设备(Heating in Cold Areas)
  6. 常见场景对话(Dialogues)
  7. 易错表达纠正 & 替换建议(Fixes & Better Phrases)

1) 学习目标 & 高频动作动词

学习目标(What you will learn)

  • 认识浴室/卫生间常见用具的英文名称与用途
  • 掌握描述个人清洁行为、设施问题等表达
  • 提高在家庭、宿舍、宾馆等场景中的沟通能力

高频动词(必会)

  • take a shower / take a bath:洗澡 / 泡澡
  • brush / rinse / wash:刷 / 漱 / 洗
  • flush:冲马桶
  • clog / unclog:堵住 / 疏通
  • leak / drip:漏水 / 滴水
  • soak / dry / hang up:浸泡 / 弄干 / 挂起
  • wipe / mop / clean:擦拭 / 拖地 / 打扫

2) 基本设施与管道配件(Fixtures & Plumbing)

关键词 | Key Terms

  • toilet:马桶
  • flush tank / flush button:水箱 / 冲水按钮
  • sink / basin:洗手池
  • faucet / tap:水龙头(美 / 英)
  • shower head / hose:花洒头 / 软管
  • drain:地漏 / 排水口
  • mirror cabinet:镜柜
  • towel rack / hook:毛巾架 / 挂钩

示例句 | Examples

  • The toilet won’t flush. I think the tank is broken.
  • There’s a leak under the sink. Can you take a look?
  • Please don’t drop hair into the drain, or it may clog.

3) 沐浴与洗漱用品(Shower & Hygiene Items)

关键词 | Key Terms

  • shampoo / conditioner:洗发水 / 护发素
  • body wash / soap:沐浴露 / 香皂
  • toothbrush / toothpaste:牙刷 / 牙膏
  • mouthwash / dental floss:漱口水 / 牙线
  • loofah / sponge:搓澡巾 / 海绵
  • razor / shaving cream:剃须刀 / 剃须膏
  • bath towel / face towel:浴巾 / 面巾

示例句 | Examples

  • Do you use body wash or soap?
  • I forgot to pack my toothbrush.
  • This razor is blunt. I need a new one.

4) 洗衣与干衣设备(Laundry Gear)

关键词 | Key Terms

  • washing machine:洗衣机
  • dryer / tumble dryer:烘干机
  • detergent / softener:洗衣液 / 柔顺剂
  • laundry basket / hamper:洗衣篮
  • drying rack / hanger:晾衣架 / 衣架

示例句 | Examples

  • I’ll do laundry tonight. The washer is free.
  • Where’s the drying rack? I need to hang my towels.
  • Add a bit of detergent, not too much.

5) 冬季加热设备(Heating in Cold Areas)

关键词 | Key Terms

  • bathroom heater:浴室暖风机
  • heat lamp:浴霸(顶灯加热)
  • heated towel rack:加热毛巾架
  • underfloor heating:地暖

示例句 | Examples

  • The heat lamp warms the room fast.
  • My toes freeze without underfloor heating.
  • I love using the heated towel rack in winter.

6) 常见场景对话(Dialogues)

A. 借洗漱用品(At a friend’s place)

You: Hey, I forgot my toothpaste. Can I borrow some?
Friend: Sure, it’s on the sink next to the mouthwash.
You: Thanks, I’ll just use a bit.

B. 水管故障(Maintenance Request)

You: Hi, my faucet is leaking nonstop. Can you help?
Landlord: We’ll send a plumber over this afternoon.
You: Thanks. I’ll leave the door unlocked.

C. 洗衣讨论(In Dorm Laundry Room)

Roommate: Is it okay to wash towels with shirts?
You: Better not. Towels may shed. Use a separate load.


7) 易错表达纠正 & 替换建议(Fixes & Better Phrases)

常见纠正

  • open the water → ✅ turn on the tap / faucet
  • I take bath everyday → ✅ I take a bath every day
  • wash face by basin → ✅ wash my face in the sink

替换建议

  • The drain is clogged again.
  • I need to shave before the meeting.
  • Please flush after use.
  • Where’s the laundry basket?

额外补充词汇

  • bidet:智能马桶/喷洗器
  • toilet paper / tissue:卫生纸 / 面纸
  • bath mat:浴室地垫
  • anti-slip pad:防滑垫
  • ventilation fan:排气扇

本文阅读:--

日常生活中的电器

A compact bilingual guide to everyday electrical appliances.
日常生活电器的双语速查手册。

目录

  1. 学习目标 & 高频动词
  2. 基础供电与配件(Charging & Power Basics)
  3. 电脑与显示设备(Computer & Monitor)
  4. 电视与家庭影音(TV & Home Entertainment)
  5. 冰箱:冷藏 vs 冷冻(Fridge vs Freezer)
  6. 风扇与空调(Fans & Air Conditioning)
  7. 音频设备:麦克风、耳机、音频接口(Audio Gear)
  8. 常见场景对话(Dialogues)
  9. 易错点纠正 & 实用替换句(Fixes & Better Phrases)

1) 学习目标 & 高频动词

学习目标(What you will learn)

  • 认识常见电器与配件的 英文名称用途
  • 会用 简单句 说明设备问题/需求
  • 在商店、家中、宿舍等 真实场景 下沟通

高频动词(必会)

  • plug in / unplug:插上 / 拔下
  • turn on / turn off:打开 / 关闭
  • switch on / switch off:打开 / 关掉(带开关的设备)
  • charge / recharge:充电 / 再充电
  • connect / disconnect:连接 / 断开
  • adjust / increase / decrease:调整 / 增加 / 减少
  • power on / shut down:开机 / 关机(计算机等)

2) 基础供电与配件(Charging & Power Basics)

关键词 | Key Terms

  • charger:充电器(把墙上交流电转换为设备可用直流电)
  • cable:线材(USB-C / Lightning / micro-USB 等)
  • power outlet / wall socket:墙壁插座
  • plug:插头
  • power strip / extension (cord):插线板 / 延长线
  • switch:开关
  • adapter / converter:转接头 / 转换器(制式或电压)
  • surge protector:防雷插座

用途 | Usage

  • Use the charger and cable to charge your phone.
  • Plug the charger into a wall outlet or a power strip.
  • Turn on the switch on the power strip before charging.

示例句 | Examples

  • Do you have a USB-C cable I can borrow?
  • This outlet is loose. The plug keeps falling out.
  • Please don’t overload the power strip.

3) 电脑与显示设备(Computer & Monitor)

关键词 | Key Terms

  • monitor:显示器
  • keyboard / mouse:键盘 / 鼠标
  • CPU / processor:处理器(“电脑的大脑”)
  • RAM:内存(运行时临时数据)
  • SSD / hard drive:固态 / 机械硬盘(存文件)
  • ports / inputs:接口(HDMI, USB, DisplayPort 等)

用途 | Usage

  • The monitor displays the image; the CPU processes data.
  • RAM helps programs run smoothly; the SSD stores files.
  • Connect the monitor via HDMI.

示例句 | Examples

  • My computer is slow. I might need more RAM.
  • The monitor says “No Signal.” Is the HDMI cable connected?

4) 电视与家庭影音(TV & Home Entertainment)

关键词 | Key Terms

  • TV / television:电视
  • remote (control):遥控器
  • HDMI / USB ports:接口
  • streaming stick / box:流媒体设备(电视棒/盒)
  • speakers / soundbar:音响 / 回音壁

用途 | Usage

  • Use the remote to change channels and adjust volume.
  • Plug your streaming stick into the HDMI port.

示例句 | Examples

  • Where is the HDMI 1 input on this TV?
  • The remote isn’t working. I’ll replace the batteries.

5) 冰箱:冷藏 vs 冷冻(Fridge vs Freezer)

关键词 | Key Terms

  • refrigerator / fridge:冰箱(整体或冷藏室)
  • freezer:冷冻室
  • thermostat:温控器
  • shelves / drawers / crisper:层板 / 抽屉 / 保鲜抽屉

概念要点 | Key Ideas

  • Freezing(冷冻)freezer,通常 ≤ 0 °C(≤ 32 °F),把水变成冰,食物保持冻结
  • Refrigeration / keep cold(冷藏)fridge 主仓,约 1–4 °C34–40 °F),保持低温但不结冰

    口误“keepCode”应为 keep cold / refrigerate(保持冷藏)。

示例句 | Examples

  • Please refrigerate the milk but freeze the dumplings.
  • Adjust the thermostat if the fridge is too warm.

6) 风扇与空调(Fans & Air Conditioning)

关键词 | Key Terms

  • air conditioner (AC):空调(制冷/除湿/送风)
  • remote / thermostat:遥控器 / 温控
  • ceiling fan:吊扇
  • pedestal / floor fan:落地扇(立杆)
  • tower fan:塔扇
  • desk fan:台扇

概念要点 | Key Ideas

  • Fan:只吹风/循环空气(体感凉),不真正降温
  • AC:通过制冷剂真正降温,也可除湿/送风

示例句 | Examples

  • Could you turn on the ceiling fan to level 3?
  • Set the AC to Cool mode at 24 °C.

7) 音频设备:麦克风、耳机、音频接口(Audio Gear)

关键词 | Key Terms

  • microphone (mic):麦克风(输入)
  • headphones / earphones:头戴式 / 入耳式耳机(监听)
  • speakers:扬声器(外放)
  • audio interface:音频接口(麦克风/耳机/乐器的集线与声卡,把音频送进电脑;可调增益、监听、静音等)
  • gain / monitor / mute:增益 / 监听 / 静音

用途 | Usage

  • Plug your mic into the audio interface, then connect the interface to your computer.
  • Use headphones to monitor your voice while recording.

示例句 | Examples

  • I’m getting noise. Can you lower the gain a little?
  • Please mute the mic when you’re not speaking.

8) 常见场景对话(Dialogues)

A. 借充电器(At a café)

You: Excuse me, do you have a USB-C charger I could borrow for a bit?
Staff: Sure. There’s a power outlet under the table.
You: Great, I’ll plug it in. Thanks!

B. 宿舍报修(Dorm / Apartment Maintenance)

You: Hi, my ceiling fan is making a strange noise. Could someone check it?
Admin: We’ll send a technician this afternoon.
You: Thanks! I’ll be in my room after 2 pm.

C. 商店购买风扇(At an Appliance Store)

You: I’m choosing between a pedestal fan and a tower fan. Which is quieter?
Clerk: This tower fan is quiet and has a remote.
You: Sounds good. I’ll take this one.

D. 连接音频接口(Simple Tech Support)

Friend: Your mic is clipping.
You: I’ll lower the gain on the audio interface and try again.


9) 易错点纠正 & 实用替换句(Fixes & Better Phrases)

常见纠正

  • keep code → ✅ keep cold / refrigerate
  • open the light/air-con → ✅ turn on the light/AC
  • close the TV → ✅ turn off the TV

词汇速查

  • power bank:充电宝 / portable charger
  • adapter:转换头;converter:转换器(如电压/制式)
  • power strip:插线板;surge-protected power strip:带防雷保护
  • computer case / tower:电脑主机箱(注意 CPU 是处理器,不等于整机)

更自然的替换

  • Can I use this outlet?
  • Is this compatible with my phone?
  • The fridge isn’t cold enough.
  • Please switch off the power strip when you leave.
本文阅读:--

浅拷贝和深拷贝

1. 赋值(=)

  • 只是创建新名字,指向同一个对象

  • 修改任意一方,另一方都会跟着变

a = [1, 2, 3]
b = a      # 赋值
b[0] = 99

print(a)  # [99, 2, 3]
print(b)  # [99, 2, 3]
print(a is b)  # True

2. 浅拷贝(copy.copy()

  • 新建外层容器,但里面的子对象仍然共享引用

  • 修改子对象内部 → 会影响原对象

  • 替换整个子对象 → 脱钩,不影响原对象

示例 1:修改子元素(会影响)

import copy

a = [[1, 2, 3], [3, 4, 5]]
b = copy.copy(a)
b[0][0] = 99

print(a)  # [[99, 2, 3], [3, 4, 5]]
print(b)  # [[99, 2, 3], [3, 4, 5]]

示例 1:替换整个子列表(不会影响)

a = [[1, 2, 3], [3, 4, 5]]
b = copy.copy(a)
b[0] = [99, 98, 97]

print(a)  # [[1, 2, 3], [3, 4, 5]]
print(b)  # [[99, 98, 97], [3, 4, 5]]

3. 深拷贝(copy.deepcopy()

  • 递归地复制所有层次对象

  • 完全独立,互不影响

import copy
a = [[1, 2, 3], [3, 4, 5]]
b = copy.deepcopy(a)
b[0][0] = 99

print(a)  # [[1, 2, 3], [3, 4, 5]]
print(b)  # [[99, 2, 3], [3, 4, 5]]
本文阅读:--

排序

(正文内容从这里开始…)

快速排序

import random

def partition(nums, start, end):
    """填坑法分区:返回枢轴落点索引"""
    pivot = nums[start]          # 也可随机:p = random.randint(start, end); nums[start], nums[p] = nums[p], nums[start]
    left, right = start, end
    while left < right:
        # 右侧先找 < pivot 的
        while left < right and nums[right] >= pivot:
            right -= 1
        nums[left] = nums[right]     # 右边的小填到左坑

        # 左侧再找 > pivot 的
        while left < right and nums[left] <= pivot:
            left += 1
        nums[right] = nums[left]     # 左边的大填到右坑

    nums[left] = pivot               # 枢轴就位
    return left

def quicksort(nums, l=0, r=None):
    """原地快速排序(递归)"""
    if r is None:
        r = len(nums) - 1
    if l >= r:
        return
    mid = partition(nums, l, r)
    quicksort(nums, l, mid - 1)
    quicksort(nums, mid + 1, r)
def quicksort(nums, start, end):
    """原地快速排序(递归)"""
    if start >= end:
        return

    pivot = nums[start]
    left, right = start, end

    # 分区:右找小填左坑,左找大填右坑
    while left < right:
        while left < right and nums[right] >= pivot:
            right -= 1
        if left < right:
            nums[left] = nums[right]
        while left < right and nums[left] <= pivot:
            left += 1
        if left < right:
            nums[right] = nums[left]

    nums[left] = pivot  # 枢轴就位
    quicksort(nums, start, left - 1)
    quicksort(nums, left + 1, end)

912是排序数组 要求nlogn
改进版本快排

class Solution:
    def sortArray(self, nums: List[int]) -> List[int]:
        def quicksort(nums, start, end):
            """原地快速排序(递归)"""
            if start >= end:
                return

            # pivot = nums[start]
            pivot = nums[random.randint(start, end)]
            left, right = start, end
            scan = left
            # 分区:右找小填左坑,左找大填右坑
            while scan <= right:
                if nums[scan] < pivot:
                    nums[left], nums[scan] = nums[scan], nums[left]
                    left = left + 1
                    scan = scan + 1
                elif nums[scan] > pivot:
                    nums[right], nums[scan] = nums[scan], nums[right]
                    right = right - 1
                else:
                    scan = scan + 1

            quicksort(nums, start, left - 1)
            quicksort(nums, right + 1, end)
        
        if len(nums) <= 1:
            return nums
        quicksort(nums, 0, len(nums) - 1)
        return nums

这个方法会在leetcode217.存在重复元素超时
改进快排

import random
from typing import List

def quicksort(a: List[int], l: int, r: int) -> None:
    """改进版原地快速排序(三路划分 + 随机枢轴 + 尾递归优化)"""
    while l < r:
        # 1) 随机选择枢轴,交换到开头
        p = random.randint(l, r)
        a[l], a[p] = a[p], a[l]
        pivot = a[l]

        # 2) 三路划分:[l..lt-1] < pivot, [lt..gt] == pivot, [gt+1..r] > pivot
        lt, i, gt = l, l + 1, r
        while i <= gt:
            if a[i] < pivot:
                a[lt], a[i] = a[i], a[lt]
                lt += 1
                i += 1
            elif a[i] > pivot:
                a[i], a[gt] = a[gt], a[i]
                gt -= 1
            else:
                i += 1

        # 3) 递归较小的一侧,循环处理较大的一侧(尾递归优化)
        left_len = lt - 1 - l
        right_len = r - (gt + 1)
        if left_len < right_len:
            if l < lt - 1:
                quicksort(a, l, lt - 1)
            l = gt + 1
        else:
            if gt + 1 < r:
                quicksort(a, gt + 1, r)
            r = lt - 1

```  
# 冒泡排序

def bubble_sort(nums):
“””原地冒泡排序;稳定。平均/最坏 O(n^2),最好(近乎有序)可提前终止。”””
n = len(nums)
for i in range(n - 1):
swapped = False
# 相邻比较与交换,内层区间逐步缩短
for j in range(0, n - 1 - i):
if nums[j] > nums[j + 1]:
nums[j], nums[j + 1] = nums[j + 1], nums[j]
swapped = True
if not swapped: # 本轮无交换 -> 已有序
break
return nums

def selection_sort(nums):
“””原地选择排序;不稳定。时间复杂度始终 O(n^2)。”””
n = len(nums)
for i in range(n - 1):
min_idx = i
# 在 [i+1, n) 中找最小元素的位置
for j in range(i + 1, n):
if nums[j] < nums[min_idx]:
min_idx = j
# 只在需要时交换,减少无谓交换次数
if min_idx != i:
nums[i], nums[min_idx] = nums[min_idx], nums[i]
return nums



# 归并排序

def merge_sort(nums):
if len(nums) <= 1:
return nums
mid = len(nums) // 2
left = merge_sort(nums[:mid])
right = merge_sort(nums[mid:])
return merge(left, right)

def merge(left, right):
l, r = 0, 0
res = []
while l < len(left) and r < len(right):
if left[l] <= right[r]:
res.append(left[l])
l += 1
else:
res.append(right[r])
r += 1
res.extend(left[l:])
res.extend(right[r:])
return res


本文阅读:--

title: # # 第二轮复习要点(自 2025‑09‑13 19:16 起)— 网络与实战笔记
date: 2025-08-16 15:00:00


本笔记汇总我们在该时间点之后的所有关键对话,按主题整理,便于复习与分享(可打印)。


0. 时间锚点

  • 复习起始时间:2025‑09‑13 19:16(新加坡时间)。

1) Nmap 实战与结果解读

  • 环境:Windows Nmap 7.98。
  • 常用命令
    nmap target                # 常见 1000 TCP 端口
    nmap -p 1-65535 target     # 全端口
    nmap -sS -sV -O target     # 半开扫描 + 服务版本 + OS 识别(需管理员)
    nmap -sU -p 53,5000-5500 target # UDP 扫描(较慢)
  • 对百度的扫描www.baidu.com → 45.113.192.101):
    • 开放:TCP 80/443 → Web/CDN 常规端口。
  • 对 LOL 国服(lol.qq.com → 203.205.137.181):
    • 开放:TCP 80/443/8080/880/6006 → 除网页外,还有业务端口(登录/大厅/服务接口等)。
  • 下一步建议
    • -sV 看具体服务与版本;-O 看 OS;-sU 探测对局相关 UDP 段(如 5000–5500)。

2) Nmap 的工作原理(总览)

  • 主机发现:ICMP、ARP、TCP SYN/ACK Ping 等判活。
  • 端口扫描
    • TCP SYN(-sS,半开)、TCP Connect(-sT)、UDP(-sU)、FIN/NULL/XMAS 等。
    • 端口状态:open / closed / filtered。
  • 服务与版本识别(-sV):发“探针”匹配返回 banner。
  • OS 识别(-O):根据响应特征匹配指纹库。
  • NSE 脚本:弱口令、漏洞、证书/标题等信息收集。

3) DNS 进阶:FQDN 与解析路径

  • FQDN:完整域名以点结尾(如 www.example.com.)。DNS 语义等价于不带点写法,但 HTTP Hostwww.example.com. 时属异常输入,WAF/风控可能拦截。
  • 解析路径(逻辑):客户端把查询交给 递归解析器(路由器 DNS/运营商/114/8.8.8.8)。解析器若缓存命中直接返回,否则迭代问 根 → TLD(.com) → 权威 DNS
  • 实际物理路径:数据包先到 默认网关运营商 → 递归 DNS(之后才发生上述逻辑迭代)。
  • 示例流程(www.server.com):本地 DNS → 根 → .com → server.com 权威 → 返回 A 记录。

4) 子网与掩码:网络号/主机号

  • IP 构成:32 位 = 网络号 + 主机号(由子网掩码划分)。
  • /18 计算示例
    • 掩码:11111111.11111111.11000000.00000000 = 255.255.192.0
    • 主机位:14 位 → 可用主机数 = 2^14 − 2 = 16382
    • 若网络从 192.168.0.0/18:范围 192.168.0.1–192.168.63.254,广播 192.168.63.255
  • 主机号注意:同一子网内必须唯一;全 0(网络地址)和全 1(广播地址)不可用。

5) ARP:从内网到网关

  • 作用:解析 IP→MAC,仅在同一二层广播域有效。
  • 流程(访问公网前)
    1. 主机判定目标不在本网段 → 交给默认网关 IP(如 192.168.0.1)。
    2. 查询 ARP 缓存,无则广播“谁是 192.168.0.1?”
    3. 网关以单播回复其 MAC → 写入缓存。
    4. 以后发包直接用该 MAC 作为帧目的地址。
  • ARP 表观测arp -a 中常见网关 MAC(动态),以及 224.* / 239.* / 255.* 的组播/广播(静态条目)。

6) 路由器如何把包“发到互联网”

  • 步骤:查路由表 → 选出口接口(WAN)→ (家庭场景)执行 NAT(内网源地址/端口映射)→ 对“下一跳”做 ARP → 重新封装帧(源 MAC=路由器 WAN,目的 MAC=上级网关)→ 送入运营商 → 通过 BGP/IGP 转发至目标自治系统。
  • 回包:先到路由器公网 IP → 由 NAT 表还原到内网主机(会话四元组)。
  • 简图
    主机(192.168.0.102) ──> 网关(192.168.0.1) ──> 运营商网关 ──> 目标服务器
                   ARP找网关MAC       NAT+ARP下一跳        BGP选路

7) 路由表:查看与意义(结合你的输出)

  • 核心字段:网络目标 / 掩码 / 网关 / 接口 / 跃点数。
  • 你的关键项
    • 默认路由 0.0.0.0/0 → 192.168.0.1(所有非本地流量走网关)。
    • 本地网段 192.168.0.0/24(同网段直达,不经网关)。
    • 回环 127.0.0.0/8;组播 224.0.0.0/4;全广播 255.255.255.255/32
  • 意义:决定包从哪块网卡、交由哪个下一跳转发;多网卡/有 VPN 场景尤为关键;按最长前缀匹配优先选择最具体的路由。

8) OSI vs TCP/IP 模型与封装

  • OSI 七层:物理、数据链路、网络、传输、会话、表示、应用(理论模型)。
  • TCP/IP 四层:网络接口、网络层、传输层、应用层(互联网实际分层)。
  • 封装链路
    应用数据 → [TCP/UDP头] → [IP头] → [以太网帧头/尾] → 物理信号
  • 常见协议映射:HTTP/DNS(应用);TCP/UDP(传输);IP/ICMP/ARP/BGP(网络);Ethernet/Wi‑Fi(接口/物理)。

9) 应用层 Socket 与编程

  • Socket 含义:应用调用 OS 的网络接口(BSD Sockets/Winsock)以使用 TCP/UDP。
  • 不使用 import socket 的可能性
    • scapy 等库手工构造/发送包(底层仍调用内核接口)。
    • 自己实现用户态协议栈 + 原始以太网发送(复杂度极高,仍需通过驱动/内核接口下发)。
  • 现实:真正“发到网卡”必须经由操作系统提供的接口。

10) TCP/UDP 在理想与现实网络

  • 理想:不掉包/不乱序/不拥塞 → 可直接用 UDP(轻量),TCP 的重传/拥塞控制少用或不需。
  • 现实公网:不可避免抖动/丢包/拥塞 → 仍需 TCP 的可靠机制;实时应用常用 UDP + 应用层容错。

11) Linux 收发网络包(扩展认知)

  • 接收:网卡 DMA → 环形缓冲 → 硬中断 → 软中断/NAPI 轮询 → 接口层 → IP 层 → TCP/UDP → 套接字缓冲 → 应用读取。
  • 发送:应用写 Socket → 分配 sk_buff → 传输层/IP 层封装 → 接口层(ARP、帧头)→ 网卡队列/DMA 发送。
  • 关键优化:NAPI 减少中断风暴;sk_buff 头部预留减少拷贝;MTU/分片注意性能成本。

12) 命令与实验清单(可自测)

  • DNSnslookup domain [dns];比较不同 DNS 的解析与 TTL。
  • 连通性ping ip路由路径tracert ip
  • 端口nmap -sS -sV -O target / nmap -sU -p 5000-5500 target
  • ARParp -a;观察网关 MAC 与组播条目。
  • 路由route print;必要时 route add 做定向路由实验(例如公司内网段走 VPN)。

13) 速记要点(一屏记忆)

  • DNS:递归解析器能答就不向上;逻辑迭代根/TLD/权威仅在未命中时发生。
  • FQDN:www.xxx.com.www.xxx.com 等价于 DNS 层;HTTP Host 末尾点属异常,可能触发风控。
  • ARP:只在二层广播域有效;发公网先 ARP 网关 MAC。
  • NAT:家庭上网的关键;回包靠 NAT 表映射四元组复原。
  • 路由:按最长前缀匹配;默认路由兜底,专网/多网卡要配静态路由。
  • Nmap:SYN 扫描最常用;UDP 慢但观察对局端口必备;-sV/-O 获取更多情报。
  • 分层:OSI 理念、TCP/IP实用;封装顺序应用→传输→网络→链路/物理

完。

本文阅读:--

一些小目标

所谓的八股?系统、网络、数据库

都是很重要的东西,数据库和网络是时时刻刻都在用的
组成和系统可能没有那么有用,但作为科班至少得明白一些底层原理吧
目标10.10之前完成所有吧,尽量在投递建立之前就基本完成,然后逐步实践加深记忆并且更新

leetcode编码能力

目前九月份稍微放一放
但是力求每天进步一点点,应该是有机会的
这次秋招我没有梭哈算法先整理别的
但是到二月份春招一定要达到大厂的水平
我相信你可以的
10.10之前解决完hot100吧
学期结束前解决完100+150

新加坡实习

目标从投递完秋招开始投递
实事求是

机器学习/深度学习能力

依托课程和kaggle吧
这两个都是要逐步解决攻克的
在9.28之前完成初步的依托课程的系统理解,以在面试中从容应对

包括但不限于部署llm+lora gan cv nlp的模型 至少得有的讲?

然后每个月都要参加kaggle在实践之中磨练自己的数据挖掘能力这个真的是练出来的

#简历以及面试
9.28前完成所有要从容应对的部分
9.28以后根据上文的学习情况逐步增加“xxx模型”“xxx竞赛”“xxx作业”的经验丰富

#26春招和秋招 直接全面开火

本文阅读:--

WireGuard

阿里云 CentOS 搭建 WireGuard

1. 购买服务器 & 配置安全组

  • 阿里云 ECS 控制台 购买一台 ECS 实例

    • 地域:选择中国大陆机房
    • 系统:Alibaba Cloud Linux 3 / CentOS 8
    • 带宽:≥ 5 Mbps
  • 安全组 → 入方向规则 添加:

    • 协议类型:UDP
    • 端口范围:51820
    • 授权对象:0.0.0.0/0

2. 服务端安装 WireGuard

sudo dnf update -y
sudo dnf install -y wireguard-tools iproute iptables

# 生成密钥
# 服务端
wg genkey | tee ~/server_private.key | wg pubkey > ~/server_public.key

# 客户端
wg genkey | tee ~/client_private.key | wg pubkey > ~/client_public.key

# 写配置文件 /etc/wireguard/wg0.conf
SVR_PRIV=$(cat ~/server_private.key)
CLI_PUB=$(cat ~/client_public.key)

sudo bash -c "cat > /etc/wireguard/wg0.conf" <<EOF
[Interface]
PrivateKey = ${SVR_PRIV}
Address = 10.0.0.1/24
ListenPort = 51820
MTU = 1380
PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = ${CLI_PUB}
AllowedIPs = 10.0.0.2/32
EOF

# 开启内核转发
sudo sysctl -w net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward=1' | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl --system

# 启动WireGuard
sudo systemctl enable wg-quick@wg0
sudo systemctl restart wg-quick@wg0
sudo wg show

3. 本地 Windows 客户端

下载 WireGuard for Windows

打开应用 → Add Tunnel → Import from file

写入如下配置(⚠️ 修改为你的公网 IP,例如 1.123.123.123):

[Interface]
PrivateKey = (client_private.key 内容)
Address = 10.0.0.2/24
DNS = 223.5.5.5
MTU = 1380

[Peer]
PublicKey = (server_public.key 内容)
Endpoint = 1.123.123.123:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

4.细节

在客户端

wireguard使用Curve25519 椭圆曲线密钥(非对称加密算法)
[Interface]
里面是自己的私钥和自己的虚拟ip地址,解析用的dns服务器(这里选了阿里云的)
MTU限制吞吐量

  • 这么做有三大好处:
  1. 避免 DNS 泄漏:如果不改,浏览器可能还在用本地网关的 DNS,查询会走公网而不是隧道。

  2. 解析内网域名:你在服务器上跑了 dnsmasq/unbound(比如 10.0.0.1),客户端填它就能解析内网域名。

  3. 稳定性:一些网络/MTU 场景下,把 DNS 指向“隧道内可达”的服务器更稳。

[peer]
端保存服务器的公钥,服务器的ip和端口
AllowedIPs目前是全局代理,当然可以指定自己的规则

  • 全局代理:0.0.0.0/0, ::/0
  • 仅内网:例如 10.0.0.0/24

PersistentKeepalive = 25
是为了防止因为NAT等原因断开
但是我下边的日志交换密钥很频繁可能是因为丢包率较高

在服务器端

首先下载需要的组件
其次生成公钥私钥
自己保存私钥 公钥是为了方便别人找到自己
在服务器控制面板打开udp协议和端口
[peer]
PublicKey =
AllowedIPs = 10.0.0.2/32
写好客户端的公钥和ip

[Interface]
端不需要写DNS但是要指定自己的端口

  • 启用 IPv4 转发:net.ipv4.ip_forward=1(见安装步骤)

  • NAT 与转发:同时允许流量进/出 wg0,并做源 NAT

#配置服务器转发(若需客户端通过服务器访问公网)
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
# 启动服务并设置开机自启 
sudo systemctl enable --now wg-quick@wg0 
# 查看状态(若显示“active (running)”则成功) 
sudo systemctl status wg-quick@wg0 
# 查看连接信息(初始为空,待客户端连接后显示) 
sudo wgo wg

分析一下通信过程

  • Peer A:「客户端设备」(比如你的 PC、手机,即之前配置中 Address = 10.0.0.2/2410.0.0.3/24 的设备)
  • Peer B:「阿里云 WireGuard 服务器」(即 Address = 10.0.0.1/24ListenPort = 51820 的设备,其 Endpoint 是服务器公网 IP:51820,比如你之前用的 8.138.164.133:51820

1. 密钥协商:A 是客户端,B 是服务器

流程中 “Peer A 首次向 Peer B 发送数据”,对应实际场景:

  • Peer A(客户端):你的 PC / 手机(主动发起连接的一方)。比如你点击 PC 上 WireGuard 的 “Activate” 后,客户端会生成 “临时随机数”,用服务器的公钥加密,向服务器的 Endpoint(8.138.164.133:51820)发送请求;
  • Peer B(服务器):阿里云上的 WireGuard 服务端(监听 51820 端口的一方)。收到客户端的请求后,用自己的私钥解密,再生成临时随机数、用客户端公钥加密后返回响应,最终双方算出相同的 “会话密钥”。

2. 数据封装:A 是客户端(发起访问的一方)

流程中 “Peer A 要访问 Peer B 所在的公司内网(如 10.0.0.5)”,对应实际场景:

  • Peer A(客户端):你的 PC / 手机(要访问服务器内网资源的一方)。比如你在 PC 上访问服务器内网的 10.0.0.5 设备,PC 会把访问请求发给本地 WireGuard 虚拟网卡(wg0),再由 WireGuard 用 “会话密钥” 加密,封装成 UDP 包发给服务器;
  • Peer B(服务器):阿里云 WireGuard 服务端(内网资源的 “网关”)。客户端发送的 UDP 包,目标地址就是服务器的 Endpoint(8.138.164.133:51820)。

3. 数据解密与转发:B 是服务器(转发内网资源的一方)

流程中 “Peer B 收到 UDP 数据包后转发到内网”,对应实际场景:

  • Peer B(服务器):阿里云 WireGuard 服务端。收到客户端的加密包后,验证客户端身份、解密数据,再根据 AllowedIPs 规则(比如服务器配置中允许客户端访问内网),把请求转发到内网的 10.0.0.5
  • Peer A(客户端):你的 PC / 手机。当 10.0.0.5 返回响应时,响应会先发给服务器,服务器加密后再发给客户端,客户端解密后交给本地系统,完成一次通信。

PC端客户端的日志

到货包装 日志1
本文阅读:--

在新加坡的第一次网购

在新加坡的第一次网购

淘宝网购小米热水壶,邮费比货贵

  • 8 月 4 日 23:47 下单。
  • 8 月 9 日晚上,包裹已空运抵达新加坡。
    配送员通过 WhatsApp 联系我,但我当时没有看到消息。
    对方说我的单元楼号填写不够详细,如果当时及时回复,可能当天晚上就能收到。
  • 空运速度很快,可惜我没注意到消息。第二天配送员再次联系,我依然没有看到。等我回复时,已经没有了反馈。我原以为他们不再配送了,后来才知道,两天联系不上就会更换配送员。
  • 8 月 13 日中午,新的配送员通过 WhatsApp 再次询问详细地址,我下午才回复,对方确认收到了。
  • 8 月 14 日下午,包裹顺利送达。

    整体来说空运速度还是很快的

到货包装

到货包装

包裹内容

包裹内容

购买链接截图

购买链接
本文阅读:--

这份清单覆盖:DNS 与多 IP、Cloudflare 与 Riot、LOL 国服/国际服差异、Ping/Traceroute/ICMP、BGP 路由劫持(2008 巴基斯坦 YouTube 事件)、端口与连接、LOL 端口与连接拓扑、端口耗尽与扩展、网卡与多 IP/多网段、跨境加速与地区选择等。配合命令速查与小图示,便于复习与分享。


1) DNS 解析与“一个域名多个 IP”

  • 一个域名可以对应多 IP:用于负载均衡、就近接入与容错(CDN/GSLB)。
  • www.baidu.com → www.a.shifen.com → www.wshifen.com:常见的 CNAME 链(别名 → 别名 → 最终 A 记录)。
  • 不同 DNS(114DNS/8.8.8.8/1.1.1.1/阿里DNS)返回的 IP 可能 不同:因为 地理调度/运营商/缓存 不同。
  • 非权威应答:当前 DNS 不是该域名权威服务器,但给出缓存或递归解析的结果。
  • 常用命令:
    nslookup www.baidu.com           # 使用系统默认 DNS
    nslookup www.baidu.com 114.114.114.114  # 指定公共 DNS
    nslookup auth.riotgames.com 8.8.8.8

2) Cloudflare 是什么?

  • CDN + DDoS 防护 + 反向代理 + Anycast 的全球网络。
  • 站在用户与源站之间:加速(就近节点)、防护(隐藏源 IP、WAF)、高可用
  • 例:auth.riotgames.com 解析到 *.cdn.cloudflare.net(Cloudflare IP),不同 DNS 解析一致,说明统一走 Cloudflare 边缘节点。

3) LOL:国服 vs 国际服(Riot 自营)

  • 国际服:域名多为 riotgames.com / pvp.net;登录等常走 Cloudflare;对局在各大洲机房。
  • 国服(腾讯运营):域名多为 qq.com / tencent.com;机房在 中国大陆(北京/上海/广州/成都);常见 IP 网段:203.205.*.*119.*.* 等。
  • 结论:同一大区(如电一/网一)背后是不同机房/集群;选择不同大区 → 不同服务器 IP 段

4) Ping / Traceroute 实验与解读

  • Ping 原理:ICMP Echo Request/Reply,测可达性与往返延迟 RTT;TTL 反映大致跳数。并非所有主机都回 ICMP(防火墙可能丢弃)。
  • Traceroute 原理:逐步增加 TTL,依靠 ICMP Time Exceeded 显示各跳路由。
  • 示例现象:
    • 新加坡 → 腾讯 203.205.*.*:多经由 PCCW 香港,延迟约 40–60ms。
    • 新加坡 → 119.167.*.*:曾出现 绕欧洲(Telia/法兰克福)再回中国,延迟 300ms+。
  • 加速器(如 UU):先到本地加速节点 → 走加速专线直达国内节点 → 减少绕路/拥塞,延迟显著降低。

5) ICMP 速查

  • 作用:网络层的控制消息(诊断/错误报告)。
  • 常见类型:
    • 8/0:Echo Request/Reply(ping)
    • 11:Time Exceeded(traceroute)
    • 3:Destination Unreachable(目标不可达)
    • 5:Redirect(重定向)
    • 12:Parameter Problem(参数问题)
  • 不能“绕过防火墙”:ICMP 可被拦截;Ping 不通不代表服务一定不可用。

6) BGP 与 2008 巴基斯坦 YouTube 事件(必考级)

  • 背景:2008-02-24,巴基斯坦电信为屏蔽 YouTube,本地“黑洞路由”误通过 BGP 广播到全球。
  • 关键点:
    • YouTube 公布前缀:208.65.152.0/22
    • 错误广播:208.65.153.0/24更具体前缀优先
    • 大量全球流量被吸到巴基斯坦,YouTube 全球中断约 2 小时
    • 谷歌联系上游 PCCW 撤回错误前缀,网络收敛恢复。
  • 意义:暴露 BGP 无认证/易被“劫持”;促进 RPKI 等路由验证部署。

7) 端口、连接与临时端口(Ephemeral)

  • 端口范围:0–65535;0–1023(知名),1024–49151(注册),49152–65535(临时)。
  • 服务器端口:应用显式监听(如 80/443/2099/5000–5500)。
  • 客户端临时端口:OS 自动分配;连接结束进入 TIME_WAIT 再回收。
  • 四元组 唯一标识连接:(源IP, 源端口, 目的IP, 目的端口)
  • 浏览器访问:HTTP=80,HTTPS=443(可显式写其他端口,如 :8080)。CDN/代理层对外 80/443,后端真实端口对外不可见。
  • netstat 解读:看本地/远端地址与状态(ESTABLISHED/TIME_WAIT/CLOSE_WAIT/SYN_SENT 等)。

8) LOL 的端口与对局拓扑

  • TCP:80、443(登录/更新/商城);2099(大厅/匹配);5222/5223(聊天);8393–8400(启动器)。
  • UDP:5000–5500(对局核心数据);语音可能额外 UDP 端口范围。
  • 同一房间:所有玩家 → 同一个服务器 UDP 端口(例如 5003);客户端各自使用不同本地临时端口。

小图:同房间同端口

玩家A 1.1.1.1:49120 ─┐
玩家B 2.2.2.2:53001 ─┤  (UDP)
...                  ─┤→ 203.205.136.77:5003
玩家J 10.10.10.10:60001┘
  • 打一局大致连接数量
    • 大厅阶段:2–5 条 TCP
    • 对局阶段:1–2 条 UDP(+ 可能 1 条 TCP 辅助)
    • 语音:1–2 条 UDP
    • 合计:约 5–10 个并发端口

9) 端口耗尽与扩展思路

  • 单个 IP 理论上限:65535 端口;极端并发(压测/P2P)才可能耗尽。
  • 扩展手段:
    • 多个 IP(每个 IP × 65535)
    • 调整临时端口范围/回收策略(Linux: ip_local_port_range / tcp_fin_timeout;Windows: MaxUserPort
    • IPv6(更多地址组合),或多机分布式架构/负载均衡。

10) 网卡(NIC)与多 IP / 多网段

  • IP 绑定在网卡接口上;网卡有 MAC,IP 是逻辑地址。
  • 一块网卡可绑多个 IP(IPv4/IPv6 都行);服务器/网站托管常见。
  • PC 可有多个 IPv4:同一网卡多 IP、不同网卡(有线+无线+虚拟网卡)、以及 IPv6 同时存在。
  • 两个公网 IP
    • 需运营商/云厂商分配(同网卡多公网 IP,或双网卡双运营商)。
  • 一台服务器两个网段
    • 多网卡分别接入内外网,或单网卡多 IP;关键是 路由表/策略路由防火墙
  • 两个外网段(双线接入/Multi-homing)
    • 典型:电信 + 联通;需策略路由保证“从哪个源 IP 出去就从哪个网关回来”,避免回程错乱。

11) 跨境连接、加速与地区选择

  • 地理近 ≠ 网络近:路径由 BGP 与运营商策略 决定。
  • AWS 台北 ←→ 大陆:常绕路/拥塞,实际比香港/新加坡/日本更慢。
  • 方案:选 CN2/GIA 优化线路 的香港/新加坡/日本节点;或中转/协议优化(gRPC/XTLS/QUIC 等)。
  • 加速器:本地节点 + 专线直连国内节点 → 避免绕路与公共出口拥塞。

12) 命令速查(Windows 为例)

# DNS 解析
nslookup domain.com
nslookup domain.com 114.114.114.114

# 连通性/延迟
ping 203.205.136.77

# 路由路径
tracert 203.205.136.77

# 当前连接
netstat -ano | findstr ESTABLISHED

# 查看/添加 IP(Linux 示例)
ip addr show
ip addr add 192.168.0.200/24 dev eth0

13) 传输层总览(TCP vs UDP)

  • TCP:面向连接、可靠、有序、拥塞+流控;适合网页/文件/登录。
  • UDP:无连接、不保证可靠;时延小、开销低;适合直播/语音/游戏/DNS。
  • 端口 是传输层与应用的“门牌号”,四元组唯一标识一条会话。

14) 关键概念一图流

应用层:  HTTP / DNS / SMTP / FTP / ...
            │
传输层:  TCP / UDP   ← 端口(80/443/5000..)
            │
网络层:    IP        ← 寻址/路由
            │
链路层: Ethernet / Wi‑Fi
            │
物理层: 光纤/电缆/无线
连接四元组:
(源IP, 源端口, 目的IP, 目的端口)
192.168.0.102:49835 → 220.181.38.148:443

15) 自测题(快速复习)

  1. 为什么不同 DNS 解析同一域名得到的 IP 不同?
  2. Cloudflare 在链路中扮演什么角色,为什么 auth.riotgames.com 常解析到它?
  3. Ping 与 Traceroute 各用到哪种 ICMP 类型?能否绕过防火墙?
  4. 2008 巴基斯坦 YouTube 事件的根本原因是什么?“更具体前缀优先”带来了什么后果?
  5. LOL 同一房间内,所有玩家是否连接到同一个服务器端口?为什么?
  6. 本地临时端口为什么会进入 TIME_WAIT?如何避免端口资源耗尽?
  7. 一台服务器如何同时接入两个外网段?策略路由如何保证出入口一致?
  8. 为什么 AWS 台北从大陆访问常常比香港/新加坡更慢?

End

这份清单可直接当“速记本”使用;若你要分享给同学,可在此基础上继续补充截图与实验数据(如你的 ping/tracert/netstat 输出)。

本文阅读:--
访客:-- 浏览:--