I'm using Linux CentOS 7 Server and I already installed OpenVPN and NordVPN servers which I use to connect my Linux to.

After establishing the VPN Connection, immediately my SSH access got disconnected.

How to allow SSH access to the server while it's connected to VPN Server? And how to make it work whenever the server is rebooted?

I used this tutorial on my setup: https://nordvpn.com/tutorials/linux/openvpn/


When using the NordVPN Linux client, iptables are used to change traffic instead of modifying the routes. To allow SSH to go through, you need to whitelist the SSH port.

nordvpn whitelist add port 22

  • 3
    Hi, Thanks for the answer, but could you elaborate? When I'm running (on the server) nordvpn connect ; nordvpn whitelist add port 22 I still can't ssh into the server afterwards using the servers real IP address, and I don't know the remote IP address. – chw21 Dec 12 '19 at 5:28
  • cool, that worked for me too – soupdiver Jan 8 at 8:55

I were able to find a solution for my issue by:

when you connect to the Server by its public IP address, the return packets get routed over the VPN. You need to force these packets to be routed over the public eth0 interface. These route commands should do the trick:

ip rule add from x.x.x.x table 128
ip route add table 128 to y.y.y.y/y dev eth0
ip route add table 128 default via z.z.z.z

Where x.x.x.x is your Server public IP, y.y.y.y/y should be the subnet of your Server public IP address, eth0 should be your Server public Ethernet interface, and z.z.z.z should be the default gateway.

  • This doesn't seem to be working for me and I'm not sure how to go about debugging it. Anyone got any suggestions? – Jamesernator Dec 27 '19 at 19:50

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.