SW/ 개발팁 / 추천프로그램, 꿀팁 공유
  • 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
질문

시놀로지에서 도커로 nginx 질문입니다

퉷끼 134

0

9

안녕하세요.

시놀로지 (DSM7.2) 에서 docker으로 npm, guacamole, wordpress 등을 사용하고 있는데요,

문제점은 real ip를 받아오지 못한다는 것입니다.

 

로그기록은 전부 도커ip인 172.17.0.1 으로만 찍힙니다.

guacamole 로그

mstsc_VzYjR0EAtn.png.jpg

 

스샷은 없지만 wordpress도 마찬가지이구요.

 

 

참고해서 시도해 본 것은

 

 

 

 

 

 

그리고 이 글에서

 

 

댓글 중에

docker으로 nginx를 올려 다시 구축해보라는 조언이 있네요..

 

제 경우가 synology 기본 nginx를 사용 하는 것 같고, 그래서 iptable이란것도 없고

(이 또한 4년 이상 캐캐묵은 문제같은데 synology는 손을 안쓰나보네요)

 

nginx를 도커로 올릴 수 있는지도 몰랐어서

혹시 nginx를 도커로 올리면 real ip를 받아오는게 가능할까요?

 

현 상태 (시놀의 nginx)에서 real ip만 받아올 수 있으면 좋겠지만

일단 지금의 방법들로는 안되니까 

도커로 nginx를 올려서 다시 wordpress나 guacamole를 셋팅하면 real ip를 제대로 얻을 수 있는지가 궁금한데

시놀용 nginx 도커이미지 같은걸로 해야하면 그게 그거 아닌가 싶기도 해서 시작하기 막막합니다ㅠ

 

신고공유스크랩
9
profile image 1등
너굴맨봇 2024.02.29. 12:39
안녕하세요, 퉷끼님.😊
 

좋은답변을 받기위해서는 좋은 질문이 필요합니다.

유의할점⚠️

  • 예의를 지켜주세요. 답변자는 답변을 할 의무는 없습니다.
  • 질문에 대한 대부분의 답은 검색으로 찾아보실 수 있습니다.
  • 답변자가 답변을 하면서 대개 많은 경우는 다시 질문을 하는 경우가 많이 있습니다.
    • (질문의 대한 정보가 부족합니다. ~일 경우 결과물이 어떻게 됩니까? 등등)

질문방법🙏

자신의 상황을 최대한 자세히 설명해주세요.

상황이 정확하고 많을 수록 답변의 정확도가 올라갑니다. 

ex) ex) 헤놀로지라면 메인보드 모델 칩셋정보, CPU, 사용한 DSM 버전, 모델, 부수적인 추가 컨트롤러 나 랜카드 등과 어떠한 로더의 이미지를 사용했는지.(arpl-i18n, mshell), 어떤 버전을 사용했는지, 문제가있다면 어떠한것인지 스크린샷을 동반하고 에러의 경우 에러로그를 출력해서 주시면 좋습니다.

*가능하면 최신버전 OS/SW를 이용해주세요

 

답변에대한 피드백을 주세요.

정보가 질문에 모두 담겨있지않다면 대부분의 답변이 다른정보를 요구합니다.

이러한 답변에 대해 명확한 피드백을 주시면 도움이 됩니다.

퉷끼 글쓴이 2024.03.01. 15:58
honey720
감사합니다. 해당 댓글의 내용을 어디에서 수정해야하는지 모르겠습니다.
일단 /etc/enginx/nginx.conf 의 내용을 수정해봤지만 재부팅하면 초기화됩니다.
좀 더 알아봐야 할 것 같습니다..
퉷끼 글쓴이 2024.03.01. 15:59
훔친수건
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DEFAULT_PREROUTING all -- anywhere anywhere

Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DEFAULT_OUTPUT all -- anywhere anywhere

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
DEFAULT_POSTROUTING all -- anywhere anywhere

Chain DEFAULT_OUTPUT (1 references)
target prot opt source destination
DOCKER all -- anywhere !127.0.0.0/8 ADDRTYPE match dst -type LOCAL

