Cloudflare Argo Tunnel Cli

安装

version: '3'
services:
  cf:
    image: lsposed/my:cftunnel.token
    container_name: cf
    deploy:
      resources:
        limits:
          cpus: '0.10'
          memory: 200M
    # ports:
    #   - "23:22"
    networks:
      - mynetworks
    restart: always
    # command: tail -f /dev/null
    environment:
      - token= 
        
networks:
  mynetworks:
    external: true

登录

cloudflared tunnel login

会弹出来一串链接,复制到浏览器,授权一个域名,终端会自动下载一个证书,并提示:

If you wish to copy your credentials to a server, they have been saved to:
/root/.cloudflared/cert.pem

查看已有隧道id和name

TUNNEL_ORIGIN_CERT=/root/.cloudflared/cert.pem cloudflared tunnel list

强制切换某隧道为http2,这一点一定要在cloudflared cli下操作,很坑!

cloudflared tunnel run --protocol http2 id/name
容器下
/usr/bin/cloudflared --no-autoupdate tunnel run --protocol http2 --token <token>

新建隧道

cloudflared tunnel create name

启动隧道

cloudflared tunnel run --url <Source> <NAME or UUID>

e.g

cloudflared tunnel run --url [http://localhost](http://localhost/) Website

关于HTTPS

cloudflared默认通过80端口访问你的服务.

这意味着如果你的网站只设置了https访问,或者设置了http跳转https时,都有可能不能正常工作.

你需要将http://localhost改为https://localhost,并添加参数--no-tls-verify禁用证书验证.

隧道已经创建好了,但是这时候还不能访问创建的隧道,你需要将他绑定到域名.

绑定隧道到域名

cloudflared tunnel route dns <UUID or NAME> <DOMAIN>

例如:

cloudflared tunnel route dns Website blog.baidu.com

cloudflared tunnel run –help

名称:

cloudflared tunnel run - 运行给定隧道以代理本地 Web 服务器

用法:

cloudflared tunnel [隧道命令选项] run [子命令选项] [TUNNEL]

描述:

运行由名称或UUID标识的隧道,创建您的服务器与 Cloudflare 边缘之间的高度可用连接。您可以将要运行的隧道的名称或UUID作为最后一个命令行参数提供,或者在配置文件中使用 “tunnel: TUNNEL”。

此命令需要在运行 “cloudflared tunnel create” 时创建的隧道凭据文件,但如果通过UUID标识隧道,则不需要 “cloudflared login” 生成的 cert.pem 文件。
如果在运行隧道时遇到其他问题,”cloudflared tunnel cleanup” 可能会帮助删除任何旧的连接记录。

# 隧道命令选项:
--config value                                      指定 YAML 格式的配置文件。 (默认: "/usr/local/etc/cloudflared/config.yml")
--origincert value                                  运行 cloudflared login 时为您的源生成的证书的路径。 (默认: "/root/.cloudflared/cert.pem") [$TUNNEL_ORIGIN_CERT]
--autoupdate-freq value                             自动更新频率。默认值为 24h0m0s。 (默认: 24h0m0s)
--no-autoupdate                                     禁用定期检查更新,使用新版本重新启动服务器。 (默认: false) [$NO_AUTOUPDATE]
--metrics value                                     用于报告度量的监听地址。 (默认: "localhost:") [$TUNNEL_METRICS]
--pidfile value                                     在第一次成功连接后,将应用程序的 PID 写入此文件。 [$TUNNEL_PIDFILE]
--loglevel value                                    应用程序日志级别 {debug, info, warn, error, fatal}。在调试级别下,cloudflared 将记录请求的 URL、方法、协议、内容长度,以及所有请求和响应头。这可能会在日志中暴露敏感信息。 (默认: "info") [$TUNNEL_LOGLEVEL]
--transport-loglevel value, --proto-loglevel value  传输日志级别(以前称为协议日志级别) {debug, info, warn, error, fatal} (默认: "info") [$TUNNEL_PROTO_LOGLEVEL, $TUNNEL_TRANSPORT_LOGLEVEL]
--logfile value                                     将应用程序日志保存到此文件以报告问题。 [$TUNNEL_LOGFILE]
--log-directory value                               将应用程序日志保存到此目录以报告问题。 [$TUNNEL_LOGDIRECTORY]
--trace-output value                                cloudflared 停止时生成的跟踪输出文件的名称。 [$TUNNEL_TRACE_OUTPUT]


# 子命令选项:
--credentials-file value, --cred-file value  读取/写入隧道凭据的文件路径 [$TUNNEL_CRED_FILE]
--credentials-contents value                 要使用的隧道凭据 JSON 文件的内容。当与 credentials-file 一起提供时,此内容将优先。 [$TUNNEL_CRED_CONTENTS]
--post-quantum, --pq                         提供时,创建一个实验性的后量子安全隧道 (默认: false) [$TUNNEL_POST_QUANTUM]
--features value, -F value                   选择各种仍在开发或测试中的功能。(接受多个输入)
--token value                                隧道令牌。当与凭据一起提供时,此内容将优先。 [$TUNNEL_TOKEN]
--icmpv4-src value                           发送/接收 ICMPv4 消息的源地址。如果未提供,cloudflared 将拨号本地地址以确定源 IP,或者退回到 0.0.0.0。 [$TUNNEL_ICMPV4_SRC]
--icmpv6-src value                           发送/接收 ICMPv6 消息的源地址和接口名称。如果未提供,cloudflared 将拨号本地地址以确定源 IP,或者退回到 ::。 [$TUNNEL_ICMPV6_SRC]
--url URL                                    连接到 URL 上的本地 Web 服务器。 (默认: "[http://localhost:8080](http://localhost:8080/)") [$TUNNEL_URL]
--hello-world                                
运行 Hello World 服务器 (默认: false) [$TUNNEL_HELLO_WORLD]
--socks5 --url                               
#指定此隧道是否作为 SOCK5 服务器运行。此标志仅在使用 --url 定义您的源并且不使用入口规则时生效。推荐的方式是依赖入口规则,并按 https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress 中的建议在 originRequest 下定义此属性 (默认: false) [$TUNNEL_SOCKS]
--proxy-connect-timeout --url                
#用于建立新连接的 HTTP 代理超时。此标志仅在使用 --url 定义您的源并且不使用入口规则时生效。推荐的方式是依赖入口规则,并按 https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress 中的建议在 originRequest 下定义此属性 (默认: 30s)
--proxy-tls-timeout --url                    
#用于完成 TLS 握手的 HTTP 代理超时。此标志仅在使用 --url 定义您的源并且不使用入口规则时生效。推荐的方式是依赖入口规则,并按 [https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress) 中的建议在 originRequest 下定义此属性 (默认: 10s)
--proxy-tcp-keepalive --url                 
#HTTP 代理 TCP 保活持续时间。此标志仅在使用 --url 定义您的源并且不使用入口规则时生效。推荐的方式是依赖入口规则,并按 [https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress) 中的建议在 originRequest 下定义此属性 (默认: 30s)
--proxy-no-happy-eyeballs --url              HTTP 代理应禁用 IPv4/v6 回退的 "happy eyeballs"。此标志仅在使用 --url 定义您的源并且不使用入口规则时生效。推荐的方式是依赖入口规则,并按 [https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress) 中的建议在 originRequest 下定义此属性 (默认: false)
--proxy-keepalive-connections --url          HTTP 代理最大保活连接池大小。此标志仅在使用 --url 定义您的源并且不使用入口规则时生效。推荐的方式是依赖入口规则,并按 [https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress) 中的建议在 originRequest 下定义此属性 (默认: 100)
--proxy-keepalive-timeout --url              用于关闭空闲连接的 HTTP 代理超时。此标志仅在使用 --url 定义您的源并且不使用入口规则时生效。推荐的方式是依赖入口规则,并按 [https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress) 中的建议在 originRequest 下定义此属性 (默认: 1m30s)
--proxy-connection-timeout value             已弃用。不再起作用。 (默认: 1m30s)
--proxy-expect-continue-timeout value        已弃用。不再起作用。 (默认: 1m30s)
--http-host-header --url                     设置本地 Web 服务器的 HTTP Host 头。此标志仅在使用 --url 定义您的源并且不使用入口规则时生效。推荐的方式是依赖入口规则,并按 [https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress) 中的建议在 originRequest 下定义此属性 [$TUNNEL_HTTP_HOST_HEADER]
--origin-server-name --url                   源服务器证书上的主机名。此标志仅在使用 --url 定义您的源并且不使用入口规则时生效。推荐的方式是依赖入口规则,并按 [https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress) 中的建议在 originRequest 下定义此属性 [$TUNNEL_ORIGIN_SERVER_NAME]
--unix-socket value                          使用而不是 --url 的 unix 套接字的路径。[$TUNNEL_UNIX_SOCKET]
--origin-ca-pool --url                       您的源证书的 CA 的路径。仅当您的证书未由 Cloudflare 签名时才应使用此选项。此标志仅在使用 --url 定义您的源并且不使用入口规则时生效。推荐的方式是依赖入口规则,并按 [https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress) 中的建议在 originRequest 下定义此属性 [$TUNNEL_ORIGIN_CA_POOL]
--no-tls-verify --url                        禁用对源呈现的证书的 TLS 验证。将允许接受来自源的任何证书。注意: 从您的计算机到 Cloudflare 边缘的连接仍然是加密的。此标志仅在使用 --url 定义您的源并且不使用入口规则时生效。推荐的方式是依赖入口规则,并按 [https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress) 中的建议在 originRequest 下定义此属性 (默认: false) [$NO_TLS_VERIFY]
--no-chunked-encoding --url                  禁用分块传输编码; 如果运行 WSGI 服务器,这很有用。此标志仅在使用 --url 定义您的源并且不使用入口规则时生效。推荐的方式是依赖入口规则,并按 [https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/configuration-file/ingress) 中的建议在 originRequest 下定义此属性 (默认: false) [$TUNNEL_NO_CHUNKED_ENCODING]
--http2-origin                               启用 HTTP/2 源服务器。 (默认: false) [$TUNNEL_ORIGIN_ENABLE_HTTP2]
--bastion                                    作为跳板主机运行 (默认: false) [$TUNNEL_BASTION]
--proxy-address value                        代理的监听地址。 (默认: "127.0.0.1") [$TUNNEL_PROXY_ADDRESS]
--proxy-port value                           代理的监听端口。 (默认: 0) [$TUNNEL_PROXY_PORT]
--help, -h                                   显示帮助信息 (默认: false)


欢迎指出任何有错误或不够清晰的表达,可以在下面评论区评论。

×

喜欢就点赞,疼爱就打赏

//