关于MeshCentral
MeshCentral的Github主页
MeshCentral是个远程控制的解决方案,需要自己部署服务端并且在被控制的机器上安装客户端。远程控制通过网页操作。
Documentation是pdf的形式,看的时候总觉得怪怪的。
Docker-compose部署
MeshCentral没有官方的docker镜像,虽然有人制作了镜像,不过他也提供了Dockerfile,还是自己build好了。
准备好Dockerfile, config.json.template和startup.sh,然后根据需要创建docker-compose.yml:
配置Nginx反代
反代配置之前需要修改./meshcentral/data/config.json:
主要配置都来自于官方文档,主要是port和redirPort项要保证和docker容器暴露的端口对应。
然后参考官方文档配置Nginx:
这里有一个非常tricky的问题,Nginx使用的证书也会被用于Meshcentral客户端的认证,如果不能把这里的证书和./meshcentral/data/中的证书保持一致,会导致客户端无法连接。
为了解决这个问题,当然可以设置Nginx从Meshcentral文件夹直接读证书,但是这个办法也太丑陋了。我这里选择在通过acme.sh签发证书的过程中,同步更新Meshcentral文件夹里的证书。
签发证书的步骤和平时一样,在安装证书时,使用如下命令:
这段命令中,除了将证书安装到我常用的文件夹外,在重启Nginx的同时,将新的证书复制到Meshcentral对应的位置,完成两者证书的同步。证书同步后自动重启容器来让新证书生效。
Debug
我最初碰上了PC上可以正常访问,IOS无限connecting的问题,通过这个Reddit post,发现问题在于Nginx配置里漏了proxy_set_header Host $host;
,加上之后访问正常。
Comments NOTHING