Simple question, difficult solution. I can’t work it out. I have a server at home with a site-to-site VPN to a server in the cloud. The server in the cloud has a public IP.

I want people to access server in the cloud and it should forward traffic through the VPN. I have tried this and it works. I’ve tried with nginx streams, frp and also HAProxy. They all work, but, in the server at home logs I can only see that people are connecting from the site-to-site VPN, not their actual source IP.

Is there any solution (program/Docker image) that will take a port, forward it to another host (or maybe another program listening on the host) that then modifies the traffic to contain the real source IP. The whole idea is that in the server logs I want to see people’s real IP addresses, not the server in the cloud private VPN IP.

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

    Thank you so much for the quick and detailed reply, appreciate it!

    Done all of the iptables stuff, just trying to change the default gateway on the server at home now:

    network:
      version: 2
      renderer: networkd
      ethernets:
        eth0:
          dhcp4: true
          routes:
            - to: 0.0.0.0/0
              via: <vps public ip>
    

    Does the above netplan yaml look right? When it’s applied, I can’t access the internet or even the VPS public IP.

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

      Do I need to specify to forward VPN traffic through my router and then traffic to 0.0.0.0/0 through the VPN?

      • Admiral Patrick@dubvee.org
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        See my other response.

        You may need to move the logic from netplan to a script that gets executed when the VPN is brought up. Otherwise, it will likely fail since it won’t have the VPN tunnel interface up to route traffic to.