Chain DEFAULT_POSTROUTING (1 references)
target prot opt source destination
MASQUERADE all -- 172.17.0.0/16 anywhere
MASQUERADE all -- 172.25.0.0/16 anywhere
MASQUERADE all -- 172.19.0.0/16 anywhere
MASQUERADE all -- 172.20.0.0/16 anywhere
MASQUERADE all -- 192.168.96.0/20 anywhere
MASQUERADE all -- 172.18.0.0/16 anywhere
MASQUERADE all -- 192.168.16.0/20 anywhere
MASQUERADE tcp -- 172.17.0.2 172.17.0.2 tcp dpt:tproxy
MASQUERADE tcp -- 172.17.0.3 172.17.0.3 tcp dpt:tproxy
MASQUERADE tcp -- 172.17.0.4 172.17.0.4 tcp dpt:9090
MASQUERADE tcp -- 172.25.0.4 172.25.0.4 tcp dpt:https
MASQUERADE tcp -- 172.17.0.5 172.17.0.5 tcp dpt:9000
MASQUERADE tcp -- 172.17.0.5 172.17.0.5 tcp dpt:8000
MASQUERADE tcp -- 172.17.0.6 172.17.0.6 tcp dpt:tproxy
MASQUERADE tcp -- 172.17.0.7 172.17.0.7 tcp dpt:4533
MASQUERADE tcp -- 172.17.0.8 172.17.0.8 tcp dpt:tproxy
MASQUERADE tcp -- 172.17.0.9 172.17.0.9 tcp dpt:tproxy
MASQUERADE tcp -- 172.17.0.10 172.17.0.10 tcp dpt:9865
MASQUERADE tcp -- 172.17.0.10 172.17.0.10 tcp dpt:6881
MASQUERADE udp -- 172.17.0.10 172.17.0.10 udp dpt:6881
MASQUERADE tcp -- 172.17.0.11 172.17.0.11 tcp dpt:tproxy
MASQUERADE tcp -- 172.17.0.12 172.17.0.12 tcp dpt:http-alt
MASQUERADE tcp -- 172.17.0.13 172.17.0.13 tcp dpt:4848
MASQUERADE tcp -- 172.18.0.3 172.18.0.3 tcp dpt:8181
MASQUERADE tcp -- 172.18.0.3 172.18.0.3 tcp dpt:http-alt
MASQUERADE tcp -- 172.18.0.3 172.18.0.3 tcp dpt:4443
MASQUERADE tcp -- 172.19.0.2 172.19.0.2 tcp dpt:4020
MASQUERADE tcp -- 192.168.96.2 192.168.96.2 tcp dpt:http
MASQUERADE tcp -- 192.168.96.3 192.168.96.3 tcp dpt:http
MASQUERADE tcp -- 192.168.16.2 192.168.16.2 tcp dpt:9090

Chain DEFAULT_PREROUTING (1 references)
target prot opt source destination
DOCKER all -- anywhere anywhere ADDRTYPE match dst -type LOCAL
DOCKER all -- anywhere !127.0.0.0/8 ADDRTYPE match dst -type LOCAL

Chain DOCKER (3 references)
target prot opt source destination
RETURN all -- anywhere anywhere
RETURN all -- anywhere anywhere
RETURN all -- anywhere anywhere
RETURN all -- anywhere anywhere
RETURN all -- anywhere anywhere
RETURN all -- anywhere anywhere
RETURN all -- anywhere anywhere
DNAT tcp -- anywhere anywhere tcp dpt:5996 to:17 2.17.0.2:8081
DNAT tcp -- anywhere anywhere tcp dpt:5995 to:17 2.17.0.3:8081
DNAT tcp -- anywhere anywhere tcp dpt:9090 to:17 2.17.0.4:9090
DNAT tcp -- anywhere anywhere tcp dpt:8562 to:17 2.25.0.4:443
DNAT tcp -- anywhere anywhere tcp dpt:9000 to:17 2.17.0.5:9000
DNAT tcp -- anywhere anywhere tcp dpt:8000 to:17 2.17.0.5:8000
DNAT tcp -- anywhere anywhere tcp dpt:5994 to:17 2.17.0.6:8081
DNAT tcp -- anywhere anywhere tcp dpt:4533 to:17 2.17.0.7:4533
DNAT tcp -- anywhere anywhere tcp dpt:5993 to:17 2.17.0.8:8081
DNAT tcp -- anywhere anywhere tcp dpt:5992 to:17 2.17.0.9:8081
DNAT tcp -- anywhere anywhere tcp dpt:9865 to:17 2.17.0.10:9865
DNAT tcp -- anywhere anywhere tcp dpt:6881 to:17 2.17.0.10:6881
DNAT udp -- anywhere anywhere udp dpt:6881 to:17 2.17.0.10:6881
DNAT tcp -- anywhere anywhere tcp dpt:5991 to:17 2.17.0.11:8081
DNAT tcp -- anywhere anywhere tcp dpt:9959 to:17 2.17.0.12:8080
DNAT tcp -- anywhere anywhere tcp dpt:4848 to:17 2.17.0.13:4848
DNAT tcp -- anywhere anywhere tcp dpt:8181 to:17 2.18.0.3:8181
DNAT tcp -- anywhere anywhere tcp dpt:http-alt t o:172.18.0.3:8080
DNAT tcp -- anywhere anywhere tcp dpt:4443 to:17 2.18.0.3:4443
DNAT tcp -- anywhere anywhere tcp dpt:4080 to:17 2.19.0.2:4020
DNAT tcp -- anywhere anywhere tcp dpt:8282 to:19 2.168.96.2:80
DNAT tcp -- anywhere anywhere tcp dpt:2500 to:19 2.168.96.3:80
DNAT tcp -- anywhere anywhere tcp dpt:9495 to:19 2.168.16.2:9090
root@ds1019:~#
훔친수건 2024.03.01. 18:27
퉷끼

