源站参数决定了 cloudflared 如何将请求发送到您发布应用程序的源服务器。
本节介绍如何更新 远程管理隧道 的源站参数。如果您使用的是 本地管理隧道,请将这些参数添加到您的 配置文件 中。
- 在 Cloudflare 仪表板 ↗中,转到 Zero Trust > Networks(网络) > Connectors(连接器) > Cloudflare Tunnels(Cloudflare 隧道)。
- 选择一个隧道,然后选择 Edit(编辑)。
- 选择 Published application routes(已发布的应用程序路由) 选项卡。
- 选择一个应用程序并选择 Edit(编辑)。
- 在 Additional application settings 下,修改一个或多个源站参数。
- 选择 Save(保存)。
| 默认值 | 仪表板名称 |
|---|---|
"" |
Origin Server Name |
cloudflared 应从您的源服务器证书中期望的主机名。如果为空,期望的主机名则是服务 URL,例如如果服务为 https://localhost:443,则为 localhost。
| 默认值 | 仪表板名称 |
|---|---|
false |
Match SNI to Host |
当为 true 时,cloudflared 将在 TLS 握手期间自动将服务器名称指示 (SNI) 设置为传入请求的主机名。
此设置在将流量引导至托管多个服务并依赖 SNI 来路由请求或呈现正确证书的入口点时非常有用。它消除了在使用通配符路由时显式为各个服务配置 originServerName 的需要。
| 默认值 | 仪表板名称 |
|---|---|
"" |
Certificate Authority Pool |
指向您源服务器证书的证书颁发机构 (CA) 的本地文件路径(例如 /root/certs/ca.pem)。该路径应指向一个 .pem 或 .crt 格式的证书存储文件或捆绑包文件,其中包含一个或多个受信任的根 CA 证书。仅当您的证书不是由 Cloudflare 签名时,才应配置此设置。
| 默认值 | 仪表板名称 |
|---|---|
false |
No TLS Verify |
当为 false 时,将对源站呈现的证书执行 TLS 验证。
当为 true 时,TLS 验证将被禁用。这将允许接受来自源站的任何证书。
| 默认值 | 仪表板名称 |
|---|---|
10s |
TLS Timeout |
如果您选择将 Tunnel 连接到 HTTPS 服务器,则是与源服务器完成 TLS 握手的超时时间。
| 默认值 | 仪表板名称 |
|---|---|
false |
HTTP2 connection |
当为 false 时,cloudflared 将使用 HTTP/1.1 连接到您的源站。
当为 true 时,cloudflared 将尝试使用 HTTP/2.0 而不是 HTTP/1.1 连接到您的源服务器。HTTP/2.0 是针对高流量源站的更快协议,但需要您在源站上部署 SSL 证书。我们建议将此设置与 noTLSVerify 结合使用,以便您可以使用自签名证书。
| 默认值 | 仪表板名称 |
|---|---|
"" |
HTTP Host Header |
设置发送到本地服务的请求上的 HTTP Host 标头。
| 默认值 | 仪表板名称 |
|---|---|
false |
Disable Chunked Encoding |
当为 false 时,cloudflared 在通过 HTTP/1.1 传输数据时执行分块传输编码(chunked transfer encoding)。
当为 true 时,分块传输编码将被禁用。如果您运行的是 Web 服务器网关接口 (WSGI) 服务器,这会很有用。
| 默认值 | 仪表板名称 |
|---|---|
30s |
Connect Timeout |
与源服务器建立新 TCP 连接的超时时间。这不包括建立 TLS 所花费的时间,后者由 tlsTimeout 控制。
| 默认值 | 仪表板名称 |
|---|---|
false |
No Happy Eyeballs |
当为 false 时,如果您的本地网络错误配置了其中一种协议,cloudflared 会将 Happy Eyeballs 算法用于 IPv4/IPv6 回退。
当为 true 时,Happy Eyeballs 将被禁用。
| 默认值 | 仪表板名称 |
|---|---|
"" |
Proxy Type |
在代理(例如 SSH 或 RDP)时,cloudflared 会启动一个代理服务器将 HTTP 流量转换为 TCP。这将配置启动什么类型的代理。有效选项包括:
""表示常规代理"socks"表示 SOCKS5 代理。有关更多信息,请参阅关于使用 kubectl 通过 Cloudflare Access 进行连接的教程。
| 默认值 | 仪表板名称 |
|---|---|
127.0.0.1 |
-- |
cloudflared 在代理(例如 SSH 或 RDP)时会启动一个代理服务器将 HTTP 流量转换为 TCP。这将配置该代理的监听地址。
| 默认值 | 仪表板名称 |
|---|---|
0 |
-- |
cloudflared 在代理(例如 SSH 或 RDP)时会启动一个代理服务器将 HTTP 流量转换为 TCP。这将配置该代理的监听端口。如果设置为零,将随机选择一个未使用的端口。
| 默认值 | 仪表板名称 |
|---|---|
1m30s |
Idle Connection Expiration Time |
空闲的 Keep-Alive 连接在达到此超时时间后可被丢弃。
| 默认值 | 仪表板名称 |
|---|---|
100 |
Keep Alive Connections |
默认值:100
Cloudflare 与源站之间空闲 Keep-Alive 连接的最大数量。这并不限制并发连接的总数。
| 默认值 | 仪表板名称 |
|---|---|
30s |
TCP Keep Alive Interval |
默认值:30s
在 Cloudflare 与源服务器之间的连接上发送 TCP Keep-Alive 数据包的超时时间。
| 默认值 | 仪表板名称 |
|---|---|
"" |
Protect with Access |
要求 cloudflared 在将流量代理到您的源站之前先验证 Cloudflare Access JWT。您可以在受 Access 应用程序保护的公共主机名服务上强制执行此检查。对于向这些主机名发送的所有 L7 请求,Access 会将 JWT 作为 Cf-Access-Jwt-Assertion 请求标头发送给 cloudflared。
要在 配置文件 中启用此安全控制,请获取您的 Access 应用程序的 AUD 标签并将以下规则添加到 originRequest 中:
access:
required: true
teamName: <your-team-name>
audTag:
- <Access-application-audience-tag>
- <Optional-additional-tags>