I want to move away from Cloudflare tunnels, so I rented a cheap VPS from Hetzner and tried to follow this guide. Unfortunately, the WireGuard setup didn’t work. I’m trying to forward all traffic from the VPS to my homeserver and vice versa. Are there any other ways to solve this issue?

VPS Info:

OS: Debian 12

Architecture: ARM64 / aarch64

RAM: 4 GB

Traffic: 20 TB

    • moonpiedumplings@programming.dev
      link
      fedilink
      English
      arrow-up
      5
      ·
      edit-2
      8 months ago

      I use this too, and it should be noted that this does not require wireguard or any VPN solution. Rathole can be served publicly, allowing a machine behind a NAT or firewall to connect.

      • towerful@programming.dev
        link
        fedilink
        English
        arrow-up
        1
        ·
        8 months ago

        I like that its really simple and obvious, with a good confif file structure.
        Server forwards a port to a client.
        Client forwards that to an ip:port.

        If you need to know the real IP, its up to you to run reverse-proxies that support PROXY TCP headers or insert x-forward-for, or whatever.
        Rathole does its thing, only its thing, and does it well.

  • Kekin@lemy.lol
    link
    fedilink
    English
    arrow-up
    6
    ·
    8 months ago

    I managed this by using tailscale, with a kind of weird setup I think, but it just works.

    I have tailscale on the VPS and my local server, let’s say its tailscale name is potatoserver

    Then with Caddy on the VPS i have something like:

    mywebsite.com { reverse_proxy potatoserver:port }

    And so mywebsite.com is accessible on the clearnet through the VPS

    Though given you’re getting rid of cloudflare tunnles I don’t know if you’d want to get into Tailscale. There’s Headscale too but I haven’t worked with it so I can’t comment

  • MrMcGasion@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    8 months ago

    Not sure exactly how good this would work for your use case of all traffic, but I use autossh and ssh reverse tunneling to forward a few local ports/services from my local machine to my VPS, where I can then proxy those ports in nginx or apache on the VPS. It might take a bit of extra configuration to go this route, but it’s been reliable for years for me. Wireguard is probably the “newer, right way” to do what I’m doing, but personally I find using ssh tunnels a bit simpler to wrap my head around and manage.

    Technically wireguard would have a touch less latency, but most of the latency will be due to the round trip distance between you and your VPS and the difference in protocols is comparatively negligible.

  • Serra@feddit.de
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    8 months ago

    I had a similar problem like you. My provider only gives me a public IPv6 but no public IPv4. Im using a VPS with an IPv4 with jool to set up SIIT-DC https://nicmx.github.io/Jool/en/siit-dc.html

    This converts all IPv4 traffic arriving at the VPS to IPv6 traffic which gets then directly routed to my homeserver.

    Not sure if this setup would work for you. This is not a viable solution if you are completly behind a CGNAT without even a public IPv6.

    Pro:

    • Works without any sensitive Data on the VPS (SSl certificates/passwords…)
    • Works for all IP based traffic (TCP,UDP,ICMP)
    • The original source IPv4 can be restored by the homeserver Contra:
    • AFAIK you cannot choose to only forward some TCP ports. Everything gets redirected.
    • You cannot access the VPS via IPv4 anymore since it gets redirected to your homeserver. (I only access my VPS via IPv6)
    • No (additional) encryption. (This is no problem for me since all my traffic is already e2e encrypted)
    • AlexPewMaster@lemmy.zipOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      8 months ago

      Not really, pinging my homeserver via the VPS returns:

      PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
      From 10.0.0.1 icmp_seq=1 Destination Host Unreachable
      ping: sendmsg: Destination address required
      From 10.0.0.1 icmp_seq=2 Destination Host Unreachable
      ping: sendmsg: Destination address required
      ^C
      --- 10.0.0.2 ping statistics ---
      2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1019ms
      
      • Possibly linux@lemmy.zip
        link
        fedilink
        English
        arrow-up
        2
        ·
        8 months ago

        Forget iptables. You have a broken Wireguard setup. Did you verify that you have the proper keys and that Wireguard is allowed though the firewall?

        • AlexPewMaster@lemmy.zipOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          8 months ago

          I have no idea how to properly manage the firewall with Hetzner. I’ve opened the ports on the Hetzner management page and I ran several iptables commands to allow traffic from those ports. Still doesn’t work. This is weird!

          • ErwinLottemann@feddit.de
            link
            fedilink
            English
            arrow-up
            1
            ·
            8 months ago

            for testing just set all chains to allow and flush all the rules. then ping the wireguard ip of your vps from your home server (the one where wireguard is configured). this should work and should tell the vps where it can find the other wireguard endpoint. pinging your home server from the vps should work now. if this makes the connection work properly look into the wireguard keepalive settings and make sure that your home server regulary announces itself to your vps.
            after that reload the netfilter/iptables on your vps.

            you don’t need a firewall management tool, as long as there are no services running on the public interface there are no open ports that would need filtering.

            • AlexPewMaster@lemmy.zipOP
              link
              fedilink
              English
              arrow-up
              1
              ·
              8 months ago

              Does iptables count as a firewall? You said that I should “forget” iptables. Is it that bad? It came preinstalled on the VPS. Should I switch? And if so, how?

              • Possibly linux@lemmy.zip
                link
                fedilink
                English
                arrow-up
                1
                ·
                8 months ago

                Iptables is the low level mechanism that handles network routing. Firewall software just takes it up a layer so you can manage it without crazy long commands

                • AlexPewMaster@lemmy.zipOP
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  edit-2
                  8 months ago

                  Alright, sounds good. What firewall are you recommending me to use? I would like to use a firewall that’s easy to manage.

                  Edit: I went with ufw.

  • Decronym@lemmy.decronym.xyzB
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    edit-2
    8 months ago

    Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:

    Fewer Letters More Letters
    CF CloudFlare
    CGNAT Carrier-Grade NAT
    DNS Domain Name Service/System
    HTTP Hypertext Transfer Protocol, the Web
    IP Internet Protocol
    NAT Network Address Translation
    Plex Brand of media server package
    SSH Secure Shell for remote terminal access
    SSL Secure Sockets Layer, for transparent encryption
    TCP Transmission Control Protocol, most often over IP
    TLS Transport Layer Security, supersedes SSL
    UDP User Datagram Protocol, for real-time communications
    VPN Virtual Private Network
    VPS Virtual Private Server (opposed to shared hosting)
    nginx Popular HTTP server

    [Thread #635 for this sub, first seen 27th Mar 2024, 18:15] [FAQ] [Full list] [Contact] [Source code]

  • Kokesh@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    8 months ago

    I did this. Works flawlessly for half year now. I have x86 thin client at home running all my stuff, it creates tunnel to my VPS (I use Free tier Oracle VPS - yes, it is a shit company, I know, no need to let me know again in the comments). Works like a charm. This GitHub repo has automated installer for Oracle, Amazon,… https://github.com/mochman/Bypass_CGNAT/wiki/Oracle-Cloud-(Automatic-Installer-Script) - it installs and configures Wireguard on both server (VPS) and client (your home machine).

  • cooopsspace@infosec.pub
    link
    fedilink
    English
    arrow-up
    1
    ·
    8 months ago

    Yeah you probably need a second IP address on the VPS though.

    I open a wire guard tunnel from home to the VPS and then tunnel an Nginx ingress down the VPS.