Skip to content

Commit 0e2c704

Browse files
author
passplease
committed
2025-11-11a
1 parent 7b40a30 commit 0e2c704

File tree

4 files changed

+73
-1
lines changed

4 files changed

+73
-1
lines changed

Chirpy/_posts/2025-08-05-集合论笔记(第二卷).md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,9 +208,11 @@ $$
208208
(a) $\pi :(X,\in)\cong (L_{\beta},\in)$<br>
209209
(b)如果 $Y\subseteq X$ 是一个传递集合,那么 $(\forall x\in Y(\pi (x) = x))$<br>
210210
(c) $(\forall x\in X(\pi (x)\leq x))$
211+
> 其中$L$是使用$\mathfrak D$从$\varnothing$开始,一层层套娃最终得到的全部可以定义出的集合形成的论域,类似地,$L[U]$则表示使用$\mathfrak D_U$一层层套娃得到的论域。而且对于$L[U]$也有类似的定理(详细可见219页,或书200页)
212+
211213
### 理解
212214
首先,我们注意到一个基本事实:$\beta$一定是一个极限序数,这是基于$X$中的一个事实:若有序数$\alpha\in X$,则$\forall n<\omega(\alpha+n\in X)$,这是任何子模型$X$都应该满足的。那么,如果$\beta$是一个后继序数,那么$X$中的序数数目肯定也只是后继序数个了,但是这显然是不可能的。<br><br>
213-
接下来就是关于这个定理本质的理解了,看书之后我们会看到这个定理最主要的两个应用——在证明$\mathrm{ZF} + (V=L)\vdash\mathrm{GCH}$和$\mathrm{ZF} + (V = L) \vdash "存在一个钻石序列"$中最后时刻的决定性压缩——将$\omega_1$压缩到一个可数序数$\alpha$。分析这两个证明过程,这里面最关键的两步分别是**构造可数同质子模型$M$** 以及 **将$M$映射(压缩)到可数层$L_\beta$**,接下来我们分别来分析一下这两个关键步骤。<br><br>
215+
接下来就是关于这个定理本质的理解了,看书之后我们会看到这个定理最主要的两个应用——在证明$\mathrm{ZF} + (V=L)\vdash\mathrm{GCH}$和$\mathrm{ZF} + (V = L) \vdash 存在一个钻石序列$中最后时刻的决定性压缩——将$\omega_1$压缩到一个可数序数$\alpha$。分析这两个证明过程,这里面最关键的两步分别是**构造可数同质子模型$M$** 以及 **将$M$映射(压缩)到可数层$L_\beta$**,接下来我们分别来分析一下这两个关键步骤。<br><br>
214216
#### 构造可数子模型$M$
215217
首先,为什么可以这样构造,这个很简单,使用斯科伦函数构造斯科伦闭包(一定存在,这个意思是用给定的可数个集合一步步套[可定义集合](../集合论第二卷概念辨析/#mathfrak-d),最终套出来的模型)。其次,这个模型不仅仅构造出来就可以,它还满足一些基本的性质,而这些性质对我们后面的映射至关重要。最主要的,这样构造出来的模型一定是可数的大小,从而必定不含有不可数个的序数,从而$M\cap\omega_1=\alpha<\omega_1$(自然,这个$\alpha$是一个极限序数,原因上面说过了),也就是说如果进行映射(压缩),$\omega_1$下面缺少了很多的序数,其必定塌缩下来到可数的地位。而且由于可数,最终凝聚化映射所映射到的也一定是一个可数层的$L_\beta$。
216218
#### $M$压缩到可数层

Chirpy/_posts/2025-09-09-集合论第二卷概念辨析.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,21 @@ $$
140140
$$
141141
142142
可定义子集与幂集是不同的,比如对于$\mathfrak D(\mathbb N),\mathfrak P(\mathbb N)$,两者肯定不同(即使加上选择公理),因为前者只有可数个,而后者则不可数。原因在于表达式的数量是可数的,所以我们只能定义极少的一部分子集来。
143+
#### 推广
144+
对此符号和可定义子集概念,书上在214页(书195页)对概念进行了推广,将可定义的概念推广到**相对可定义** ,允许在定义集合时使用一个一元谓词$U$,极大地扩展了定义的灵活性,对此有如下符号和定义:<br><br>
145+
设$U$是一个一元谓词(要注意**本质上$U$可以是一个类** ,而$U\cap M$一定是集合),设$M$是一个非空传递集合,$A \subseteq M$称$A$是$M$的在语言$\mathcal{L}_{\in ,U}$下的可定义子集,简称为相对于$U$可定义子集,当且仅当
146+
147+
$$
148+
\left( \begin{array}{l}{\exists n\in \omega \exists a\in [M]^{n}\exists \phi (x_{0},\dots ,x_{n - 1},x_{n})\in \mathcal{L}_{\in ,U}\not\in\mathcal{L}_{\in ,U}\not\in\mathcal{L}_{\in ,U}\not\in\mathcal{L}_{\in ,U}\not\in\mathcal{L}_{\in ,U}\not\in\mathcal{L}_{\in ,U}\not\in\mathcal{L}_{\in ,U}\not\in\mathcal{L}_{\in ,U}\not\in\mathbb{Z}\not\in\mathcal{L}_{\in ,U}\not\in\mathcal{L}_{\in ,U}\not\in\mathcal{L}_{\in ,U}\not\in\mathcal{L}_{\in ,U}\not\in\mathcal{L}_{\in ,U}\not\in\mathcal{L}_{\in ,U}\not\in\mathcal{L}_{\in ,U}\right).} \end{array}
149+
$$
150+
151+
并引入符号
152+
153+
$$
154+
\mathfrak D_U(M)=\{A\subseteq M\mid A是M的相对于U可定义的子集\}
155+
$$
156+
157+
而且如果$U$是一个集合,引理1.15所述的各项[性质](#mathfrak-d)也都予以保留
143158
### $\mathcal L_{\kappa ,\gamma}$
144159
页数:209页(书190页)<br>
145160
语言$\mathcal L_{\kappa ,\gamma}$定义如下:<br>
@@ -151,4 +166,5 @@ $$
151166
(5)它的每一个表达式都由上述符号递归地形成
152167
## 一些映射符号
153168
### $\operatorname{cl}$
169+
页数:156页(书137页)<br>
154170
$\operatorname{cl}(X)$指对集合$X$的哥德尔集合运算下的闭包,$\operatorname{cl}_J(X)$则是指简朴集合运算下的闭包。
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
---
2+
title: 使用ZeroTier进行内网穿透
3+
author: me
4+
date: 2025-11-08 13:05:00 +0800
5+
description: 使用ZeroTier搭建自己使用的网络服务
6+
categories: [计算机,网络]
7+
tags: [计算机]
8+
---
9+
## 起因
10+
前段时间购买了一个x86的工控主机,然后给它安装了Ubuntu系统,考虑到它耗电量低,计划用它部署一些自己很常用的网络服务,或者其他什么的(多使用docker),开始昨天搞的时候发现自己家没有任何公网ip,包括Ipv4和Ipv6都没有公网Ip,所以只能寄希望于内网穿透,内网穿透我还是用过不少了,不过这里我选择的是[ZeroTier](https://my.zerotier.com/)做内网穿透软件,因为它是使用的P2P模式,两个设备是直接相互连接的,不经过第三方服务器,所有设备也都处于同一个虚拟局域网下,和其他内网穿透软件相同。下面是AI总结的它和其他软件的区别
11+
12+
| 特性/软件 | ZeroTier | 传统VPN (OpenVPN, WireGuard Server) | 反向代理/隧道 (frp, ngrok) | 端口转发 (Port Forwarding) |
13+
|:-----------|:----------------------------|:----------------------------------|:--------------------------|:------------------------|
14+
| **网络模型** | 虚拟局域网 (Layer 2 Mesh VPN) | 客户端-服务器 | 客户端-中继服务器-公网访问者 | 路由器-内网设备 |
15+
| **穿透层级** | Layer 2 (以太网层) | Layer 3 (IP层) | 应用层/传输层 (HTTP, TCP, UDP) | 传输层 (TCP, UDP) |
16+
| **连接方式** | P2P 直连为主,无法直连时中继 | 客户端连接到服务器中转 | 客户端连接到中继服务器,公网用户访问中继 | 公网用户访问路由器,路由器转发到内网设备 |
17+
| **访问范围** | 加入网络的**所有设备**可相互访问 | 访问**VPN服务器所在内网** | 暴露**内网特定服务/端口**到公网 | 暴露**内网特定设备特定端口**到公网 |
18+
| **公网IP需求** | **不需要**(双方都不需要公网IP,依赖NAT穿透) | VPN服务器需要公网IP(或端口转发到服务器) | 中继服务器需要公网IP | 路由器需要公网IP(或配合DDNS) |
19+
| **易用性** | 高,客户端安装即用,Web管理 | 中等,服务器搭建配置相对复杂 | 中等,需要搭建中继服务器或使用SaaS服务 | 中等,需要登录路由器进行配置,可能涉及DDNS |
20+
| **安全性** | 端到端加密,内部网络隔离 | 端到端加密,依赖服务器配置,所有流量经服务器 | 隧道加密,但数据流经第三方中继服务 | 无额外加密,直接暴露服务,安全性最低 |
21+
| **适用场景** | 组建虚拟团队网络,远程访问多台设备,共享文件,联机游戏 | 远程访问公司内网,科学上网,保护隐私 | 发布内网Web服务,远程调试SSH,发布游戏服务器 | 家庭影音服务器,远程摄像头访问,NAS访问 |
22+
23+
而且考虑到我需要在我的安卓手机、Windows电脑、Ubuntu工控机上都要安装,考虑平台兼容性和安装便捷性,我最终选择的ZeroTier。下面我们看看怎么在所有设备上安装它。
24+
## 安装
25+
在安装之前,我们首先需要去[官网](https://my.zerotier.com/)上注册一个账户,在注册时官网就会教你先配置两个设备在网络中,后面所有新添加的设备都需要去官网上同意加入,然后使用官网新添加的网络ID,在电脑上连接进入网络,官网确认之后就完成添加了。所有设备进入网络都需要官网确认,所以下面的教程我就不会再提及这一部分了。**(这里的网络ID后面还看得到,也不是非得记住,为了演示方便,下面我假设这个ID是`1234567890abcdef`**
26+
### Ubuntu安装
27+
首先给我的工控机安装,安装很简单,直接`apt`安装就好了
28+
```shell
29+
sudo apt update
30+
sudo apt install zerotier-one
31+
```
32+
这里我最开始看的教程让我先`curl`获取一个什么脚本,然后运行脚本,结果我安装之后安装目录就错了,`zerotier-one``zerotier-cli`也没添加到`PATH`中去,`zerotier-one.service`也找不到,完全用不了,所以最后我还是先删除了最初下载的全部文件,然后重新下载的,所以我也建议直接使用`apt`安装。<br><br>
33+
安装之后,使用如下命令启动ZeroTier
34+
```shell
35+
sudo systemctl start zerotier-one
36+
```
37+
然后如下命令配置其开机自启动
38+
```shell
39+
sudo systemctl enable zerotier-one
40+
```
41+
接下来使用如下命令加入网络
42+
```shell
43+
sudo zerotier-one join 1234567890abcdef
44+
```
45+
如下命令可以确认连接状态
46+
```shell
47+
sudo zerotier-cli status
48+
```
49+
### Windows安装
50+
然后在我的电脑上安装,对于Windows安装,需要去[官网](https://www.zerotier.com/download/)下载安装包,然后双击安装就好了,操作和Ubuntu类似,直接命令行操作就好了,不过开机自启会在系统右下方的托盘中(如图)
51+
![Windows开机自启.png](/commons/posts/ZeroTile%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F/Windows%E5%BC%80%E6%9C%BA%E8%87%AA%E5%90%AF.png)
52+
然后启动一个**以管理员身份运行** 的命令行窗口加入网络即可
53+
### 手机安装
54+
手机上安装找到ZeroTile的应用程序,下载安装即可(我手机自带的应用商店还找不到ZeroTile,是使用Google Play找到下载的)然后点击添加网络,输入网络ID即可。不过这时在官网上你可能还看不到手机,我是稍微等了一会官网上才跳出来的,然后去给手机授权即可。
66.1 KB
Loading

0 commit comments

Comments
 (0)