Network 1 has 2 computers, PC1 and PC2. PC1 has access to a VPN. PC2 Does not. Is there a way that PC2 can route its traffic through the VPN on PC1?

a possible Idea that I came up with would be SSH Tunneling. As long as I know a finite list of endpoints that I want to access through the VPN, I could set up specific SSH tunnels to those specific endpoints and access them through localhost:{port-number-i-defined-for-that-specific-endpoint}

Would that even work? is there a cleaner setup that someone else could think of?


(As you don't mention any operating system, I'll assume that it's all Linux).

You'll need to ensure that packet forwarding is enabled on PC1. To do this permanently, add a file in /etc/sysctl.d/ (I called mine local.conf):

net.ipv4.ip_forward = 1

You'll also want to set its iptables to do NAT, by editing /etc/iptables.rules (assuming you have an interface up rule to iptables-restore the rules file):


On PC2, you'll want to route traffic to your VPN via PC1. Assuming it has a single Ethernet interface, add a route command to the up and down commands in your /etc/network/interfaces.d/eth0 (or to /etc/network/interfaces if you're using a single file for all interfaces):

iface eth0 inet static
      pre-up iptables-restore </etc/iptables.eth0.rules
      up route add -net netmask gw
      down route del -net netmask

I've assumed above that PC1 should be and PC2 should be, and that your VPN appears as 10.x.x.x; substitute your own values as appropriate.

You'll probably want to create the route by hand the first time, and only add it to the interface file when you're happy it's doing the right thing.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.