一,Cockpit
1,简介
Cockpit是一个开源的、基于Web的Linux服务器管理工具,兼容多种 Linux 发行版,包括 Red Hat、 CentOS、 Fedora、 Debian 和 Ubuntu 等。其旨在简化系统管理员的工作流程,使其能够更高效地管理和监控多个Linux服务器。
官网地址:https://cockpit-project.org/
- 系统监控:实时查看 CPU、内存、磁盘 I/O 和网络使用情况,帮助管理员快速了解系统状态。
- 服务管理:轻松启动、停止和重启系统服务,确保服务的正常运行。
- 存储管理:管理磁盘分区、LVM、RAID 等存储配置,支持创建和调整存储卷。
- 网络配置:配置网络接口、防火墙和虚拟网络,简化网络设置过程。
- 用户管理:添加、删除和修改系统用户和组,管理用户权限。
- 软件包管理:通过图形界面安装、更新和删除软件包,替代传统的命令行操作。
- 日志查看:查看系统日志和审计日志,帮助诊断问题并监控系统活动。
- 远程终端访问:提供基于Web的终端,允许管理员直接在浏览器中执行命令。
Cockpit通过提供了一个直观的图形用户界面,大大简化了Linux服务器的管理任务,它不仅提高了工作效率,还降低了对命令行操作的依赖,使得服务器管理变得更加友好和可视化。
2,安装与启动
Cockpit的安装过程相对简单,通常只需通过包管理器安装相应的软件包,并启用服务即可开始使用。默认情况下,它使用系统现有的用户凭证进行登录,无需额外配置。
# 更新软件包列表
sudo apt update
# 以debian系统为例
# 安装 Cockpit
sudo apt install cockpit -y
# 启动并启用 Cockpit 服务
sudo systemctl start cockpit
sudo systemctl enable cockpit
# 查看 Cockpit 服务状态
sudo systemctl status cockpit
# 默认情况下 Cockpit Web界面端口为9090
# 如果要通过反向代理则无需运行下述命令
sudo ufw allow 9090/tcp
3,Web端设置反向代理
Cockpit其默认监听0.0.0.0:9090
,主要通过SSH进行控制访问,该Web端口默认的登录账户和密码是SSH的账户和密码。如果在SSH禁止root直接登录,则在Web端该用户也无法登录。
下述步骤仅在需要通过Web界面访问的主服务上设置。
(1)修改cockpit.socket
默认监听设置
# 创建配置目录与写入文件
sudo mkdir /etc/systemd/system/cockpit.socket.d
cat << "EOF" | sudo tee /etc/systemd/system/cockpit.socket.d/listen.conf > /dev/null
[Socket]
ListenStream=
ListenStream=127.0.0.1:9090
FreeBind=yes
EOF
# 重启 cockpit.socket 服务
sudo systemctl daemon-reload
sudo systemctl restart cockpit.socket
(2)配置指定用户访问(可选)
# 创建配置文件并指定root用户禁止登录
cat << "EOF" | sudo tee /etc/cockpit/disallowed-users > /dev/null
# List of users which are not allowed to login to Cockpit
root
EOF
(3)配置Cockpit反向代理
# 创建配置目录与写入文件
cat << "EOF" | sudo tee /etc/cockpit/cockpit.conf > /dev/null
[WebService]
Origins = https://cockpit.example.com # 这里改成你自己的地址
ProtocolHeader = X-Forwarded-Proto # 与nginx中一致
ForwardedForHeader = X-Forwarded-For # 与nginx中一致
LoginTo = false
AllowUnencrypted = false # 我使用了https,这里设置为false
EOF
# 重启 cockpit.socket 服务
sudo systemctl restart cockpit.socket
(4)配置Nginx端进行访问
此处我直接使用Cloudflare Tunnel直接代理访问,详细配置参考原教程
server {
listen 443 ssl http2;
server_name cockpit.zhile.io;
charset utf-8;
ssl_certificate certs/cockpit.zhile.io.crt;
ssl_certificate_key certs/cockpit.zhile.io.key;
...省略若干其他配置...
location /cockpit/socket {
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:9090;
proxy_set_header Connection "upgrade";
proxy_set_header Upgrade http_upgrade;
proxy_set_header Host http_host;
proxy_set_header X-Forwarded-Proto scheme;
proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for;
}
location / {
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:9090;
proxy_set_header Connection "";
proxy_set_header Host http_host;
proxy_set_header X-Forwarded-Proto scheme;
proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for;
}
...省略若干其他配置...
}
主要参考:Cockpit安装配置速记 – 知了
4,登录Web页面
(1)通过域名进入Web端,并键入SSH的账户和密码登陆访问。
如果是非root用户,可在登陆后顶端点击被限制的访问
后,输入root用户的登录密码后点击认证进行完全访问,此时会出现管理员模式
。
(2)添加其他Linux服务器
由于该工具完全通过SSH进行控制访问,请确保服务器的SSH与下述配置相符。
点击页面左上角的小箭头,在出现的新菜单中选择添加新主机
在主机
中填写服务器的IP:SSH登录端口
或者域名:SSH登陆端口
,如果不填写端口则会默认为22.
在用户名
中填写该服务器的SSH登录用户名,随后点击添加,如果设置正确会要求输入密码。
二,Linux服务器面板
Linux面板安装后掌控该服务器的最高权限,所以需要谨慎选择和使用。
以下是常用的Linux面板。
(如有补充可在该表格基础上进行添加)
面板名称 | 地址 | 备注 |
---|---|---|
宝塔面板 | https://www.bt.cn | 中国流传最广的面板,使用强制要求账户 |
小皮面板 | https://xp.cn/ | |
耗子面板 | https://ratpanel.github.io/ | |
宝塔开心版 | https://www.btkaixin.net/ | 宝塔面板的破解版本,谨慎使用 |
mdserver-web | https://www.midoks.icu/ | 又称夸父面板 |
aaPanel | https://www.aapanel.com/ | 宝塔面板的国际版本,无需登录 |
1Panel | https://1panel.cn/ | 以Docker为主要配置的面板 |
AMH | https://amh.sh/ | |
CyberPanel | https://cyberpanel.net/ |
三,其他相关的VPS或者服务监控管理
1,内网穿透——Cloudflare Tunnels
Cloudflare Tunnel 是一个由 Cloudflare 提供的服务,旨在通过加密隧道将内部网络的服务安全地暴露到公共互联网。它可以有效实现内网穿透,避免了传统方式中需要公网 IP 或开放端口的麻烦。
官网地址:https://one.dash.cloudflare.com/
- 内网穿透:允许用户在没有公网 IP 的情况下,将本地服务暴露到互联网上。例如,家庭网络中的服务器可以通过 Cloudflare Tunnel 进行访问,而无需进行复杂的网络配置。
- 支持多种协议:除了 HTTP 服务外,Cloudflare Tunnel 还支持 SSH、RDP 等多种协议,可以满足不同应用场景的需求。
- 自动 HTTPS:Cloudflare Tunnel 会自动为用户提供 HTTPS 证书,无需用户手动配置 SSL/TLS,简化了安全设置。
- 访问控制:用户可以通过 Cloudflare 的控制面板设置访问控制规则,进一步保护内部服务不被未授权访问。
Cloudflare Tunnel 的工作原理是通过在本地网络上运行一个名为 cloudflared
的轻量级守护进程,与 Cloudflare 的边缘服务器建立出站连接。所有流量首先经过 Cloudflare 的服务器,然后再转发到内部网络中的目标服务。这种方式不仅提供了额外的安全性,还可以隐藏源站 IP 地址,从而降低被攻击的风险。
2,服务器性能监控——哪吒监控
哪吒监控是一款开源、轻量化的服务器监控和运维工具,旨在帮助用户实时监控服务器的性能和状态,适合需要实时监控和管理多台服务器的用户。
官网地址:https://nezha.wiki/
- 多服务器管理:支持同时监控多台服务器,用户可以通过面板轻松管理和查看各个服务器的状态。
- 告警通知:当监控指标超过设定阈值时,可以通过邮件、微信、Telegram 等多种方式发送告警通知。
- 网络延迟监控:提供网络延迟统计图表,帮助用户了解网络状况。
- SSL 证书监控:能够监控目标 URL 的 SSL 证书状态,如证书到期或变更时会触发通知。
- WebSSH 和 DDNS 支持:支持通过 WebSSH 远程访问服务器,并提供动态域名解析功能。
3,服务网站监控——UptimeFlare
UptimeFlare是一个免费且无服务器的运行时间监控/状态页面解决方案,基于Cloudflare Workers构建,支持地理特定检查。
Github地址:
- 为所有类型的监控提供交互式ping(响应时间)图表。
- 响应式UI,可适应系统主题。
- 可自定义状态页面。
- 支持使用CNAME绑定自定义域名。
- 可选密码认证(私有状态页面)。
- 提供JSON API以获取实时状态数据。
4,Docker管理——Portainer
(1)简介
Portainer 是一个开源的图形化管理工具,专为 Docker 环境设计,旨在简化容器管理。它提供了一个直观的 Web 界面,使用户能够轻松管理 Docker 容器、镜像、网络和数据卷等资源。
官网地址:https://www.portainer.io/
- 容器管理:用户可以查看、启动、停止、删除容器,并查看容器的日志和统计信息。
- 镜像管理:支持查看、创建和部署镜像,同时可以查看镜像的层级信息。
- 网络管理:提供创建、删除和查看 Docker 网络的功能。
- 卷管理:允许用户管理数据卷,包括创建和删除操作。
- 访问控制:支持基于用户和团队的访问控制,确保安全性。
- 监控与分析:提供对容器、镜像、网络等的监控和分析功能,帮助用户及时发现问题。
- 服务编排:支持通过可视化界面编排 Docker Compose 应用,简化应用部署过程。
(2)安装Portainer
在此之间,需要先安装Docker后运行下述命令。
docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name portainer portainer/portainer-ce:latest
在安装后进入设置用户名和密码后即可登录。
(3)添加其他服务器
在Portainer左侧菜单中选择Environment-related
,随后点击+Add Environment
,进入新页面后选择Docker Standalone
,并点击Start Wizard
,默认选择Agent
无需修改。
其下会给出两个选项,选择相应的服务器版本。
# Linux & Windows WSL
docker run -d \
-p 9001:9001 \
--name portainer_agent \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/docker/volumes:/var/lib/docker/volumes \
-v /:/host \
portainer/agent:2.21.5
# Windows WCS
docker run -d \
-p 9001:9001 \
--name portainer_agent \
--restart=always \
-v C:\:C:\host \
-v C:\ProgramData\docker\volumes:C:\ProgramData\docker\volumes \
-v \\.\pipe\docker_engine:\\.\pipe\docker_engine \
portainer/agent:2.21.5
在需要安装的服务器上键入上述命令后,在原界面分别填入Name
和Environment address。
其中后者的格式为ip:agent映射端口
或者域名:agent映射端口
,请确保该端口已经通过防火墙和VPS服务商的TCP放行。
随后点击Connect
即可连接并进行控制访问,如若出现已经被连接的提示,请停止之前的容器,重新创建并运行portainer-agent容器。
原文地址: 多Linux管理服务工具