这里是macos,直接使用brew安装
brew install cloudflared
登录
cloudflared login
创建tunnel
cloudflared tunnel create emby
创建完成后,会在用户目录(用户目录/.cloudflared/
)生成xxxx.json,这个xxx就是tunnel-id
编写配置文件
在目录 用户目录/.cloudflared
创建 config.yml
, 示例内容如下:
tunnel: xxxx
credentials-file: /Users/gitsilence/.cloudflared/xxxx.json
protocol: http2
ingress:
- hostname: emby.xxx.cn
service: http://localhost:8096
- hostname: ssh.xxx.cn
service: tcp://192.168.0.1:22
originRequest:
disableChunkedEncoding: false
noTLSVerify: false
- service: http_status:404
这里实现了两个端口穿透,第一个是本地http 8096端口,第二个是ssh端口,tcp的协议
添加route
cloudflared tunnel route dns emby emby.xxx.cn
cloudflared tunnel route dns emby ssh.xxx.cn
这里的emby为前面创建tunnel的名字,emby.xxx.cn为我们自己的域名,如果cloudflare上已经添加了解析,先删掉再执行。
启动tunnel
cloudflared tunnel run emby
启动成功之后,就可以访问:https://emby.xxx.cn
ssh了话需要改下本地的配置,文件为:用户目录/.ssh/config
Host ssh.xxx.cn
ProxyCommand /opt/homebrew/bin/cloudflared access ssh --hostname %h
配置之后,就可以进行ssh了
ssh root@ssh.xxx.cn