跳转到内容
搜索文档

包含防火墙的隧道

最后更新 查看 MarkdownAgent 设置

您可以通过阻止所有入站流量并仅允许来自 cloudflared 的出站流量,从而利用 Cloudflare Tunnel 实现积极的安全模型。只有您隧道配置中指定的服务才会暴露给外部世界。

端口

可以针对防火墙内部的出站流量配置以下参数。

如何配置防火墙取决于防火墙类型:

  • 如果您的防火墙支持基于域的规则(FQDN 允许列表),您可以允许发往以下所列主机名的出站连接。
  • 如果您的防火墙需要基于 IP 的规则,请允许发往每个域所有列出 IP 地址的出站连接。

确保针对 TCP 和 UDP 协议均允许端口 7844(分别用于 http2quic)。

隧道运行所必需的

cloudflared 在端口 7844 上连接到 Cloudflare 的全球网络。要使用 Cloudflare Tunnel,您的防火墙必须允许在端口 7844 上发往以下目的地的出站连接(如果使用 quic 协议,则通过 UDP;如果使用 http2 协议,则通过 TCP)。

region1.v2.argotunnel.com

IPv4 IPv6 端口 协议
198.41.192.167 198.41.192.67 198.41.192.57 198.41.192.107 198.41.192.27 198.41.192.7 198.41.192.227 198.41.192.47 198.41.192.37 198.41.192.77 2606:4700:a0::1 2606:4700:a0::2 2606:4700:a0::3 2606:4700:a0::4 2606:4700:a0::5 2606:4700:a0::6 2606:4700:a0::7 2606:4700:a0::8 2606:4700:a0::9 2606:4700:a0::10 7844 TCP/UDP (http2/quic)

region2.v2.argotunnel.com

IPv4 IPv6 端口 协议
198.41.200.13 198.41.200.193 198.41.200.33 198.41.200.233 198.41.200.53 198.41.200.63 198.41.200.113 198.41.200.73 198.41.200.43 198.41.200.23 2606:4700:a8::1 2606:4700:a8::2 2606:4700:a8::3 2606:4700:a8::4 2606:4700:a8::5 2606:4700:a8::6 2606:4700:a8::7 2606:4700:a8::8 2606:4700:a8::9 2606:4700:a8::10 7844 TCP/UDP (http2/quic)

强制执行 SNI 的防火墙

如果您的防火墙强制执行服务器名称指示 (SNI),还要允许通过端口 7844 访问这些主机名:

主机名 端口 协议
_v2-origintunneld._tcp.argotunnel.com 7844 TCP (http2)
cftunnel.com 7844 TCP/UDP (http2/quic)
h2.cftunnel.com 7844 TCP (http2)
quic.cftunnel.com 7844 UDP (quic)

美国地区 (Region US)

使用 --region us 标志时,请确保您的防火墙允许通过端口 7844 (TCP/UDP) 发送到这些美国区域(US-region)目标的出站连接。

us-region1.v2.argotunnel.com

IPv4 IPv6 端口 协议
198.41.218.1 198.41.218.2 198.41.218.3 198.41.218.4 198.41.218.5 198.41.218.6 198.41.218.7 198.41.218.8 198.41.218.9 198.41.218.10 2606:4700:a1::1 2606:4700:a1::2 2606:4700:a1::3 2606:4700:a1::4 2606:4700:a1::5 2606:4700:a1::6 2606:4700:a1::7 2606:4700:a1::8 2606:4700:a1::9 2606:4700:a1::10 7844 TCP/UDP (http2/quic)

us-region2.v2.argotunnel.com

IPv4 IPv6 端口 协议
198.41.219.1 198.41.219.2 198.41.219.3 198.41.219.4 198.41.219.5 198.41.219.6 198.41.219.7 198.41.219.8 198.41.219.9 198.41.219.10 2606:4700:a9::1 2606:4700:a9::2 2606:4700:a9::3 2606:4700:a9::4 2606:4700:a9::5 2606:4700:a9::6 2606:4700:a9::7 2606:4700:a9::8 2606:4700:a9::9 2606:4700:a9::10 7844 TCP/UDP (http2/quic)

FedRAMP High 地区 (Region FedRAMP High)

FedRAMP High 环境中部署 cloudflared 时,cloudflared 会根据 Tunnel 令牌自动路由到 FedRAMP 数据中心。确保您的防火墙允许通过端口 7844 (TCP/UDP) 发送到这些 FedRAMP 特定目标的出站连接。

