pgrok 是一种多租户 HTTP 反向隧道解决方案,通过从 SSH 协议进行远程端口转发。
这适用于需要将本地开发环境公开给公共 Internet 的小型团队,并且你需要自带域名和 SSO 提供程序。
它为每个用户提供稳定的子域,并通过 OIDC 协议由你的 SSO 进行门控。
可以将其视为 ngrok 的 65 美元/用户/月企业层的基本替代方案。想将其置于生产系统后面会破坏你的 SLA。
对于个人和生产系统,只需购买ngrok,它仍然是我的最爱。
稳定的子域和SSO是两件太昂贵的事情。
为什么不从 awesome 隧道中选择一个呢?放宽视野。不是每个人都是了解服务器操作的开发人员。对于担任社区经理、销售和项目经理的人来说,在本地启动一些东西可能已经是一个延伸,要求他们了解如何设置和修复服务器问题是浪费团队的生产力。
复制、粘贴和运行是每个人的最佳用户体验。
在开始之前,请确保你具备以下各项:
pgrok.dev
111.33.5.14
注意
Web 和代理服务器的 HTTPS 不是必需的,但建议尽可能使用。本节中的示例都使用 HTTP。
pgrokd)
A记录到
pgrok.dev
111.33.5.14
A记录到
*.pgrok.dev
111.33.5.14
pgrokd.yml
external_url: "http://pgrok.dev"
web:
port: 3320
proxy:
port: 3000
scheme: "http"
domain: "pgrok.dev"
sshd:
port: 2222
database:
host: "localhost"
port: 5432
user: "REDACTED"
password: "REDACTED"
database: "pgrokd"
identity_provider:
type: "oidc"
display_name: "Google"
issuer: "https://accounts.google.com"
client_id: "REDACTED"
client_secret: "REDACTED"
field_mapping:
identifier: "email"
display_name: "name"
email: "email"
# # The required domain name, "field_mapping.email" is required to set for this to work.
# required_domain: "example.com"
pgrokd
pgrokd
pgrokd
pgrokd.yml
--config
0.0.0.0/0
http://pgrok.dev {
reverse_proxy * localhost:3320
}
http://*.pgrok.dev {
reverse_proxy * localhost:3000
}
http://pgrok.dev/-/oidc/callback
pgrok)
http://unknwon.pgrok.dev
pgrok
brew install pgrok/tap/pgrok
pgrok.yml
http://localhost:3000
pgrok init --remote-addr pgrok.dev:2222 --forward-addr http://localhost:3000 --token {YOUR_TOKEN}
~/.pgrok/pgrok.yml
--config
pgrok
pgrok http
pgrok
pgrok.yml
~/.pgrok/pgrok.yml
--config
--debug
YYYY-MM-DD 12:34:56 INFO Tunneling connection established remote=pgrok.dev:2222
以下配置选项可以通过 CLI 标志覆盖:
--remote-addr->
remote_addr
--forward-addr->
forward_addr
--token->
token
作为特例,的第一个参数可用于指定转发地址,例如
pgrok http
pgrok http 8080
除了传统的请求转发到单个地址外,还可以配置具有动态转发规则。
pgrok
例如,如果本地前端在 上运行,但某些 gRPC 终结点需要直接在 与后端通信:
http://localhost:3000
http://localhost:8080
dynamic_forwards: |
/api http://localhost:8080
/hook http://localhost:8080
然后,所有以路径为前缀的请求都将转发到 (),其余所有请求都将转发到 ()。
/api
/hook
http://localhost:8080
forward_addr
http://localhost:3000
由于标准 SSH 协议用于隧道,因此你很可能只使用原版 SSH 客户端。
http://unknwon.pgrok.dev
ssh -N -R 0::3000 pgrok.dev -p 2222
-v
Allocated port 22487 for remote forward to :3000
该项目在 MIT 许可下。有关完整的许可证文本,请参阅许可证文件。