Compare commits
11 Commits
7fc64628f8
...
e1ec50bd96
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e1ec50bd96 | ||
|
|
afee9a94f9 | ||
|
|
596f8c7cdc | ||
|
|
5cc0019df8 | ||
|
|
27a44511d0 | ||
|
|
f1e0d142f1 | ||
|
|
3b1eb3dbb7 | ||
|
|
941ee25c6f | ||
|
|
416b281047 | ||
|
|
53aa361ac0 | ||
| fbd0cea2f2 |
@@ -2,6 +2,7 @@ version: "3.8"
|
||||
|
||||
services:
|
||||
mineru_server:
|
||||
restart: unless-stopped
|
||||
image: quincyqiang/mineru:0.3-models
|
||||
container_name: mineru_server
|
||||
ports:
|
||||
|
||||
20
tailscale/README.md
Normal file
20
tailscale/README.md
Normal file
@@ -0,0 +1,20 @@
|
||||
## 排除规则
|
||||
|
||||
```shell
|
||||
127.0.0.1
|
||||
::1
|
||||
localhost
|
||||
100.64.0.0/10
|
||||
192.168.8.0/24
|
||||
192.168.9.0/24
|
||||
192.168.100.0/24
|
||||
192.168.101.0/24
|
||||
fd7a:115c:a1e0::/48
|
||||
*.hs.net
|
||||
```
|
||||
|
||||
## 使用docker-compose.yml 文件进行反向代理
|
||||
|
||||
推荐你使用 host 模式,因为这种模式可以让 tailscaled 容器直接访问主机的网络接口,提供更好的网络透明性和直接性,从而提高 NAT 穿透的成功率。这种模式下,Tailscale 可以更容易地使用直接的 P2P 连接,而不是依赖于中继服务器(DERP),因此对性能和延迟都会更有利。
|
||||
|
||||
host 模式特别适合 Tailscale 这样的 VPN 解决方案,需要尽可能无缝地访问网络资源。
|
||||
@@ -20,15 +20,24 @@ services:
|
||||
- TS_STATE_DIR=/var/lib/tailscale # 状态保存路径
|
||||
- TS_USERSPACE=false # 使用内核的 TUN 设备
|
||||
- TS_EXTRA_ARGS=--login-server=https://headscale.jmsu.top # 指定 Headscale 登录服务器
|
||||
command: /bin/sh -c "/usr/local/bin/containerboot && tailscaled && tailscale up --authkey=${TS_AUTHKEY} && tailscale funnel 48080"
|
||||
- TS_HOSTNAME=pys # 指定主机名
|
||||
- TS_ACCEPT_DNS=false # 默认不接受来自管理员控制台的 DNS 配置
|
||||
- TS_AUTH_ONCE=false # 默认每次启动强制重新登录
|
||||
- TS_DEST_IP= # 未指定目标 IP,保持默认
|
||||
- TS_KUBE_SECRET=tailscale # Kubernetes 中状态存储的密钥名称,默认值
|
||||
- TS_OUTBOUND_HTTP_PROXY_LISTEN= # 未设置 HTTP 代理监听地址,保持默认
|
||||
- TS_ROUTES= # 未声明子网路由,保持默认
|
||||
- TS_SOCKET=/var/run/tailscale/tailscaled.sock # Unix 套接字路径,默认值
|
||||
- TS_SOCKS5_SERVER= # 未设置 SOCKS5 代理地址,保持默认
|
||||
command: /bin/sh -c "/usr/local/bin/containerboot && tailscaled && tailscale up --authkey=${TS_AUTHKEY} && tailscale funnel 8980"
|
||||
|
||||
webapp:
|
||||
container_name: webapp
|
||||
image: python:3.9-slim # 使用 Python 镜像
|
||||
ports:
|
||||
- "48080:48080" # 本地端口 48080 映射到容器内的 48080 端口
|
||||
- "8980:8980" # 本地端口 8980 映射到容器内的 8980 端口
|
||||
restart: always
|
||||
command: python -m http.server 48080 # 启动 Python HTTP 服务器
|
||||
command: python -m http.server 8980 # 启动 Python HTTP 服务器
|
||||
|
||||
volumes:
|
||||
shared-tailscale:
|
||||
|
||||
52
tailscale/docker-compose_derper.yml
Normal file
52
tailscale/docker-compose_derper.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
version: '3.6'
|
||||
|
||||
services:
|
||||
tailscaled:
|
||||
container_name: tailscaled
|
||||
image: tailscale/tailscale:v1.76.1
|
||||
privileged: true # 需要权限访问 TUN 设备
|
||||
restart: unless-stopped
|
||||
cap_add:
|
||||
- net_admin
|
||||
- sys_module
|
||||
devices:
|
||||
- /dev/net/tun:/dev/net/tun
|
||||
volumes:
|
||||
- ./lib/:/var/lib/tailscale # 使状态路径挂载为 tailscaled 使用的状态目录
|
||||
- /dev/net/tun:/dev/net/tun # 访问 TUN 设备
|
||||
- /var/run/dbus:/var/run/dbus
|
||||
- /var/run/tailscale:/var/run/tailscale
|
||||
- /tmp:/tmp
|
||||
environment:
|
||||
- TS_AUTHKEY=21c768657ba8aa6c0436eba69d28fa8d626da767a44f055d # 使用认证密钥
|
||||
- TS_STATE_DIR=/var/lib/tailscale # 状态保存路径
|
||||
- TS_USERSPACE=false # 使用内核的 TUN 设备
|
||||
- "TS_EXTRA_ARGS=--login-server=https://headscale.jmsu.top --reset" # 指定 Headscale 登录服务器
|
||||
|
||||
derper:
|
||||
image: 1itt1eb0y/derper:2024-10-31-08-58-23
|
||||
container_name: derper
|
||||
volumes:
|
||||
- /vol1/1000/docker/derper/ssl/fullchain.pem:/app/certs/derper.jmsu.top.crt # SSL 证书映射
|
||||
- /vol1/1000/docker/derper/ssl/privkey.pem:/app/certs/derper.jmsu.top.key # 私钥映射
|
||||
- /var/run/tailscale:/var/run/tailscale
|
||||
- /tmp:/tmp
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- tailscaled # 等待 tailscaled 启动后再启动
|
||||
ports:
|
||||
- "3478:3478/udp" # STUN 端口
|
||||
- "3477:3477/tcp" # DERP 服务端口,或更改为 443
|
||||
entrypoint: [""]
|
||||
command:
|
||||
- /bin/bash
|
||||
- -c
|
||||
- |
|
||||
/app/derper \
|
||||
-hostname derper.jmsu.top \
|
||||
-certdir /app/certs \
|
||||
-certmode manual \
|
||||
-a :3477 \
|
||||
-stun-port 3478 \
|
||||
-http-port -1 \
|
||||
-verify-clients
|
||||
51
tailscale/docker-compose_headscale.yml
Normal file
51
tailscale/docker-compose_headscale.yml
Normal file
@@ -0,0 +1,51 @@
|
||||
version: '3.5'
|
||||
|
||||
services:
|
||||
tailscaled:
|
||||
container_name: tailscaled
|
||||
image: tailscale/tailscale:unstable-v1.77.41
|
||||
network_mode: host # 直接使用主机网络
|
||||
privileged: true # 需要权限访问 TUN 设备
|
||||
restart: always
|
||||
cap_add:
|
||||
- net_admin
|
||||
- sys_module
|
||||
devices:
|
||||
- /dev/net/tun:/dev/net/tun
|
||||
volumes:
|
||||
- ./lib/:/var/lib/tailscale # 使状态路径挂载为 tailscaled 使用的状态目录
|
||||
- /dev/net/tun:/dev/net/tun # 访问 TUN 设备
|
||||
- /var/run/dbus:/var/run/dbus
|
||||
- /var/run/tailscale:/var/run/tailscale
|
||||
- /tmp:/tmp
|
||||
environment:
|
||||
- TS_AUTHKEY=21c768657ba8aa6c0436eba69d28fa8d626da767a44f055d # 使用认证密钥
|
||||
- TS_STATE_DIR=/var/lib/tailscale # 状态保存路径
|
||||
- TS_USERSPACE=false # 使用内核的 TUN 设备
|
||||
- TS_EXTRA_ARGS=--login-server=https://headscale.jmsu.top # 指定 Headscale 登录服务器
|
||||
|
||||
derper:
|
||||
image: 1itt1eb0y/derper:2024-10-31-08-58-23
|
||||
container_name: derper
|
||||
network_mode: host
|
||||
volumes:
|
||||
- /etc/nginx/ssl/wildcard.jmsu.top/fullchain.pem:/app/certs/headscale.jmsu.top.crt # SSL 证书映射
|
||||
- /etc/nginx/ssl/wildcard.jmsu.top/private.key:/app/certs/headscale.jmsu.top.key # 私钥映射
|
||||
- /var/run/tailscale:/var/run/tailscale
|
||||
- /tmp:/tmp
|
||||
restart: always
|
||||
depends_on:
|
||||
- tailscaled # 等待 tailscaled 启动后再启动
|
||||
entrypoint: [""]
|
||||
command:
|
||||
- /bin/bash
|
||||
- -c
|
||||
- |
|
||||
/app/derper \
|
||||
-hostname headscale.jmsu.top \
|
||||
-certdir /app/certs \
|
||||
-certmode manual \
|
||||
-a :3477 \
|
||||
-stun-port 3478 \
|
||||
-http-port -1 \
|
||||
-verify-clients
|
||||
53
tailscale/docker-compose_inside_network.yml
Normal file
53
tailscale/docker-compose_inside_network.yml
Normal file
@@ -0,0 +1,53 @@
|
||||
version: '3.5'
|
||||
|
||||
services:
|
||||
tailscaled:
|
||||
container_name: tailscaled
|
||||
image: tailscale/tailscale:unstable-v1.77.41
|
||||
privileged: true # 需要权限访问 TUN 设备
|
||||
restart: always
|
||||
cap_add:
|
||||
- net_admin
|
||||
- sys_module
|
||||
devices:
|
||||
- /dev/net/tun:/dev/net/tun
|
||||
volumes:
|
||||
- ./lib/:/var/lib/tailscale # 使状态路径挂载为 tailscaled 使用的状态目录
|
||||
- /dev/net/tun:/dev/net/tun # 访问 TUN 设备
|
||||
- shared-tailscale:/var/run/tailscale # 共享 Tailscale 运行时目录
|
||||
- /var/run/dbus:/var/run/dbus
|
||||
environment:
|
||||
- TS_AUTHKEY=21c768657ba8aa6c0436eba69d28fa8d626da767a44f055d # 使用认证密钥
|
||||
- TS_STATE_DIR=/var/lib/tailscale # 状态保存路径
|
||||
- TS_USERSPACE=false # 使用内核的 TUN 设备
|
||||
- TS_EXTRA_ARGS=--login-server=https://headscale.jmsu.top # 指定 Headscale 登录服务器
|
||||
- TS_HOSTNAME=pysi # 指定主机名
|
||||
- TS_ACCEPT_DNS=false # 默认不接受来自管理员控制台的 DNS 配置
|
||||
- TS_AUTH_ONCE=false # 默认每次启动强制重新登录
|
||||
- TS_DEST_IP= # 未指定目标 IP,保持默认
|
||||
- TS_KUBE_SECRET=tailscale # Kubernetes 中状态存储的密钥名称,默认值
|
||||
- TS_OUTBOUND_HTTP_PROXY_LISTEN= # 未设置 HTTP 代理监听地址,保持默认
|
||||
- TS_ROUTES= # 未声明子网路由,保持默认
|
||||
- TS_SOCKET=/var/run/tailscale/tailscaled.sock # Unix 套接字路径,默认值
|
||||
- TS_SOCKS5_SERVER= # 未设置 SOCKS5 代理地址,保持默认
|
||||
command: /bin/sh -c "/usr/local/bin/containerboot && tailscaled && tailscale up --authkey=${TS_AUTHKEY} && tailscale funnel 8980"
|
||||
networks:
|
||||
- tailscale-net
|
||||
|
||||
webapp:
|
||||
container_name: webapp
|
||||
image: python:3.9-slim # 使用 Python 镜像
|
||||
ports:
|
||||
- "8980:8980" # 本地端口 8980 映射到容器内的 8980 端口
|
||||
restart: always
|
||||
command: python -m http.server 8980 # 启动 Python HTTP 服务器
|
||||
networks:
|
||||
- tailscale-net
|
||||
|
||||
networks:
|
||||
tailscale-net:
|
||||
driver: bridge # 自定义桥接网络
|
||||
|
||||
volumes:
|
||||
shared-tailscale:
|
||||
driver: local
|
||||
Reference in New Issue
Block a user