fed-region1.v2.argotunnel.com

IPv4 IPv6 端口 协议
162.159.234.1 162.159.234.2 162.159.234.3 162.159.234.4 162.159.234.5 162.159.234.6 162.159.234.7 162.159.234.8 162.159.234.9 162.159.234.10 2a06:98c1:4d::1 2a06:98c1:4d::2 2a06:98c1:4d::3 2a06:98c1:4d::4 2a06:98c1:4d::5 2a06:98c1:4d::6 2a06:98c1:4d::7 2a06:98c1:4d::8 2a06:98c1:4d::9 2a06:98c1:4d::10 7844 TCP/UDP (http2/quic)

fed-region2.v2.argotunnel.com

IPv4 IPv6 端口 协议
172.64.234.1 172.64.234.2 172.64.234.3 172.64.234.4 172.64.234.5 172.64.234.6 172.64.234.7 172.64.234.8 172.64.234.9 172.64.234.10 2606:4700:f6::1 2606:4700:f6::2 2606:4700:f6::3 2606:4700:f6::4 2606:4700:f6::5 2606:4700:f6::6 2606:4700:f6::7 2606:4700:f6::8 2606:4700:f6::9 2606:4700:f6::10 7844 TCP/UDP (http2/quic)

可选的

打开端口 443 可启用一些可选功能。如果未允许这些连接,可能会引发日志错误,但 cloudflared 仍将正确运行。

api.cloudflare.com

允许 cloudflared 查询是否有可用的软件更新。

IPv4 IPv6 Port Protocols
104.19.192.29 104.19.192.177 104.19.192.175 104.19.193.29 104.19.192.174 104.19.192.176 2606:4700:300a::6813:c0af 2606:4700:300a::6813:c01d 2606:4700:300a::6813:c0ae 2606:4700:300a::6813:c11d 2606:4700:300a::6813:c0b0 2606:4700:300a::6813:c0b1 443 TCP (HTTPS)

update.argotunnel.com

允许 cloudflared 查询是否有可用的软件更新。

IPv4 IPv6 Port Protocols
104.18.25.129 104.18.24.129 2606:4700::6812:1881 2606:4700::6812:1981 443 TCP (HTTPS)

github.com

允许 cloudflared 下载最新版本并执行软件更新。

IPv4 IPv6 Port Protocols
GitHub's IPs GitHub's IPs 443 TCP (HTTPS)

<your-team-name>.cloudflareaccess.com

允许 cloudflared 验证 Access JWT。仅在启用 access 设置时才需要。

IPv4 IPv6 Port Protocols
104.19.194.29 104.19.195.29 2606:4700:300a::6813:c31d 2606:4700:300a::6813:c21d 443 TCP (HTTPS)

pqtunnels.cloudflareresearch.com

允许 cloudflared 向 Cloudflare 报告后量子密钥交换错误。

IPv4 IPv6 Port Protocols
104.18.4.64 104.18.5.64 2606:4700::6812:540 2606:4700::6812:440 443 TCP (HTTPS)

cfd-features.argotunnel.com

IPv4 IPv6 Port Protocols
Not applicable Not applicable Not applicable Not applicable

对此主机名执行 TXT 记录的 DNS 查询允许 cloudflared 确定在通过 quic 协议连接时使用哪个版本的 UDP 数据报。如果您的防火墙按 FQDN 过滤出站 DNS 查询,您可能需要允许对该域的查询,以确保最佳的 quic 性能。

防火墙配置

云 VM 防火墙

如果您在云提供商的虚拟机 (VM) 实例上托管您的服务,您可以设置实例级的防火墙规则来阻止所有入站流量,并仅允许出站流量。例如,在 Google Cloud Platform (GCP) 上,您可以删除所有入站规则,仅保留相关的出站规则。这是因为 GCP 的防火墙会拒绝入站流量,除非它匹配一条显式的规则。

操作系统防火墙

