11.jpg.png

 

TCP 프록시 쓰고있는데 유저들 아이피가 전부 한아이피로 고정이되어서 표기가됩니다. 각기다른 ip로 표기가 되는 방법을 알려주세요.

  • Lv19

    마인크래프트 서버 입장에서는 nginx에서 연결이 오니 nginx 아이피로 표시될수밖에 없겠죠

    nginx는 언제까지나 웹서버지 마인크래프트 프록시가 아니므로 어쩔수 없습니다.

  • Lv19 ? Lv0
    nginx가 언제부터 only웹서버로바뀐거죠? TCP도지원합니다.
  • ? Lv0 Lv19
    그걸 제가 몰라서 그랬을까요? nginx 자체가 "웹서버"가 주 기능이지 tcp 스트림은 보조 기능일 뿐입니다.
  • Lv19 ? Lv0
    제 질문의 요지는 TCP 송수신은 잘됩니다 게임서버 잘돌아가구요. 다만 IP가 한 아이피로 고정이된다라는점의 문제가생겼고, 그 문제를 질문을 드린겁니다. 근데 nginx 가 웹서버니 마인크래프트 프록시가 아니니 이런말이 왜나오는지를 모르겠습니다..
  • ? Lv0 Lv19
    그러니까 결론은 "내가 원하는 답이 아니다"네요. 알겠습니다.
    누누히 반복해서 적지만 답변해주시는분들은 전부 자원봉사 차원에서 해주시는겁니다. 최소한의 존중도 없이 답만 쏙 받고 싶어하는 태도를 계속 보이신다면 결국 아무도 답변해주지 않을겁니다.
  • ? Lv6

    https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt
    https://docs.nginx.com/nginx/admin-guide/load-balancer/using-proxy-protocol/

    tcp패킷 앞에다가 PROXY protocol header라고 프록시 정보를 붙일 수 있는데, 해당 헤더 정보를 붙여서 마인크래프트 서버로 보내시면 될거에요.
    물론, 마인크래프트 서버에서 PROXY protocol header정보가 붙은 tcp 패킷을 처리할 수 있도록 수정하지 않으면 작동조차 하지 않을겁니다.

  • ? Lv6 ? Lv0
    헤더정보를붙에서 서버로보냅니다. 마인크래프트서버에서 어떤식으로 처리를해줘야하는지에과정을 여쭙는거예요
  • Lv37

    같은 질문을 하셨던 것 같은데요.

    https://xetown.com/questions/1759969

     

    TCP 서버로 전송하는 패킷에 실제 IP를 추가하고, TCP 서버 쪽에서 그 패킷을 뜯어서 IP를 추출하도록 수정해야 한다는 것까지 진도 나갔던 것으로 기억합니다. 윗분 댓글과 기본적으로 똑같은 내용인데, 그 후에 무엇을 시도해 보셨고 어디서 막혔는지 자세히 써주시지 않으면 이번 질문도 그냥 흐지부지될 확률이 99%라고 봅니다...

  • Lv37 ? Lv0
    통칭 마인크래프트서버 팩소스는수정이불가합니다. 소스안건드리고 클플아이피가 원래유저ip가 표기되는 호스팅이있더라구요 nginx를쓰는거같은데 그방법을 알고싶었던거예요 프록시 프로토콜 v1은적용되어있구요
  • ? Lv0 Lv37
    실제로 써보지는 않았지만, minecraft proxy protocol이라고 검색해 보면 프록시 프로토콜 v1을 지원하는 mod가 있는 것 같습니다. 이전 질문에서는 마인크래프트라고 언급하지 않으셔서...
  • Lv37 ? Lv0
    질문의 방향이 이상한곳으로 빠지는거같은데, 클플안쓰고 그냥 nginx 를 쓰더라도 저렇게 표기가된다라는거예요 8000포트를 타면 모든 아이피가 127.0.0.1로 DB에도 그렇고 로그상으로 다 그렇게 표기됩니다. 하지만 직접 10000포트를 타면 정상적으로 아이피들이 표기가되구요... 혹시 이해하셨을까요 ..?
  • Lv37 ? Lv0
    저는 8000포트를 타도 정상적으로 유저들의 아이피들이 표기가되길원합니다.
  • Lv37 ? Lv0
    ps. upstream 구문 밑에 아이피를 127.0.0.1로하면 모든 아이피들이 127.0.0.1로되고 서버컴 아이피로하면 서버컴아이피로 모든 아이피가 서버컴아이피로 표기됩니다. 저는 이렇게말고 유저들의 각각 아이피들이 표기되길원합니다.
  • ? Lv0 Lv19

    왜냐면 그렇게 질문을 안하셨으니까요. 질문 어디에 nginx만 써도 아이피가 제대로 표시되지 않는다는 내용이 있죠?
    그리고 답변해주시는분들은 자발적으로 봉사차원에서 댓글다시는거지 고객센터같은게 아닙니다.

  • ? Lv0 Lv37

    네, 클플이든 nginx든 마인크래프트 앞에 뭔가를 붙이면 그 앞에 붙인 프로그램의 IP가 보입니다. 모든 프로그램은 자신과 직접 통신하는 상대방의 IP만 볼 수 있기 때문입니다.

    이 문제를 해결하기 위해서는 1) 앞에 붙인 프로그램(클플이나 nginx)에서 프록시 프로토콜 v1을 사용하여 실제 사용자의 IP 정보를 전달해 주어야 하고, 2) 마인크래프트 쪽에서도 프록시 프로토콜 v1로 전달받은 IP를 인식하는 mod를 설치해야 합니다. 양쪽이 손발이 맞아야 한다는 얘기죠.

    그런데 nginx 쪽에서 무엇을 해보셨는지, 마인크래프트 쪽에서는 무엇을 해보셨는지, 무엇이 안 되는지 전혀 언급하지 않고 무작정 IP가 보이게 해달라고 질문을 쓰셨으니 쓸만한 답이 나오지 않는 것이 당연하죠. 위에 쓰신 원글을 보세요. 마인크래프트라는 말조차 하지 않으셔서, 오른쪽 스샷에 나오는 minecraft라는 단어를 가지고 유추해야 하는 상황입니다. 어떤 프로그램인지도 말하지 않고 뭘 어떻게 수정하는 법을 알려달라는 건가요? 여기가 점집인가요?

    아무튼, nginx 쪽만 봐서는 절대 해결할 수 없는 문제이고 마인크래프트 쪽도 손을 보셔야 합니다. 이상입니다.

  • Lv8
    햐 yjsoft 님 기진곰님 너무 천사시네요. 전공이 아니실텐데..

    우선 nginx 말고 haproxy 로 시도해보시기 바랍니다.

    어떻게 하는지는 chatgpt 와 구글링 통해서 해보시길 바랍니다.
  • Lv9

    질문이 무슨 질문인지 알아 맞춰야 하니 이거 원,...
    질문자는 뭐가 잘못인지도 모르는 것 같고,..
    사과도 미안함도 없고,..

     

    댓글들을 통해 질문자께서 궁금해 하는 부분이 좁혀지는 것이 보이지 않으신가요?

    그게 고맙지 않으세요?

     

    질문에 이미 들어갔어야 할 내용들이에요.

    댓글들 쭉 달아주시는게 시간이 남아 돌아서 하는게 아니라구요. 

    정신 좀 차리세요.

  • ? Lv9
    송동우님이 떠오르네요.