Hello networking community! I need a setup where I can forward my server from my private network to another network which has a public ip to forward the server itself to the internet. When a client connects to the server, traffic should get forwarded to my private network somehow. I know that’s possible, but don’t know how I can achive that.

Came back after a year, got some knowledge. I achieved this setup using WireGuard (+ PersistentKeepAlive) and custom iptables rules on an old laptop with barebones arch install. By masquerading, we loose the source ip when forwarding, and to preserve it we need a L2 tunnel (L2GRE).

  • koopatroopa@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    1 year ago

    Can you draw a diagram? It kind of sounds like you need either NAT or VPN or a combination of the two.

      • BloP@lemmy.worldOP
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        I don’t think double NAT is my case. My ISP doesn’t provide me with a public IP.

      • koopatroopa@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        I agree with the double nat on the adsl side. If you have a private IP and still have internet it’s behind a NAT. You need a public IP on the top right. When you say forward traffic what type of traffic is being sent? Do you want it relayed or are you ingesting it and manipulating it in some way? I guess what is the server in top left doing with it before it goes to game server at top right? A simple route would pass this traffic from server to game server at the routing level.

        • BloP@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          edit-2
          1 year ago

          I cannot acquire a public ip on the top right, it is nearly impossible. Forwarded traffic will mostly be straight TCP and UDP traffic. The server at the top left must only forward all traffics to top right network somehow. It should not modify anything. I just need to make use of that public ip from my private network.

  • Brunette6256@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 year ago

    Tailscale to connect everything. Then in the public server use a reverse proxy (nginx proxy manager or swag) and point it to the tailscale IP of the server you want out.

    • BloP@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      Thanks for the reply! I will research it a bit, I still lack tons of knowledge about networking, yet still learning.

      • orangeboats@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 year ago

        The above comment is right, use Tailscale or something similar. If you are interested in knowing more, search up “NAT transversal”.

        But my experience suggests that those solutions may introduce quite a bit of latency, which is probably not desirable when you are running a game server. If you have IPv6, take advantage of it and let the ADSL2 router connect to your forward server using IPv6.

        • BloP@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          edit-2
          1 year ago

          So, I can receive incoming traffic using IPv6 despite I don’t even have a public ip? (nv my ISP doesn’t support IPv6)

          • orangeboats@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            ·
            1 year ago

            If you have IPv6 connection and the address starts with “2”, then your public address is the IPv6 address.

            • BloP@lemmy.worldOP
              link
              fedilink
              English
              arrow-up
              1
              ·
              edit-2
              1 year ago

              Nope it just doesn’t support it. I tinkered a bit in router config enabling IPv4/IPv6. But didn’t get IPv6 address from ISP. Still using ADSL2+