使用cloudflare tunnels连接到本地主机的ssh服务
在cloudflare托管域名以后,可以使用cloudflare的Tunnels来实现内网穿透,将本地服务暴露到互联网。
假设我们托管的域名是 example.com 。
创建隧道
进入到 ZeroTrust/Networks/Tunnels 页面, 点击 Create a tunnel
,根据提示一步步设置。
开启Public hostnames SSH服务
在Tunnel的Public hostnames,可以映射本地开启的服务,这里开启一个ssh服务:
- Subdomain: ssh
- Domain: example.com
- Path: 留空就行
- Type: 选择ssh
- URL: localhost:22
其他设置可以不用修改。上面会将运行cloudflared隧道服务的个人本地电脑的 ssh 服务(默认端口是22) 映射到 ssh.example.com 这个域名。但是现在还不能直接通过 https://ssh.example.com
访问本地电脑的ssh服务。
添加 Browser rendering SSH 应用
进入 ZeroTrust/Access/Applications 页面,点击 Add an application
-
Select type, 选择
Self-hosted
,点击下一步 -
Configure application
- Application name: MySSHApp,随便起一个
- Application domain:
- Subdomain: ssh, 就是上一步Public hostnames里面设置的
- Domain: example.com 点击下一步。
-
Add policies
- Policy name: 随便起一个,MyPolicy
- Action: 选择 Allow
- Configure rules/Include/Selector: 可以选择 Emails
- Configure rules/Include/Value: 填写允许登录使用的邮箱,比如 fuck@qq.com
填完了以后,点击一下
Add include
,然后点击Next
,进入到Setup
。
-
Setup 页面滚动到最下面,
Additional Settings/Browser rendering
,设置为SSH
,右下角点击Add application
。
大功告成,在浏览器地址栏中输入 https://ssh.example.com
,在页面中输入之前设置的允许访问的邮箱,在输入邮箱接收到的验证码,就可以通过浏览器登入本地电脑的ssh服务了。