Need help for setting up a VPN project
Need help for setting up a VPN project
Hey fellow selfhosters! Hope you're doing well, today I would like to have some help to know how I could make this project a reality. So I would like to give to friends and family a VPN access to my homelab (probably with Wireguard).
I also have a VPS in the cloud and I can VPN to it to anonimize outgoing connections.
So basically in the case that a friend ask a local service I want the request to come to my home with his VPN connection and then comeback directly from my home.
In the case that a friend request google[dot]com I want the request to come to my house and then go trough the VPS to make the request from it and not from my home. Then comeback from google to the VPS to my home to the client.
The principal issue I have is how can I route my services directly trough my home without going into the regular WWW, but make all other requests to go trough the VPS and to the WWW
If you need some more explanations or infos, feel free to ask.
PS : I also self host PiHole so all the DNS requests should go trough it (and maybe I could use it to route requests where I want by tweaking my domain request to local IPs?)
Install Tailscale on your vps and your homelab server.
Share the Tailscale dns of your server with guests.
Use your vps as your exit node.
But if I correctly understand how Tailscale works I would need to install tailscale on all machines I wish to give access to friends?
No, installing Tailscale on all machines is not actually required. You can setup a funnel that exposes a service to the internet for all to see. This also removes the requirement for them to access via Wireguard if desired. https://tailscale.com/kb/1223/funnel
Yes.
Otherwise, just open up ports on your network firewall and set up DNS to point to your external ip.
There might be a way to do this with cloudfare that is more secure.
Edit: you might want to create a network diagram to help explain what you have and what you want to do. The way you describe the problem is confusing.