netmaker
netmaker copied to clipboard
[Bug]: Add a External Client , netmaker wrong
Contact Details
What happened?
use docker-compose traefik v0.14.2 Add a External Client docker restart netmaker netmaker's nm-*** interface status is wrong disable the ext.client is ok. change netmaker's docker image v0.14.1 is ok.
Version
v0.14.2
What OS are you using?
Linux
Relevant log output
netmaker | [netmaker] 2022-06-09 06:41:20 error running command: wg set nm-office-vpn peer 18qNyKRgiNUh41AbMTWdCbeG8NF/VRC4XCS1FMgUwHA= persistent-keepalive 20 allowed-ips 10.66.110.1/32,<nil>
netmaker | [netmaker] 2022-06-09 06:41:20 Unable to parse IP address: `<nil>'
netmaker | 2022/06/09 06:41:20 error setting peer 18qNyKRgiNUh41AbMTWdCbeG8NF/VRC4XCS1FMgUwHA=
netmaker | [netmaker] 2022-06-09 06:41:20 exit status 1
#####################
in docker
~ # wg show
interface: nm-office-vpn
listening port: 36025
Contributing guidelines
- [X] Yes, I did.
unable to reproduce, need additional information. Is 10.66.110.1 an external client?
yes what more can i log?
please reproduce the issue and tell us steps to reproduce. Also, how you deployed netmaker / what environment (cloud, OS) it is in
部署环境: DDNS动态公网IP,路由映射8443/tcp 55000/udp端口到服务器192.168.88.10,服务器中部署netmaker. 针对DDNS所做修改: docker中添加jq sqlite3, endpoint.sh 自动修改ddns变更后的ip和锁定netmaker自身udp端口,如ip变更,修改db并kill netmaker强制容器重启。 Dockerfile: FROM gravitl/netmaker:v0.14.2
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
&& apk add jq sqlite
WORKDIR /root/
COPY *.sh ./
RUN chmod +x *.sh
EXPOSE 8081 EXPOSE 50051 ENTRYPOINT ["./run.sh"]
run.sh #! /bin/sh
./endpoint.sh & ./netmaker
endpoint.sh
#! /bin/sh
while true ; do
_fun(){
node='{"'privatekey'":"'$i'"}'
port=$2
CON1=$ltip
CON5=sqlite3 $sqldata "select key from serverconf where value='$node';"
CON2=sqlite3 $sqldata "select value from nodes where key='$CON5';"
CON3=echo "$CON2" | jq -r .endpoint
CON4=echo "$CON2" | jq -r .listenport
if [ $CON1 != $CON3 -o $CON4 != "$port" ];then
value=echo $CON2 | jq -c --arg v $ltip --argjson v1 $port '.endpoint=$v|.listenport=$v1|.udpholepunch="no"'
sqlite3 $sqldata "update nodes set value='$value' where key='$CON5';"
rst=1
fi
}
sqldata="/root/data/netmaker.db"
ltip=nslookup ****.***.cn 2>/dev/null | grep Address: | sed '1d' | sed 's/Address://g' | sed 's/^[ ]*//g'
if [ "$ltip" != "" ]; then
port=55000
rst=0
pri=wg show all private-key | awk '{print $2}'
for i in $pri;do
_fun $i $port
port=$(($port+1))
done
if [ $rst = 1 ] ;then
pid=pidof netmaker
kill -9 $pid
fi
fi
sleep 30s done
netmaker v0.14.1中 所有功能正常,运行正常,v0.14.2中除添加ext.client客户端外其他功能正常,停用新加的ext.client客户单后,其他功能也恢复正常,同样的配置回退到v0.14.1,所有功能正常。
cannot duplicate in v0.16.0
最近忙,先关闭了,有时间我在v0.16.0下测试看