Using external VM (ExpressVPN, NordVPN, Mullvad) in a completely virtual environment

I’m trying to setup a virtual instance in Google Cloud and would like to hide my outbound IP through a 3rd party VPN like ExpressVPN or NordVPN. The challenge I’m having is that once connected to these services all traffic is routed through their VPN rendering the VM inaccessible to inbound traffic.

Is it possible to have a multi-VM environment where one serves as the VPN connection and the other executes scripts remotely.

Every guide/thread I’ve found with any of these 3rd party VPNs assumes a local/device connection rather than a completely virtual installation. For obvious reasons, I don’t want to anchor any recurring activity to a local machine that could easily be interrupted.

how will you then ssh that virtual machine?

Options:

  1. Forward SSH port through VPN and connect through the VPN.
  2. Setup another cloud box in the same private subnet and configure VPN client to allow local LAN connectivity.

Is it possible to have a multi-VM environment

I only read one VM in Google Cloud by your description.

Hence my question. I a novice when it comes to networking but have read about utilizing the serial console, or through a Bastion Host. I just have been unable to find any resources that go into enough detail to execute on either option. As I understand it a Bastion Host would be the preferable route unclear how you’d setup the vpn-vm to accept the inbound SSH.

Thank you fro the reply. Can you elaborate a bit on #2. If I use an external VPN like NordVPN or ExpressVPN I’m not sure I have the ability to configure for local LAN connectivity.

Having a separate jump server would be the preferred method of executing scripts through the VPN server but I’m not sure how the suggestion you made translates to implementation.

there must be something out there. let’s not stop finding.

Pretty much all the commercial VPN clients allow incoming and outgoing connections to other computers in the same subnet. You will most likely need to enable the option in the VPN client.

I haven’t used Google’s cloud, but I am assuming they allow you to create VPC/private subnets. Just like a home network behind a router. Sounds like same thing you are talking about with a jump box/bastion.

Google absolutely allows connectivity via internal IPs for VM instances on the same subnet. I attempted to setup a jump/bastion server and SSH into the VM running NordVPN but all incoming requests were blocks and the attempt just hung.

It sounds like you are suggested that the VPN provider itself should have some ability to configure for local connectivity. Is that right? Their technical support will not engage in discussions re: cloud environments are there are nuances to each that make them difficult to support.

Yep. Should be an option in the client to allow local LAN connectivity. Then any box in the same private subnet should be able to connect to the box with the VPN client.