Process

中间件

这里包含了中间件相关的所有文档。

MiniUPnP工具使用记录

github地址

1
2
3
4
# 安装
brew install miniupnpc
# 验证
upnpc --version
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 基础使用示例

# 查看当前NAT类型:
upnpc -s
# - 输出中若显示`PortMappingEnabled: 1`表示UPnP已启用。

# 添加端口映射(如将内网5000端口映射到公网6000):
upnpc -a 192.168.1.100 5000 6000 TCP
# - `192.168.1.100`为本地设备IP,`TCP`可替换为`UDP`。

# 删除映射规则:
upnpc -d 6000 TCP

# 常见问题与解决
# 路由器兼容性:部分路由器需手动开启UPnP功能(如OpenWrt需安装miniupnpd软件包)5。
# 端口冲突:映射前通过upnpc -l检查端口占用情况。

# 扩展应用场景
# BitTorrent优化:结合qBittorrent等客户端,提升下载速度。
# 远程开发调试:映射SSH或Web服务端口至公网,实现远程访问。
# 游戏联机支持:解决NAT类型限制,改善联机体验(如Minecraft服务器搭建)。
# 若需高级功能(如持久化配置),可参考 [官方文档](https://github.com/miniupnp/miniupnp) 进一步配置。

cpolar使用记录

官网

安装文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 安装
# mac
brew tap probezy/core && brew install cpolar

# linux
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash

# Windows
# 在官网下载下载适用于Windows平台的zip压缩包,解压后得到cpolar安装包,然后双击安装包一路默认安装即可。https://www.cpolar.com/download

# 验证
cpolar version

# 认证
cpolar authtoken xxxxxxx
# 简单穿透测试
cpolar http 8080
# 向系统添加服务
sudo systemctl enable cpolar
# 启动cpolar服务
sudo systemctl start cpolar
# 查看服务状态
sudo systemctl status cpolar
# 登录后台,查看隧道在线状态
# https://dashboard.cpolar.com/status

# 注: cpolar 卸载方法
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash -s -- --remove
# 如果第一次安装,会默认配置一个简单的样例配置文件,创建了两个样例隧道,一个web,一个ssh
# cpolar配置文件路径(linux): /usr/local/etc/cpolar/cpolar.yml
# cpolar配置文件路径(mac): /Users/fa/.cpolar/cpolar.yml

# 安装服务
sudo cpolar service install
# 启动服务
sudo cpolar service start
# cpolar service <xxx>:Valid actions: ["start" "stop" "restart" "install" "uninstall"]
# 安装完成
# 在浏览器上访问本地9200端口【 http://127.0.0.1:9200 】,使用cpolar邮箱账号登录cpolar web UI管理界面,即可开始使用cpolar。

将管理后台的端口映射到公网

1
2
3
4
5
6
7
8
# 修改配置(将website的端口由8080改为9200)
/usr/local/etc/cpolar/cpolar.yml
# 修改后重启服务
sudo cpolar service restart
# 登录后台,查看隧道地址
# https://dashboard.cpolar.com/status

# 这样就能远程管理隧道了

nip.io使用记录

动态DNS神器nip.io使用指南:快速实现域名与IP的动态映射

本文基于开源项目 v1.2.1版本撰写,适用于开发测试、CI/CD等场景


