树莓派安装Cockpit
树莓派安装Cockpit
介绍
cockpit是一款通过web访问的图形化Linux服务器管理应用,可以通过web很轻松的查看Linux主机的各种状态,此外还内置bash,可以执行shell命令,提供各种强大功能。
还有最需要夸的一点是安装简单,虽然我是遇到了一个大坑,折腾了半天,但这也不能怪cockpit,只能说咱学艺不精。
更多cockpit的功能介绍可以前往Cockpit官网查看。
安装
在Cockpit官网的这个页面可以找到Cockpit支持的Linux列表以及官方提供的安装步骤:
因为我要安装的设备是树莓派,所以选择debian。
按官方的步骤来,第一步是要给apt加一个代码仓库,好像是为了提供额外的依赖安装支持。
笔者在执行这里的时候发现提示没有权限,就su
提权,结果又发现自己的root账号都没设置过密码,遂使用sudo passwd root
设置了密码后 再提权。
在root下执行:
echo 'deb http://deb.debian.org/debian buster-backports main' > \
/etc/apt/sources.list.d/backports.list
apt update
结果提示:
在网上查找一番,找到了Linux导入公钥的方法,还是很简单的:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC
找到的方法里都是ubuntu,导入的公钥服务器也是ubuntu,但我试了下,debian也是可以用的。
然后我们来重新更新软件包:
apt update
OK了,但速度比较慢,大家耐心点。
更新了软件包目录后我们就可以安装本体了:
sudo apt install -t buster-backports cockpit
有80M,安装速度还是不错的。
运行
安装好后通过https://host_ip:9090
访问,第一次访问失败,显示:
我一度以为是防火墙的锅,查了半天iptables相关设置,结果还是一无所获,后来我想通了,在树莓派的浏览器访问都被拒绝,这明显和iptables没关系,这就是cockpit服务有问题。
想了解iptables更多内容,请阅读这篇《Linux iptables常用命令》,是我找到的资料里最详尽的一篇了。
后来经过一番折腾,终于发现是cockpit服务的锅,cockpit用于监听外部访问的服务是cockpit.socket,通过shell命令可以查询其状态:
sudo systemctl status cockpit.socket
经过查询发现是监听9090端口时候出错,出错原因就不知道了,我尝试了用systemctl reload
命令重新加载,结果提示这个模块不支持reload,一时陷入迷茫,后来我想到了重启大法,重启树莓派,一切OK:
想了解更多systemctl命令的可以阅读这篇《systemctl 命令完全指南》,同样内容详尽。
再用浏览器访问:
使用树莓派的用户名和密码登陆:
喜大普奔!
修改端口
经过一段时间后,我发现树莓派的遥控器不能用了,试了一下发现树莓派的遥控器TCP端口也是9090,之前的大坑原来在这里。。。好吧,我们去修改一下cockpit的端口:
进入cockpit的配置目录:
/etc/systemd/system
默认是没有cockpit的用户定义配置文件和目录的,需要自行创建:
sudo mkdir cockpit.socket.d
sudo nano listen.conf
写入端口配置:
[Socket]
ListenStream=
ListenStream=9091
这里第一个空的是必须的,第二个是自己定义的新端口,我这里使用的是9091。编辑好后使用ctrl+O写入,然后ctrl+X退出。
配置文件建好后我们用cat
命令确认一下:
最后需要重启一下cockpit的服务:
sudo systemctl daemon-reload
sudo systemctl restart cockpit.socket
接着访问https://192.168.1.111:9091/
:
OK了。
最后重启一下树莓派,kodi遥控器可以正常使用TCP连接了。
更多cockpit的设置请看官方文档。