準備
我看官網推薦都是使用ssl然后要ssl證書,不想走彎路了
一、docker-compose.yml
version: "3.4"services:netmaker:container_name: netmakerimage: gravitl/netmaker:v0.90.0restart: unless-stoppedports:- "18081:18082"- "50051:50051"- "51821-51830:51821-51830/udp"volumes:- /usr/local/software/netmaker/data:/root/dataenvironment:- SERVER_HOST=域名:18082- API_HOST=域名:18082- API_PORT=18082- BROKER_ENDPOINT=mqtts://域名:8883- MASTER_KEY=KHcZC3whEX670G5JsFlR2V0Mr9nSgQSu- DATABASE=sqlite- DISPLAY_KEYS=true- TELEMETRY=off# 新增變量(基于參考配置)- SERVER_NAME=域名- SERVER_API_CONN_STRING=域名:18082- COREDNS_ADDR=域名:18082- SERVER_HTTP_HOST=域名:18082depends_on:mq:condition: service_startednetmaker-ui:container_name: netmaker-uiimage: gravitl/netmaker-ui:v0.90.0restart: unless-stoppedports:- "18080:80"environment:- BACKEND_URL=https://域名:18082depends_on:- netmakerlinks:- "netmaker:api" # 確保UI能通過別名訪問APImq:container_name: mosquittoimage: eclipse-mosquitto:2restart: unless-stoppedports:- "8883:8883"volumes:- /usr/local/software/netmaker/mosquitto/config:/mosquitto/config- /usr/local/software/netmaker/mosquitto/data:/mosquitto/data- /usr/local/software/netmaker/mosquitto/log:/mosquitto/log- /etc/letsencrypt:/etc/letsencryptcommand: mosquitto -c /mosquitto/config/mosquitto.conf
給掛載的路徑要有讀寫路徑
這里可以看到我們是把后端端口掛載在宿主機18001,需要使用nginx 使用ssl把18001端口隱射到18002
配置/usr/local/software/netmaker/mosquitto/config/mosquitto.conf
vim /usr/local/software/netmaker/mosquitto/config/mosquitto.conf
listener 8883
certfile /etc/letsencrypt/live/chaoyouwanjia.icu/fullchain.pem #你的域名ssl證書地址
keyfile /etc/letsencrypt/live/chaoyouwanjia.icu/privkey.pem #你的域名ssl證書地址
tls_version tlsv1.2
#password_file /mosquitto/config/passwd
#require_certificate false
#use_identity_as_username false #listener 1883
allow_anonymous true
運行
docker compose up -d
運行成功
第一次登錄需要注冊管理員賬號,后面就不用了
創建網絡,然后根據提示把內網加入到網絡就好
根據提示操作就好
如果其他兩臺沒公網,需要使用中集成模式,才能互相打通
使用云服務器那個節點創建gatway,在把其他機器掛載到到這個網關上
重要一點,要使用官方文檔,可以少走很多彎路,里面很多操作都寫明白了
排錯
journalctl -u netclient -f
客戶端如果顯示這個,就是成功了,要會查日志,不要傻傻的以為有內網ip就是成功了
查看分配的內網ip命令
ip addr show | grep -A 5 netmaker