0%

安装

二进制

docker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 配置 etcd 使用主机IP 地址
export NODE1=172.17.0.1
# 配置一个 Docker 卷来存储 etcd 数据
docker volume create --name etcd-data
export DATA_DIR=etcd-data
# 配置 REGISTRY
# export REGISTRY=quay.io/coreos/etcd
export REGISTRY=quay.mirrors.ustc.edu.cn/coreos/etcd
# 配置 TAG
# TAG=latest
export TAG=v3.4.16
# 启动
docker run \
-p 2379:2379 \
-p 2380:2380 \
--volume=${DATA_DIR}:/etcd-data \
--name etcd ${REGISTRY}:${TAG} \
/usr/local/bin/etcd \
--data-dir=/etcd-data --name node1 \
--initial-advertise-peer-urls http://${NODE1}:2380 --listen-peer-urls http://0.0.0.0:2380 \
--advertise-client-urls http://${NODE1}:2379 --listen-client-urls http://0.0.0.0:2379 \
--initial-cluster node1=http://${NODE1}:2380

源码

测试

安装

安装 termux ,可以参考 这里

安装 mitmproxy

1
2
3
pkg install libffi openssl python rust
pip install mitmproxy
mitmproxy --version

测试

测试 mitmproxy ,可以参考 这里

基于 Nginx Mirror 模块

配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
vi /etc/nginx/conf.d/default.conf
###
server {
listen 8080;
server_name localhost;
location / {
mirror /mirror;
proxy_pass http://192.168.0.2:30000;
}
location /mirror {
internal;
proxy_pass http://127.0.0.1:8888$request_uri;
}
}
###
nginx -s reload

测试

1
2
3
4
5
6
7
8
# 启动 fiddler 用于抓包,监听端口 8888
# 请求
curl -L -X POST 'http://localhost:8080/swagger-ui.html?param1=value1' \
-H 'Content-Type: application/json' \
-d '{
"param2": "value2"
}'
# 在 fiddler 中,可以看到相关记录
阅读全文 »

路由规则 ip rule

操作系统默认规则

1
2
3
4
ip rule list
0: from all lookup local
32766: from all lookup main
32767: from all lookup default

每列的含义

  • Priority: 路由规则优先级,根据数字从小到大依次进行匹配,从0到32767
  • Selector: 对IP数据包进行匹配的条件,如 from all 表示所有IP数据包
  • Action: 对IP数据包执行的动作,如 lookup local 表示需要查找local路由表进行处理
阅读全文 »

说明

三个工具的用途

mitmproxy:为您提供交互式命令行界面
mitmweb:为您提供基于浏览器的 GUI
mitmdump:为您提供非交互式终端输出

阅读全文 »

配置etcd

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
docker run -d --name etcd \
-p 2379:2379 \
-p 2380:2380 \
--env ALLOW_NONE_AUTHENTICATION=yes \
bitnami/etcd:3.4.16-debian-10-r28

docker run -it --rm \
--env ALLOW_NONE_AUTHENTICATION=yes \
bitnami/etcd:3.4.16-debian-10-r28 \
etcdctl --endpoints http://172.17.0.1:2379 put /key1 value1

docker run -it --rm \
--env ALLOW_NONE_AUTHENTICATION=yes \
bitnami/etcd:3.4.16-debian-10-r28 \
etcdctl --endpoints http://172.17.0.1:2379 get / --prefix
阅读全文 »

安装

二进制

1
2
3
wget https://github.com/coredns/coredns/releases/download/v1.8.4/coredns_1.8.4_linux_amd64.tgz
mkdir coredns_1.8.4_linux_amd64
tar zxvf coredns_1.8.4_linux_amd64.tgz -C coredns_1.8.4_linux_amd64

docker

1
docker pull coredns/coredns:1.8.4

源码

1
2
3
git clone https://github.com/coredns/coredns -b v1.8.4
cd coredns
make
阅读全文 »

概念

DNS是 Domain Name System 的缩写,作用是根据域名查询IP地址

查询方式

递归查询

DNS服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。
如果DNS服务器本地没有存储查询DNS信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。

迭代查询

DNS服务器会向客户机提供其他能够解析查询请求的DNS服务器地址。
当客户机发送查询请求时,DNS服务器并不直接回复查询结果,而是告诉客户机另一台DNS服务器地址。
客户机再向这台DNS服务器提交请求,依次循环直到返回查询的结果为止。

阅读全文 »