iptables는 문제 없어 보이네요.
과카몰리나 워드프레스가 혹시 시놀로지 역방향 프록시를 통해서 접속되나요?

시놀로지 역방향 프록시말고 npm으로 설정해 보세요.

시놀 역방향 프록시는 x-forwarded-for 헤더 설정이 좀 번거로울 겁니다.

퉷끼 글쓴이 2024.03.04. 08:37
훔친수건

npm을 사용하고 있습니다. 인터넷에 나와있는것들 하나씩 해봤는데 아직 성공 못했습니다ㅋ 더 알아봐야겠습니다ㅠ

 

아~ 다시 보니까 DSM의 로그센터에는 real ip를 제대로 내부/ 외부 ip 찍히는 것 같습니다.

(이전에는 172.18.x.x가 찍혔구요)

dsm 안에서 [신뢰할 수 있는 프록시] 에 추가한건 dsm 한정이었군요.

아직 이해가 안가는건 dsm도 DDNS로는 npm을 통하는데 dsm만 정상ip찍히는건 왜인지..

다른 도커들도 npm을 통하니 이쪽을 어떻게 해보면 될 것 같아보이긴 합니다만ㅜ

일단 dsm은 되니까 기분이 좋네요ㅎ 감사합니다!

꿈의세계 2024.02.29. 17:31

시놀로지 7.2에서 도커 올렸을 때 아이피가 도커 아이피로 만 찍히는 것을 저도 이것 때문에 수없이 고생 했습니다.

그런데 이미지 여기사이트에 올라와 있어서 이것대로 했더니 정상적으로 외부 아이피를 잡아 주고 있었습니다.

꼭 아래 사항대로 하신 후 서버 재부팅 하시고 나서 확인 하시면 정상적으로 외부 아피를 물고 올 것입니다.

단. 설치 되어 있는 같은 네트워크 단에서는 그 네트워크에 아이피가 찍힐 것이고 설치 되어 있는 장소가 아닌 다른 곳에서 하시게 되면 최상단 외부 아피를 가져오게 되어 있습니다.

그리고 아래 구문은 수정 없이 그냥 넣으시면 됩니다.

이런 증상은 대체적으로 공유기를 사용 하고 있기 때문에 공유기에 물려 있는 시놀이 아이피를 192대로 잡고 나서 다시 도커에서는 도커의 IP인 172 이런식으로 되기 때문에 2번에 걸쳐서 포트포워딩이 이루어져서 안되는 것입니다.

참고 하시면 될 것 같습니다.
제어판-> 작업스케줄러->생성->트리거된 작업->
사용자정의 스크립트->까지 들어간후
작업명 입력
사용자 : root 입력
이벤트 : 부트업

이렇게한후 확인
사용자 정의 스크립트에 아래와 같이 넣으시고 재부팅 하시면 아이피 정상적으로 나올 것입니다.
#!/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 DOCKER -i docker0 -j RETURN" ]]; then
echo "Docker rules found! Modifying..."
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

퉷끼 글쓴이 2024.03.01. 16:09
꿈의세계
이미 시도해본 방법인데, 꿈의세계님은 되는데 전 안된다면 아마도 저와 셋팅한 구성 부터가 다르지 않을까 싶습니다. 하면 할수록 어렵네요ㅠ 감사합니다.

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story