Metadata-Version: 2.4
Name: tunnelgo-client
Version: 2.20.0
Summary: TunnelGo 内网穿透客户端 — 通过 pip 一键安装，支持 double-fork 守护进程模式
Author: TunnelGo Contributors
License: MIT
Project-URL: Homepage, https://github.com/ctz168/tunnelgo
Project-URL: Repository, https://github.com/ctz168/tunnelgo
Project-URL: Issues, https://github.com/ctz168/tunnelgo/issues
Keywords: tunnel,ngrok,nat-traversal,reverse-proxy,daemon
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Internet :: Proxy Servers
Classifier: Topic :: System :: Networking
Requires-Python: >=3.8
Description-Content-Type: text/markdown

# TunnelGo Client (Python)

TunnelGo 内网穿透客户端的 Python 封装包。通过 `pip` 一键安装，自动下载对应平台的 Go 二进制文件，支持 double-fork 守护进程模式。

## 安装

```bash
pip install tunnelgo-client
```

安装后会自动下载对应平台（Linux/macOS/Windows，amd64/arm64）的 Go 二进制文件到 `~/.tunnelgo/bin/`。

## 使用

```bash
# 基本模式
tunnelgo-client --key YOUR_TOKEN --port 8080

# 子域名模式（推荐）
tunnelgo-client -k YOUR_TOKEN -p 8080 --subdomain myapp

# 守护进程模式（Python 原生 double-fork，脱离终端）
tunnelgo-client -k YOUR_TOKEN -p 8080 --daemon

# 停止守护进程
tunnelgo-client --stop

# 子域名 + TCP 转发
tunnelgo-client -k YOUR_TOKEN -p 8080 --subdomain myapp --tcp-ports 22,3306

# 禁用 P2P 直连
tunnelgo-client -k YOUR_TOKEN -p 8080 --no-p2p

# 强制更新客户端二进制
tunnelgo-client --update
```

## Double-Fork 守护进程模式

`--daemon` 参数启动 Python 原生的 double-fork 守护进程模式：

1. 第一次 fork → 创建中间子进程
2. 中间子进程调用 `setsid()` 成为新会话组长
3. 第二次 fork → 创建孙进程（实际守护进程）
4. 中间子进程退出
5. 孙进程被 init (PID 1) 收养，完全脱离终端

守护进程的日志输出到 `/tmp/tunnelgo-client.log`（Windows 为 `%TEMP%\tunnelgo-client.log`）。

## 参数

| 参数 | 说明 | 默认值 |
|------|------|--------|
| `-k, --key` | 认证令牌（必填） | - |
| `-p, --port` | 本地服务端口 | 8080 |
| `-s, --server` | 服务器地址 | aicq.online:6639 |
| `--host` | 本地服务地址 | localhost |
| `--p2p-port` | P2P 监听端口 | 与 --port 相同 |
| `--no-p2p` | 禁用 P2P 直连 | false |
| `--tcp-ports` | TCP 转发端口，逗号分隔 | - |
| `--tcp-default` | 设为非TLS同端口默认路由 | false |
| `--http-port` | HTTP 独立端口模式 | false |
| `--subdomain` | 子域名前缀 | - |
| `--daemon` | 以守护进程模式运行 (double-fork) | false |
| `--stop` | 停止守护进程 | false |
| `--update` | 强制更新客户端二进制 | false |

## License

MIT
