I would like to turn my PC into a VPN server

I’m trying to make my own VPN or Proxy server at home (VPN is preferred) using my PC as a server. Now before you start explaining to me what a VPN is, I know. My goal is specifically to have my PC be a VPN for my own house. I’m not trying to make servers in other countries, I’m not trying to increase my security. I just want to have the same browsing experience as I would have at home. Most guides talk about using a cloud service like AWS, but I don’t want to pay for such a small task, or go through with setting up a whole cloud. I would also rather not rely on my router having a VPN switch, as I doubt mine does. I just want a guide I can read from to start with it, not step by step instructions unless you feel like writing all of that.

Thank you, if this is not a post for this subreddit could you guys refer me to a more suitable subreddit?

You connect to a VPN. Your traffic goes over the VPN tunnel and then to the website you want. The website sees the traffic is from the VPN IP address, not yours

Creating a VPN just for your home network won’t do anything as your IP address won’t change

I’m not sure what you are trying to achieve

If I understood what you are asking, you would like browse internet like you would if you were physically connected to your home network.

You are asking for a VPN, but IMHO you should use a Proxy, a service that allows clients (like your browser) to make indirect network connections to other network services. I strongly suggest to look how to install and configure the latter rather than the former for both security and easiness of configuration (read more later).

Long story short, you need 3 things.

The first 2 are a public IP and a way to NAT the public IP port to the server/PC that is running the VPN service (NAT: Network Address Translation). Such NATting more often than not requires a static public IP address and it could be possible that your Internet Service Provider would not provide such a service or make it pay more for it. If your ISP does not provide such services or your home router modem is not capable of such a thing, you could try to piggy back an external cloud server, but it will require a lot more configuring that I won’t write down.

EDIT: dynamic DNS could be a solution in case you can’t have a static IP address, but ATM I don’t know how you should configure it because unluckily I have no experience with it.

The third thing you need is the actual service (VPN or Proxy). As a VPN server, I often use OpenVPN (free and opensource, iirc), unluckily I have very little experience with Proxies, but I know for sure there are many free softwares you can try out.

Whatever is your final choice, do NOT rely on password authentication: try to enable and prefer certificate authentication over password auth, because with a port exposed to internet, anyone in the world can attempt to hack it and once successful, it will result that you performed whatever they are going to do. This is also why I strongly recommend a proxy over a VPN: if your proxy get hacked, they could listen to your traffic and/or browse internet, but your VPN gets hacked, they can very likely do anything in your home network and open any connection to the internet from your home.

So, for the actual steps:

  1. Check if you can NAT a port from your home network to your public IP. If you can’t or it seems it doesn’t work (e.g. a service that has Plug 'n Play enabled will not be exposed to the internet), ask your ISP for assistance and configuration.
  2. Install the service and note the port to be NATted on your router/modem
  3. Access your router modem/router and NAT the local network IP:port to your public IP:port
  4. Now anyone in the world should be able to access your service on your public IP / port, so be sure to have a strong security (certificate authentication)

EDIT: This guide is for educational purposes only. Please use this information responsibly and legally. I am not responsible for any misuse or illegal activities that may arise from the use of this guide.

Depending on your ISP, some sites can be blocked in my country. My ISP seems to be pretty consistent with everything that is blocked. Plus its kinda cool? and a nice project to get some experience from. I also live in a middle eastern country so most vpns typically have pretty bad latency and are overkill.

The VPN is not for my home network, my home network becomes the VPN and it’s for when I’m outside my home.

THE SIGMA IS HERE.

On the static IP address situation, would I be able to automate swapping the IP address whenever it is changed? My IP address isn’t static, but it does last for a very long time.
Is NATing in essence just port forwarding? And if it isn’t, if I am able to port forward, does that mean I am capabling of NATing?
Also I found something known as “Algo” https://github.com/trailofbits/algo is it solid?
I’ll try making a VPN and a Proxy and seeing which is smoother for my situation. I just assumed a proxy would have significantly more limitations than I’d like.

Still no idea why you want to do this but here:

Sure. So you’re out and about and connect to your VPN at home which is fine

It won’t help bypass any websites being blocked or anything like that. It will simply encrypt your traffic from your device to your home network and allow access to your files and stuff

Tailscale is what you are looking for

https://tailscale.com/kb/1017/install

If you are having issues with port forwarding checkout this wiki article.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

Yes, port forwarding is a specific form of NATting and it is what you are looking for.

If your IP is not static, then you could check out how to use dynamic DNS to avoid changing IP every time, but unluckily I have zero experience with it.

Never heard of that Algo, but that’s because I have little experience with VPNs and Proxies, despite I configured and I’m maintaining one. The only thing I’ve noticed is that Algo is using the IPvsec protocol: I don’t know which VPN client you will have to use to connect to it because my few experiences are using OpenVPN ( it has its own client and uses the SSL protocol if I remember correctly, but do not take this part as granted)

Proxy could be your best bet if you can manage to configure certificate authentication: you should have an easier time to configure it as well as maintaining high security.

Thanks for the tailscale mention, but if that’s the case why does using a VPN unblock websites in that case?

Because the VPN IP address isn’t blocked.

If you connect to your home VPN your traffic will go through your home internet connection IP address to the website you want, which will be the same as accessing it from home

vpns (i am talking about those like proton, nord, ghost… those you don’t own) redirects your traffic through a server that is in another country. if you want to bypass that blocking, use the tor browser.

Yeah that’s my goal, and if something is blocked outside of my home, it’ll be unblocked if I use my VPN. My browsing will be the same as if I was at home browsing.

I specifically mentioned this, “I’m not trying to make servers in other countries, I’m not trying to increase my security. I just want to have the same browsing experience as I would have at home.”

If the website ISN’T blocked on your home network but is outside the your home, then yeah it will work

Yup that’s my situation a bunch of times and it’s really annoying.