Cloudflare Tunnel无法代理Cockpit的解决办法
问题现象:Cloudflare Tunnel代理cockpit,能够显示首页,但是无法登录cockpit,如下图:

问题原因:cockpit使用wss进行通信,而Cloudflare Tunnel只代理了http/https,所以登录后无法进行通信,导致此问题发生,从下图控制台报错可以看到原因:

解决办法:添加cockpit配置文件,使其能够通过代理访问
root@armbian:~# cat /etc/cockpit/cockpit.conf
[WebService]
Origins = https://cockpit.xxxx.xxx wss://cockpit.xxxx.xxx
ProtocolHeader = X-Forwarded-Proto
AllowUnencrypted = true
root@armbian:~# systemctl restart cockpit.service #重启cockpitAI给出的解决办法

实际上只需要配置cockpit能够通过代理访问即可,其他步骤不是必须。
FRP反向代理配置
下载软件包
到frp的GitHub下载最新的软件包frp release
服务端配置
1.解压下载到的软件包
tar -zxvf frp.xxx.xxx.tar.gz -C /usr/local/2.编写frps.toml配置文件
root@s29932:~# cat /usr/local/frp/frps.toml
[common]
bind_addr = 0.0.0.0 #监听ip,0.0.0.0表示所有
bind_port = 7000 #监听端口
authentication_method = token #设置认证方式为密码认证
token = 你设置的对接认证密码
## 这个配置可能是旧版本的配置,如果有更新的配置,请自行更新3.编写systemd service文件
root@s29932:~# cat /etc/systemd/system/frps.service
[Unit]
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
ExecStart = /usr/local/frp/frps -c /usr/local/frp/frps.toml
[Install]
WantedBy = multi-user.target4.运行frp
systemctl start frp客户端配置
1.下载解压同服务端
2.编写frpc.toml
root@armbian:~# cat /usr/local/frp/frpc.toml
[common]
server_addr = 你的服务器地址
server_port = 7000 #服务器端口
token = 同服务器端配置的对接认证密码一致
[cockpit] #代理的名称
type = tcp #代理的类型
local_ip = 127.0.0.1 #本地ip
local_port = 9090 #本地端口
remote_port = 9090 #远程端口
## 这个配置可能是旧版本的配置,如果有更新的配置,请自行更新3.编写systemd service文件
root@armbian:~# cat /etc/systemd/system/frp.service
[Unit]
Description = frp client
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
ExecStart = /usr/local/frp/frpc -c /usr/local/frp/frpc.toml
[Install]
WantedBy = multi-user.target 欢迎使用 Typecho
如果您看到这篇文章,表示您的 blog 已经安装成功.