或者,您可以使用操作系统(OS)级别的防火墙规则来阻止所有入站流量并仅允许出站流量。例如,如果您的服务器运行在 Linux 上,您可以使用 iptables 来设置防火墙规则:

  1. 检查您当前的防火墙规则。

    sudo iptables -L
  2. 允许 localhost 自我通信。

    sudo iptables -A INPUT -i lo -j ACCEPT
  3. 允许已建立的连接和相关流量。

    sudo iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
  4. 允许新的 SSH 连接。

    sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT
  5. 丢弃所有其他入站流量。

    sudo iptables -A INPUT -j DROP
  6. 设置防火墙规则后,使用此命令检查当前的 iptables 设置:

    sudo iptables -L
  7. 运行您的隧道并检查所有配置的服务是否仍可通过隧道访问,但不能通过服务器的外部 IP 地址访问。

  8. 默认情况下,您通过 iptables 命令添加的规则仅存储在内存中,在重启时不会持久存在。根据您的 Linux 发行版,有许多不同的方法可以保存和重新加载您的防火墙规则。例如,在 Debian 上,您可以使用 iptables-persistent 软件包:

    sudo apt install iptables-persistent
    sudo netfilter-persistent save

测试连接性

使用 dig 进行测试

要测试您与 Cloudflare 的连接性,您可以使用 dig 命令来查询上面列出的主机名。注意,cloudflared 默认使用 IPv4 进行连接。

dig A region1.v2.argotunnel.com
;; ANSWER SECTION:
region1.v2.argotunnel.com. 86400 IN	A	198.41.192.167
region1.v2.argotunnel.com. 86400 IN	A	198.41.192.67
region1.v2.argotunnel.com. 86400 IN	A	198.41.192.57
region1.v2.argotunnel.com. 86400 IN	A	198.41.192.107
region1.v2.argotunnel.com. 86400 IN	A	198.41.192.27
region1.v2.argotunnel.com. 86400 IN	A	198.41.192.7
region1.v2.argotunnel.com. 86400 IN	A	198.41.192.227
region1.v2.argotunnel.com. 86400 IN	A	198.41.192.47
region1.v2.argotunnel.com. 86400 IN	A	198.41.192.37
region1.v2.argotunnel.com. 86400 IN	A	198.41.192.77
...
dig AAAA region1.v2.argotunnel.com
...
;; ANSWER SECTION:
region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a0::1
region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a0::2
region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a0::3
region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a0::4
region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a0::5
region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a0::6
region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a0::7
region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a0::8
region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a0::9
region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a0::10
...
dig A region2.v2.argotunnel.com
;; ANSWER SECTION:
region2.v2.argotunnel.com. 86400 IN	A	198.41.200.13
region2.v2.argotunnel.com. 86400 IN	A	198.41.200.193
region2.v2.argotunnel.com. 86400 IN	A	198.41.200.33
region2.v2.argotunnel.com. 86400 IN	A	198.41.200.233
region2.v2.argotunnel.com. 86400 IN	A	198.41.200.53
region2.v2.argotunnel.com. 86400 IN	A	198.41.200.63
region2.v2.argotunnel.com. 86400 IN	A	198.41.200.113
region2.v2.argotunnel.com. 86400 IN	A	198.41.200.73
region2.v2.argotunnel.com. 86400 IN	A	198.41.200.43
region2.v2.argotunnel.com. 86400 IN	A	198.41.200.23
...
dig AAAA region2.v2.argotunnel.com
...
;; ANSWER SECTION:
region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a8::1
region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a8::2
region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a8::3
region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a8::4
region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a8::5
region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a8::6
region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a8::7
region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a8::8
region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a8::9
region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a8::10
...

使用 PowerShell 进行测试

在 Windows 上,如果 dig 不可用,您可以使用 PowerShell 命令。

测试 DNS:

Resolve-DnsName -Name _v2-origintunneld._tcp.argotunnel.com SRV
Name                                     Type   TTL   Section    NameTarget                     Priority Weight Port
----                                     ----   ---   -------    ----------                     -------- ------ ----
_v2-origintunneld._tcp.argotunnel.com       SRV    112   Answer     region2.v2.argotunnel.com         2        1      7844
_v2-origintunneld._tcp.argotunnel.com       SRV    112   Answer     region1.v2.argotunnel.com         1        1      7844

测试端口:

tnc region1.v2.argotunnel.com -port 443
ComputerName     : region1.v2.argotunnel.com
RemoteAddress    : 198.41.192.227
RemotePort       : 443
InterfaceAlias   : Ethernet
SourceAddress    : 10.0.2.15
TcpTestSucceeded : True
tnc region1.v2.argotunnel.com -port 7844
ComputerName     : region1.v2.argotunnel.com
RemoteAddress    : 198.41.192.227
RemotePort       : 7844
InterfaceAlias   : Ethernet
SourceAddress    : 10.0.2.15
TcpTestSucceeded : True

这篇文档对您有帮助吗?