Netmaker是一个开源的、用于WireGuard网络管理的控制工具,可以非常快速地组建WireGuard网络,并且能够轻松处理100个以上的并发客户端。
通过使用官方自带的nm-quick.sh脚本,可以轻松地在Ubuntu系统上完成软件的搭建,官方推荐的系统是Ubuntu 20.04。(CentOS目前还有点小问题,也可能是我没整明白。)唯一发现缺少的依赖组件是curl,建议提前安装。
当然,对于安装结果,必须用域名进行访问这个事情,也是有点意外。官方介绍,他们假设用户希望启用所有Netmaker功能,并且希望用户搭建的服务器位于云环境中、或者具备公网IP地址,以便可以从公网进行访问。而配置使用IP地址进行访问到底可行与否,我们今天就来手工配置看一下。
通过上次部署,我们已经发现了,Netmaker是基于Docker进行部署的,所以需要安装Docker组件;同时,要管理WireGuard的一端来管理WireGuard,也必须要安装WireGuard。
apt install -y docker.io docker-compose wireguard
捎带提一下,apt-get用于从经过身份验证的源中检索软件包和有关它们的信息,以及用于安装、升级和删除包及其依赖项。apt提供与专用APT工具(如apt-get和apt-cache)相同的功能,用于搜索、管理、查询软件包信息等,但默认启用更适合交互式使用的选项。
如果使用或开启了防火墙,则需要放通TCP端口443和UDP端口51821-518XX。其中,TCP端口443用于代理Dashboard(UI)、REST API(Netmaker Server)和Broker(MQTT);UDP端口51821-518XX,表示从51821开始,Netmaker需要为每个WireGuard网络打开一个端口,因此518XX的具体数值需要根据规划的WireGuard网络数量确定。例如,有10个WireGuard网络,那就要配置开放UDP端口51821-51830。
命令如下:
ufw allow proto tcp from any to any port 443 && ufw allow 51821:51830/udp
当然,也可以直接关闭防火墙。
systemctl stop ufw
先获取一下本地的接口地址,其实对于我们手工配置了IP地址的,简单验证一下即可。
ip route get 1 | sed -n 's/^.*src \([0-9.]*\) .*$/\1/p'
然后从库里面下载一份Netmaker的Docker Compose配置文件。
wget -O docker-compose.yml https://raw.githubusercontent.com/gravitl/netmaker/master/compose/docker-compose.yml
然后插入访问的域名信息,官方建议是配置成添加了DNS解析的域名信息。但是我在内网,就先配置成服务器的内网IP地址192.168.1.77。
sed -i 's/NETMAKER_BASE_DOMAIN/192.168.1.77/g' docker-compose.yml
再插入服务器IP地址信息,正常是要配置公网IP地址的,我这次是在内网,所以也配置成内网IP地址了。
sed -i 's/SERVER_PUBLIC_IP/192.168.1.77/g' docker-compose.yml
还可以配置邮箱信息。
sed -i 's/YOUR_EMAIL/tt@h3cadmin.cn/g' docker-compose.yml
查看一下配置文件中和内网IP地址192.168.1.77相关的配置。
可以看到有几个格式比较奇怪的字段:
broker.192.168.1.77https://api.192.168.1.77dashboard.192.168.1.77
回顾一下上一次,我们在hosts中添加了以下域名的解析值。
区别就是把域名http://nm.114-249-194-204.nip.io换成了本地IP地址192.168.1.77,现在请记住这个区别。
再使用tr命令随即生成一串唯一的主密钥。
tr -dc A-Za-z0-9 </dev/urandom | head -c 30 ; echo ''
然后把生成的密钥插入到docker-compose.yml文件中。
sed -i 's/REPLACE_MASTER_KEY/HhBlsjEANlSXCdP7ALDk8oM5Z8t46T/g' docker-compose.yml
然后从docker-compose.yml文件中就可以看到Netmaker的环境信息了。
再从库里面下载一份Mosquitto(用C语言实现MQTT协议的Broker,用于提供实时可靠的消息服务)的配置文件。
wget -O /root/mosquitto.conf https://raw.githubusercontent.com/gravitl/netmaker/master/docker/mosquitto.conf
接下来就可以开始部署Netmaker了。
docker-compose up -d
部署完成,我们看一下端口的使用情况。
可以看到端口443处于监听状态,测试一下。
然后我们用尝试访问一下dashboard.192.168.1.77。
用浏览器访问就会直接跳转到搜索页面。
其实,这个地址就是无法访问的,因为这个“域名”“不伦不类”,IP地址是不能配置子域名的;这种要使用子域名的情况,不能和IP地址混合使用,只能配置域名。
再回到问题本身,解决方案就是,要么在公网DNS服务商配置DNS域名解析,要么就修改本地的hosts文件吧。
记得要修改的地方是这条命令。
sed -i 's/NETMAKER_BASE_DOMAIN/nm.h3cadmin.cn/g' docker-compose.yml
对应配置文件中的这些字段。
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/9947.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~