diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 64f7917..3621a01 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -33,4 +33,4 @@ jobs: context: . push: true platforms: linux/amd64,linux/arm64,linux/386,linux/arm/v6,linux/arm/v7 - tags: cmliu/cfnat:latest + tags: cynyy0126/cfnat:latest diff --git a/README.md b/README.md index 513c8f6..bb2d08d 100644 --- a/README.md +++ b/README.md @@ -133,6 +133,8 @@ docker run -d \ - 使用`docker-compose.yml`同时启动**多个cfnat容器** ```yml + + version: '3' services: @@ -231,5 +233,40 @@ docker exec 容器ID cat cfnat.log 最大并发请求数: 并发请求最大协程数 (default 100) ``` +## 创建 `docker-compose.yml` +```yml + +version: '3' + +services: + cfnat: + container_name: mycfnat + image: cynyy0126/cfnat:latest + network_mode: host + environment: + - colo=HKG # 筛选数据中心例如 HKG,SJC,LAX.电信/联通 推荐 SJC,LAX.移动/广电 推荐 HKG" + - delay=100 # 有效延迟(毫秒),超过此延迟将断开连接 + - LISTEN_PORT=2345 #默认1234 默认留空 + - ips=4 # 指定生成IPv4还是IPv6地址 + - port=443 # 转发的目标端口 + - tls=true # 是否为 TLS 端口 + - random=true # 是否随机生成IP,如果为false,则从CIDR中拆分出所有IP + - ipnum=10 # 提取的有效IP数量 + - num=10 # 目标负载 IP 数量 + - task=100 # 并发请求最大协程数 + - code=200 # HTTP/HTTPS 响应状态码 + - domain=cloudflaremirrors.com/debian # 响应状态码检查的域名地址 + #ports: + # - "1234:1234" # 将主机的 1234 端口映射到容器的 1234 端口 + restart: always +``` + + # 致谢 [gdfsnhsw](https://github.com/gdfsnhsw/CFnat-Docker)、[股神](https://t.me/CF_NAT/38840)、ChatGPT + + + + + + diff --git a/cfnat/cfnat-android-arm64 b/cfnat/cfnat-android-arm64 index 6d8e118..b6a7d3c 100644 Binary files a/cfnat/cfnat-android-arm64 and b/cfnat/cfnat-android-arm64 differ diff --git a/cfnat/cfnat-darwin-amd64 b/cfnat/cfnat-darwin-amd64 index 69c20aa..e62a9b1 100644 Binary files a/cfnat/cfnat-darwin-amd64 and b/cfnat/cfnat-darwin-amd64 differ diff --git a/cfnat/cfnat-darwin-arm64 b/cfnat/cfnat-darwin-arm64 index 3181ac3..6cca016 100644 Binary files a/cfnat/cfnat-darwin-arm64 and b/cfnat/cfnat-darwin-arm64 differ diff --git a/cfnat/cfnat-dragonfly-amd64 b/cfnat/cfnat-dragonfly-amd64 index 4705d7f..7c72168 100644 Binary files a/cfnat/cfnat-dragonfly-amd64 and b/cfnat/cfnat-dragonfly-amd64 differ diff --git a/cfnat/cfnat-freebsd-386 b/cfnat/cfnat-freebsd-386 index 24d2752..04452a3 100644 Binary files a/cfnat/cfnat-freebsd-386 and b/cfnat/cfnat-freebsd-386 differ diff --git a/cfnat/cfnat-freebsd-amd64 b/cfnat/cfnat-freebsd-amd64 index a9da784..e12ee7b 100644 Binary files a/cfnat/cfnat-freebsd-amd64 and b/cfnat/cfnat-freebsd-amd64 differ diff --git a/cfnat/cfnat-freebsd-arm b/cfnat/cfnat-freebsd-arm index 07a567b..1063c55 100644 Binary files a/cfnat/cfnat-freebsd-arm and b/cfnat/cfnat-freebsd-arm differ diff --git a/cfnat/cfnat-freebsd-arm64 b/cfnat/cfnat-freebsd-arm64 index 6b3b3ed..7188c4f 100644 Binary files a/cfnat/cfnat-freebsd-arm64 and b/cfnat/cfnat-freebsd-arm64 differ diff --git a/cfnat/cfnat-linux-386 b/cfnat/cfnat-linux-386 index 677c151..95d8ae6 100644 Binary files a/cfnat/cfnat-linux-386 and b/cfnat/cfnat-linux-386 differ diff --git a/cfnat/cfnat-linux-amd64 b/cfnat/cfnat-linux-amd64 index 64d0fd3..9139f8b 100644 Binary files a/cfnat/cfnat-linux-amd64 and b/cfnat/cfnat-linux-amd64 differ diff --git a/cfnat/cfnat-linux-arm64 b/cfnat/cfnat-linux-arm64 index d2d0a94..d60f4f5 100644 Binary files a/cfnat/cfnat-linux-arm64 and b/cfnat/cfnat-linux-arm64 differ diff --git a/cfnat/cfnat-linux-armv5 b/cfnat/cfnat-linux-armv5 index 9be83da..f9822b4 100644 Binary files a/cfnat/cfnat-linux-armv5 and b/cfnat/cfnat-linux-armv5 differ diff --git a/cfnat/cfnat-linux-armv6 b/cfnat/cfnat-linux-armv6 index 2e26f35..34532e0 100644 Binary files a/cfnat/cfnat-linux-armv6 and b/cfnat/cfnat-linux-armv6 differ diff --git a/cfnat/cfnat-linux-armv7 b/cfnat/cfnat-linux-armv7 index faa81fa..4b7d097 100644 Binary files a/cfnat/cfnat-linux-armv7 and b/cfnat/cfnat-linux-armv7 differ diff --git a/cfnat/cfnat-linux-mips b/cfnat/cfnat-linux-mips deleted file mode 100644 index abcc0a2..0000000 Binary files a/cfnat/cfnat-linux-mips and /dev/null differ diff --git a/cfnat/cfnat-linux-mips-hard b/cfnat/cfnat-linux-mips-hard new file mode 100644 index 0000000..306292a Binary files /dev/null and b/cfnat/cfnat-linux-mips-hard differ diff --git a/cfnat/cfnat-linux-mips-soft b/cfnat/cfnat-linux-mips-soft new file mode 100644 index 0000000..caa9454 Binary files /dev/null and b/cfnat/cfnat-linux-mips-soft differ diff --git a/cfnat/cfnat-linux-mips64 b/cfnat/cfnat-linux-mips64 index 0de8166..abec350 100644 Binary files a/cfnat/cfnat-linux-mips64 and b/cfnat/cfnat-linux-mips64 differ diff --git a/cfnat/cfnat-linux-mips64le b/cfnat/cfnat-linux-mips64le index 625496d..6fe0eac 100644 Binary files a/cfnat/cfnat-linux-mips64le and b/cfnat/cfnat-linux-mips64le differ diff --git a/cfnat/cfnat-linux-mipsle b/cfnat/cfnat-linux-mipsle deleted file mode 100644 index 81f8408..0000000 Binary files a/cfnat/cfnat-linux-mipsle and /dev/null differ diff --git a/cfnat/cfnat-linux-mipsle-hard b/cfnat/cfnat-linux-mipsle-hard new file mode 100644 index 0000000..68293f0 Binary files /dev/null and b/cfnat/cfnat-linux-mipsle-hard differ diff --git a/cfnat/cfnat-linux-mipsle-soft b/cfnat/cfnat-linux-mipsle-soft new file mode 100644 index 0000000..0217868 Binary files /dev/null and b/cfnat/cfnat-linux-mipsle-soft differ diff --git a/cfnat/cfnat-linux-ppc64 b/cfnat/cfnat-linux-ppc64 index f281788..6e3dd7e 100644 Binary files a/cfnat/cfnat-linux-ppc64 and b/cfnat/cfnat-linux-ppc64 differ diff --git a/cfnat/cfnat-linux-ppc64le b/cfnat/cfnat-linux-ppc64le index 770598d..8fe2652 100644 Binary files a/cfnat/cfnat-linux-ppc64le and b/cfnat/cfnat-linux-ppc64le differ diff --git a/cfnat/cfnat-linux-riscv64 b/cfnat/cfnat-linux-riscv64 index edec129..f59c434 100644 Binary files a/cfnat/cfnat-linux-riscv64 and b/cfnat/cfnat-linux-riscv64 differ diff --git a/cfnat/cfnat-linux-s390x b/cfnat/cfnat-linux-s390x index c2c88f5..fca9ed0 100644 Binary files a/cfnat/cfnat-linux-s390x and b/cfnat/cfnat-linux-s390x differ diff --git a/cfnat/cfnat-netbsd-386 b/cfnat/cfnat-netbsd-386 index 969ebf4..7aa491c 100644 Binary files a/cfnat/cfnat-netbsd-386 and b/cfnat/cfnat-netbsd-386 differ diff --git a/cfnat/cfnat-netbsd-amd64 b/cfnat/cfnat-netbsd-amd64 index ec9a199..8f6e3e2 100644 Binary files a/cfnat/cfnat-netbsd-amd64 and b/cfnat/cfnat-netbsd-amd64 differ diff --git a/cfnat/cfnat-netbsd-arm b/cfnat/cfnat-netbsd-arm index 2add53f..f0bebb4 100644 Binary files a/cfnat/cfnat-netbsd-arm and b/cfnat/cfnat-netbsd-arm differ diff --git a/cfnat/cfnat-netbsd-arm64 b/cfnat/cfnat-netbsd-arm64 index 113af36..44b0124 100644 Binary files a/cfnat/cfnat-netbsd-arm64 and b/cfnat/cfnat-netbsd-arm64 differ diff --git a/cfnat/cfnat-openbsd-386 b/cfnat/cfnat-openbsd-386 index ceef0c0..7fa864f 100644 Binary files a/cfnat/cfnat-openbsd-386 and b/cfnat/cfnat-openbsd-386 differ diff --git a/cfnat/cfnat-openbsd-amd64 b/cfnat/cfnat-openbsd-amd64 index f3753bf..84aae43 100644 Binary files a/cfnat/cfnat-openbsd-amd64 and b/cfnat/cfnat-openbsd-amd64 differ diff --git a/cfnat/cfnat-openbsd-arm b/cfnat/cfnat-openbsd-arm index cef903d..fff527b 100644 Binary files a/cfnat/cfnat-openbsd-arm and b/cfnat/cfnat-openbsd-arm differ diff --git a/cfnat/cfnat-openbsd-arm64 b/cfnat/cfnat-openbsd-arm64 index 47e792e..bd5183f 100644 Binary files a/cfnat/cfnat-openbsd-arm64 and b/cfnat/cfnat-openbsd-arm64 differ diff --git a/cfnat/cfnat-plan9-386 b/cfnat/cfnat-plan9-386 index 67530bb..2e67d07 100644 Binary files a/cfnat/cfnat-plan9-386 and b/cfnat/cfnat-plan9-386 differ diff --git a/cfnat/cfnat-plan9-amd64 b/cfnat/cfnat-plan9-amd64 index 4809335..0934d35 100644 Binary files a/cfnat/cfnat-plan9-amd64 and b/cfnat/cfnat-plan9-amd64 differ diff --git a/cfnat/cfnat-solaris-amd64 b/cfnat/cfnat-solaris-amd64 index ca7ecb2..b57ab57 100644 Binary files a/cfnat/cfnat-solaris-amd64 and b/cfnat/cfnat-solaris-amd64 differ diff --git a/cfnat/cfnat-termux b/cfnat/cfnat-termux deleted file mode 100644 index 8e1bd1d..0000000 Binary files a/cfnat/cfnat-termux and /dev/null differ diff --git a/cfnat/cfnat-windows-386.exe b/cfnat/cfnat-windows-386.exe index 255c681..d4a5b68 100644 Binary files a/cfnat/cfnat-windows-386.exe and b/cfnat/cfnat-windows-386.exe differ diff --git a/cfnat/cfnat-windows-amd64.exe b/cfnat/cfnat-windows-amd64.exe index 18aa1d8..8abfb0f 100644 Binary files a/cfnat/cfnat-windows-amd64.exe and b/cfnat/cfnat-windows-amd64.exe differ diff --git a/cfnat/cfnat-windows-arm.exe b/cfnat/cfnat-windows-arm.exe deleted file mode 100644 index 42e0683..0000000 Binary files a/cfnat/cfnat-windows-arm.exe and /dev/null differ diff --git a/cfnat/cfnat-windows-arm64.exe b/cfnat/cfnat-windows-arm64.exe index c6f0751..f62ce31 100644 Binary files a/cfnat/cfnat-windows-arm64.exe and b/cfnat/cfnat-windows-arm64.exe differ diff --git a/cfnat/cfnat-windows7-386.exe b/cfnat/cfnat-windows7-386.exe index 74230dd..b675ebb 100644 Binary files a/cfnat/cfnat-windows7-386.exe and b/cfnat/cfnat-windows7-386.exe differ diff --git a/cfnat/cfnat-windows7-amd64.exe b/cfnat/cfnat-windows7-amd64.exe index e12e860..f7fa957 100644 Binary files a/cfnat/cfnat-windows7-amd64.exe and b/cfnat/cfnat-windows7-amd64.exe differ diff --git a/go.sh b/go.sh index 6a6d6cd..b2604e7 100644 --- a/go.sh +++ b/go.sh @@ -1,9 +1,12 @@ -#!/bin/sh +# === 从环境变量中读取监听端口,如果未设置则默认使用 1234 === +LISTEN_PORT=${LISTEN_PORT:-1234} +# ========================================================== # 检测系统架构 ARCH=$(uname -m) CFNAT_BINARY='./cfnat' -colo_upper=$(echo "$colo" | tr '[:lower:]' '[:upper:]') +# 确保 colo 变量存在,并转换为大写 +colo_upper=$(echo "${colo:-DEFAULT}" | tr '[:lower:]' '[:upper:]') # 记录启动信息 { @@ -20,6 +23,7 @@ echo "负载IP数(num): $num" echo "最大并发请求数(task): $task" echo "响应状态码(code): $code" echo "检查域名(domain): $domain" +echo "监听地址及端口(addr): 0.0.0.0:$LISTEN_PORT" # 使用变量 } >> cfnat.log while true @@ -27,13 +31,13 @@ do # 记录每次启动时间 echo "$(date '+%Y-%m-%d %H:%M:%S') - cfnat 启动 ..." >> cfnat.log - # 运行主程序 - 使用检测到的正确二进制文件 + # 运行主程序 - 使用变量构造 -addr 参数 $CFNAT_BINARY \ -colo="$colo_upper" \ -port="$port" \ -delay="$delay" \ -ips="$ips" \ - -addr="0.0.0.0:1234" \ + -addr="0.0.0.0:$LISTEN_PORT" \ -ipnum="$ipnum" \ -num="$num" \ -random="$random" \ @@ -49,4 +53,4 @@ do # 等待 5 秒后重启 sleep 5 -done \ No newline at end of file +done