사용자 개요: 마지막 IP 주소 172.17.0.1


안녕하세요, 아쉬운 점 중 하나는 IP 주소 관련해서 충돌이 있는 것 같습니다. 공식 가이드에 따르면 이것이 유일한 지원되는 셀프 호스팅 버전이라고 해서 설명에 따라 포럼을 설치했습니다. 그래서 거의 모든 기능이 잘 작동하기를 바랐고, 실제로 대부분은 잘 작동합니다. 이 부분만 예외입니다.

모든 사용자가 172.17.x.x IP 주소를 받게 됩니다. :frowning: Docker 시스템과 관련이 있을 것 같습니다.

Docker 네트워크 구성에 영향을 미칠 수 있었던 유일한 변경 사항은 새로운 Docker 포럼을 설정한 후 다음과 같은 변경 사항을 수행한 것입니다:

  1. pico /etc/docker/daemon.json
  2. 삽입
{
  "iptables": false
}
  1. sudo systemctl restart docker

(포럼 데이터를 구성하거나 복원할 때, 위 단계를 수행하지 않으면 Docker가 무시하는 제 공개 IP 주소만 허용하도록 Debian 호스트 방화벽(ufw)으로 80/443 포트 접근을 제어하고 싶기 때문입니다.

하지만 이 설정이 사용자의 등록/접근 시 기록되는 IP 주소에 영향을 미칠 것이라고는 상상할 수 없습니다.

P.S: 개발자가 아니라 일반 사용자라도, 셀프 호스팅된 Docker 인스턴스를 사용하고 계신다면 사용자의 서로 다른 공개 IP 주소를 볼 수 있는지 알려주시면 제가 알고 싶습니다. :slight_smile:

이미 다음 게시물을 확인해 보았습니다:

하지만 제 생각에는 프록시를 사용하지 않는 것 같습니다.
docker 설치 스크립트를 실행하기 전에 확인한 첫 번째 사항입니다:
제 Debian VPS 호스트에는 apache나 nginx가 설치되어 있지 않습니다. docker proxy/nginx 웹서버와 관련이 있다는 믿음을 떨칠 수가 없습니다. 확인해 볼 수 있는 아이디어가 있다면 감사하겠습니다 :slight_smile:

수정:
제 호스트의 IP 구성입니다. 172.17.x.x IP 주소가 docker 이미지와 어떻게든 관련이 있는 것 같습니다:

user@linux-host-system:~$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 4a:x:x:x:x:02 brd ff:ff:ff:ff:ff:ff
    altname enp0s18
    inet <my-public-ipv4-adress>/24 brd 37.x.x.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 2a0e:x:x:x::1/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::x:x:x:x/64 scope link 
       valid_lft forever preferred_lft forever
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:x:x:x:xx:d7 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::x:x:x:x/64 scope link 
       valid_lft forever preferred_lft forever
101: veth90d312b@if100: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default 
    link/ether 32:x:x:x:x:75 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::3002:x:x:3775/64 scope link 
       valid_lft forever preferred_lft forever

해당 변경 사항을 하지 않는다면 문제가 발생하지 않습니다.

해당 작업을 수행하려면 Discourse에 올바른 IP 주소를 전달하기 위해 저보다 더 많은 Docker 지식을 갖추어야 합니다.

templates/cloudflare.template.yml 파일에서 힌트를 얻을 수 있습니다. set_real_ip_from이라고 적힌 부분이 아마도 찾고 있는 내용일 것입니다.

@pfaffman 아이디어를 제안해 주셔서 감사합니다!

결국 제가 어딘가에서 해결책을 이미 올렸습니다:
/etc/docker/daemon.json 파일을 삭제하고 systemctl restart docker를 실행한 뒤 잠시 기다리니 포럼이 다시 로드되었고, 내 사용자 개요에 현재 정확한 공용 IP 주소가 표시되었습니다. :smile: