재미로 보는 글

시놀로지에서 도커로 서버 운영시 IP정보

귀신이보인다 2022. 11. 14. 12:17
728x90
반응형

시놀로지의 도커 를 이용하여 각종 서비스를 할수가 있습니다.

헌데 일부 서비스중 접속자의 IP가 누락됩니다.

바로 내부IP 에서 접속을 하였을때에는 127.0.0.1 로 접속 하였다고 로그가 찍히고

외부IP 에서 접속을 하였을때에는 172.x.x.x 로 접속 하였다고 로그가 찍힘니다.

도커 내부 IP가 찍혀서 로그가 나오게 됩니다.

라즈베리파이에서는 이런 현상이 없었습니다.

헌데 이번 서버 이전후 이런 현상을 확인하였고 오늘에서야 해결을 하였습니다.

#!/bin/bash
currentAttempt=0
totalAttempts=10
delay=15

while [ $currentAttempt -lt $totalAttempts ]
do
	currentAttempt=$(( $currentAttempt + 1 ))
	
	echo "Attempt $currentAttempt of $totalAttempts..."
	
	result=$(iptables-save)
	#위 않될때 아래걸로
	if [[ $result =~ "-A DEFAULT_FORWARD -i docker0 -o docker0 -j ACCEPT" ]]; then
	#if [[ $result =~ "-A DOCKER -i docker0 -j RETURN" ]]; then
		echo "Docker rules found! Modifying..."
		iptables -t nat -A PREROUTING ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
		iptables -t nat -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
		#iptables -t nat -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
		#iptables -t nat -A PREROUTING -m addrtype --dst-type LOCAL ! --dst 127.0.0.0/8 -j DOCKER
		echo "Done!"
		
		break
	fi
	
	echo "Docker rules not found! Sleeping for $delay seconds..."
	
	sleep $delay
done

원본

 

Script to fix Docker iptables on Synology NAS

Script to fix Docker iptables on Synology NAS. GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

위 스크립트를 시놀로지 작업스케줄러에 등록하면 된다고 합니다.

전 위의 스크립트를 적용시켜서 사용합니다. 

# 은 위의 스크립트가 적용이 않되시면 앞에 #을 지우고 #을 넣고 실행하시면 됩니다.

728x90
반응형