一、项目简介
nip.io 是由Exentrique Solutions开发的开源动态DNS服务,通过智能解析机制实现任意IP地址与域名的动态映射。该服务无需注册或配置DNS记录,支持以下核心功能:

  • 🌐 动态域名解析:将<任意IP>.nip.io自动解析对应IP
  • 🚀 零配置使用:无需安装客户端或配置DNS服务器
  • 🔧 通配符支持:支持多级子域名动态解析(如app.10.0.0.1.nip.io
  • 🐳 容器化部署:提供Docker镜像快速搭建私有服务

二、快速入门

场景1:使用公共DNS服务
直接在浏览器或应用中访问以下格式域名:

1
2
3
4
5
6
7
IPv4格式
http://your-app.192-168-1-100.nip.io ➔ 解析到192.168.1.100
http://test.192.168.1.100.nip.io ➔ 解析到192.168.1.100

IPv6格式(需使用破折号)
http://your-app.2001-0db8-85a3-0000-0000-8a2e-0370-7334.nip.io

场景2:自建私有服务

1
2
3
4
5
6
克隆项目
git clone https://github.com/exentriquesolutions/nip.io.git

使用Docker部署
bash build_and_run_docker.sh


三、进阶配置

  1. 环境变量配置
    通过环境变量覆盖默认配置:

environment-variables-configuration-overrides


四、典型应用场景

  1. 本地开发调试
1
2
3
4
5
6
# 运行本地服务
python -m http.server 8080

# 通过域名访问
http://dev.127-0-0-1.nip.io:8080

  1. Kubernetes服务暴露
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
apiVersion: v1
kind: Service
metadata:
name: demo-service
spec:
type: ClusterIP
externalIPs:
- 192.168.1.100
ports:
- port: 80
---

# 通过域名访问
http://k8s.192.168.1.100.nip.io


项目地址:GitHub - exentriquesolutions/nip.io
更多技术细节可查阅项目Wiki文档

headscale使用记录

GitHub地址
参考文章

安装

sealos一键部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# 创建默认用户
headscale user create default
# 查看用户列表
headscale user list

# 创建 API Key:
headscale apikey create
# 将 Headscale 公网域名和 API Key 填入 Headscale-Admin 的设置页面(https://headscale-xxx.sealosbja.site/admin/),同时取消勾选 Legacy API,然后点击「Save」:
# 接入成功后,点击左边侧栏的「Users」,然后点击「Create」开始创建用户:

# 安装客户端
## Linux
curl -fsSL https://tailscale.com/install.sh | sh

# Tailscale 接入 Headscale:
# 将 <HEADSCALE_PUB_ENDPOINT> 换成上文提到的 Sealos 中的 Headscale 公网域名
tailscale up --login-server=https://<HEADSCALE_PUB_ENDPOINT> --accept-routes=true --accept-dns=false
# 会打印出注册key(mkey:xxx), 需要到Headscale-Admin的[Machines]页面[Add Device][Register Machine Key],选择上面创建的用户并将注册key填入, 点击[Register]后, 客户端控制台会打印Success.

# 回到 Tailscale 客户端所在的 Linux 主机,可以看到 Tailscale 会自动创建相关的路由表和 iptables 规则。路由表可通过以下命令查看:
ip route show table 52
# 查看 iptables 规则:
iptables -S
iptables -S -t nat

## macOS
# 安装完 GUI 版应用后还需要做一些骚操作,才能让 Tailscale 使用 Headscale 作为控制服务器。当然,Headscale 已经给我们提供了详细的操作步骤,你只需要在浏览器中打开 URL:https://<HEADSCALE_PUB_ENDPOINT>/apple,便会出现如下的界面:

# 长按「option」键,然后点击顶部菜单栏的 Tailscale 图标,然后将鼠标指针悬停在「Debug」菜单上。
# 在「Custom Login Server」下方选择「Add Account…」。
# 在打开的弹窗中填入 Headscale 的公网域名,然后点击「Add Account」。
# 然后立马就会跳转到浏览器并打开一个页面
# 接下来与之前 Linux 客户端相同,回到 Headscale 所在的机器执行浏览器中的命令即可,注册成功:

# 回到 Headscale 所在主机,查看注册的节点:
headscale nodes list

# 回到 macOS,测试是否能 ping 通对端节点:
ping -c 2 100.64.0.1
# 在[sitting]中安装[CLl integration]后, 也可以使用 Tailscale CLI 来测试:
tailscale ping 100.64.0.1

通过 Pre-Authkeys 接入

1
2
3
4
5
6
7
8
9
10
11
12

# 前面的接入方法都需要服务端同意,步骤比较烦琐,其实还有更简单的方法,可以直接接入,不需要服务端同意。
# 首先在服务端生成 pre-authkey 的 token,有效期可以设置为 24 小时:
headscale preauthkeys create -e 24h --user default
# 查看已经生成的 key:
headscale --user default preauthkeys list
# 当然你也可以在 Headscale-Admin 中生成。点击客户端想加入的 User:
# 在弹出的界面中点击「PreAuth Keys」右侧的 Create,设置一个过期时间(比如 100 年~),如果想重复利用这个 Key,可以勾选 Reusable,最后点击 ✅:
# 创建成功后,点击红框区域便可复制该 PreAuth Key:
# 现在新节点就可以无需服务端同意直接接入了:
tailscale up --login-server=http://<HEADSCALE_PUB_ENDPOINT>:8080 --accept-routes=true --accept-dns=false --authkey $KEY

打通局域网

参考文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 配置方法很简单,首先需要设置 IPv4 与 IPv6 路由转发:
echo 'net.ipv4.ip_forward = 1' | tee /etc/sysctl.d/ipforwarding.conf
echo 'net.ipv6.conf.all.forwarding = 1' | tee -a /etc/sysctl.d/ipforwarding.conf
sysctl -p /etc/sysctl.d/ipforwarding.conf

# 客户端修改注册节点的命令,在原来命令的基础上加上参数 --advertise-routes=192.168.100.0/24,告诉 Headscale 服务器“我这个节点可以转发这些地址的路由”。
tailscale up --login-server=http://<HEADSCALE_PUB_ENDPOINT>:8080 --accept-routes=true --accept-dns=false --advertise-routes=192.168.100.0/24 --reset

# 在 Headscale 端查看路由,可以看到相关路由是关闭的。
headscale nodes list|grep openwrt
headscale routes list -i 6
# 开启路由:
headscale routes enable -i 6 -r "192.168.100.0/24"
# 如果有多条路由需要用 , 隔开:
headscale routes enable -i 6 -r "192.168.100.0/24,xxxx"
# 也可以通过参数 -a 开启所有路由:
headscale routes enable -i 6 -a
# 其他节点查看路由结果:
ip route show table 52|grep "192.168.100.0/24"
# 其他节点启动时需要增加 --accept-routes=true 选项来声明 “我接受外部其他节点发布的路由”。

# 现在你在任何一个 Tailscale 客户端所在的节点都可以 ping 通家庭内网的机器了,你在公司或者星巴克也可以像在家里一样用同样的 IP 随意访问家中的任何一个设备,就问你香不香?

Redis

headscale使用记录

参考文章

安装

docker版

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 安装
cd ./headscale

docker run \
--name headscale \
--detach \
--volume $(pwd)/config:/etc/headscale/ \
--publish 127.0.0.1:8080:8080 \
--publish 127.0.0.1:9090:9090 \
headscale/headscale:<VERSION> \
serve

# 或者使用docker-compose
docker-compose up -d

# 验证
curl http://127.0.0.1:9999/metrics

# 创建apiKey
docker exec -it headscale headscale apikey create
# 将 Headscale 公网域名和 API Key 填入 Headscale-Admin 的设置页面(http://localhost:880/web/settings.html),同时取消勾选 Legacy API,然后点击「Save」:
# 接入成功后,点击左边侧栏的「Users」,然后点击「Create」开始创建用户:

# 安装客户端
## Linux
curl -fsSL https://tailscale.com/install.sh | sh

# Tailscale 接入 Headscale:
# 将 <HEADSCALE_PUB_ENDPOINT> 换成上文提到的 Sealos 中的 Headscale 公网域名
# tailscale up --accept-dns=false --accept-routes --login-server=https://3gmjh9nm-880.asse.devtunnels.ms --hostname=fa --accept-risk=true
tailscale up --accept-dns=false --accept-routes --login-server=http://localhost:880 --hostname=fa
# 会打印出注册key(mkey:xxx), 需要到Headscale-Admin的[Machines]页面[Add Device][Register Machine Key],选择上面创建的用户并将注册key填入, 点击[Register]后, 客户端控制台会打印Success.
# PS: 如果提示字符不够就用空格替代补足(这应该是个bug)

# 回到 Tailscale 客户端所在的 Linux 主机,可以看到 Tailscale 会自动创建相关的路由表和 iptables 规则。路由表可通过以下命令查看:
ip route show table 52
# 查看 iptables 规则:
iptables -S
iptables -S -t nat

## macOS
# 安装完 GUI 版应用后还需要做一些骚操作,才能让 Tailscale 使用 Headscale 作为控制服务器。当然,Headscale 已经给我们提供了详细的操作步骤,你只需要在浏览器中打开 URL:https://<HEADSCALE_PUB_ENDPOINT>/apple,便会出现如下的界面:

# 长按「option」键,然后点击顶部菜单栏的 Tailscale 图标,然后将鼠标指针悬停在「Debug」菜单上。
# 在「Custom Login Server」下方选择「Add Account…」。
# 在打开的弹窗中填入 Headscale 的公网域名,然后点击「Add Account」。
# 然后立马就会跳转到浏览器并打开一个页面
# 接下来与之前 Linux 客户端相同,回到 Headscale 所在的机器执行浏览器中的命令即可,注册成功:

# 回到 Headscale 所在主机,查看注册的节点:
headscale nodes list

# 回到 macOS,测试是否能 ping 通对端节点:
ping -c 2 100.64.0.1
# 在[sitting]中安装[CLl integration]后, 也可以使用 Tailscale CLI 来测试:
tailscale ping 100.64.0.1

通过 Pre-Authkeys 接入

1
2
3
4
5
6
7
8
9
10
11
12

# 前面的接入方法都需要服务端同意,步骤比较烦琐,其实还有更简单的方法,可以直接接入,不需要服务端同意。
# 首先在服务端生成 pre-authkey 的 token,有效期可以设置为 24 小时:
headscale preauthkeys create -e 24h --user default
# 查看已经生成的 key:
headscale --user default preauthkeys list
# 当然你也可以在 Headscale-Admin 中生成。点击客户端想加入的 User:
# 在弹出的界面中点击「PreAuth Keys」右侧的 Create,设置一个过期时间(比如 100 年~),如果想重复利用这个 Key,可以勾选 Reusable,最后点击 ✅:
# 创建成功后,点击红框区域便可复制该 PreAuth Key:
# 现在新节点就可以无需服务端同意直接接入了:
tailscale up --login-server=http://<HEADSCALE_PUB_ENDPOINT>:8080 --accept-routes=true --accept-dns=false --authkey $KEY

打通局域网

参考文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 配置方法很简单,首先需要设置 IPv4 与 IPv6 路由转发:
echo 'net.ipv4.ip_forward = 1' | tee /etc/sysctl.d/ipforwarding.conf
echo 'net.ipv6.conf.all.forwarding = 1' | tee -a /etc/sysctl.d/ipforwarding.conf
sysctl -p /etc/sysctl.d/ipforwarding.conf

# 客户端修改注册节点的命令,在原来命令的基础上加上参数 --advertise-routes=192.168.100.0/24,告诉 Headscale 服务器“我这个节点可以转发这些地址的路由”。
tailscale up --login-server=http://<HEADSCALE_PUB_ENDPOINT>:8080 --accept-routes=true --accept-dns=false --advertise-routes=192.168.100.0/24 --reset

# 在 Headscale 端查看路由,可以看到相关路由是关闭的。
headscale nodes list|grep openwrt
headscale routes list -i 6
# 开启路由:
headscale routes enable -i 6 -r "192.168.100.0/24"
# 如果有多条路由需要用 , 隔开:
headscale routes enable -i 6 -r "192.168.100.0/24,xxxx"
# 也可以通过参数 -a 开启所有路由:
headscale routes enable -i 6 -a
# 其他节点查看路由结果:
ip route show table 52|grep "192.168.100.0/24"
# 其他节点启动时需要增加 --accept-routes=true 选项来声明 “我接受外部其他节点发布的路由”。

# 现在你在任何一个 Tailscale 客户端所在的节点都可以 ping 通家庭内网的机器了,你在公司或者星巴克也可以像在家里一样用同样的 IP 随意访问家中的任何一个设备,就问你香不香?

素材库

这里包含了素材库相关的所有文档。

0%