OpenVPN: Route only specific subnetwork through vpn - works for single IP adresses

Solution 1:

Your netmask is not valid for the IP address you're using. Specifically, if you take your IP addresses and convert them to binary you get:

IP   = x.y.19.178            = XXXXXXXX.YYYYYYYY.00010011.10110010
MASK = 255.255.255.252 (/30) = 11111111.11111111.11111111.11111100

In order for an IP address to be valid for a subnet, the IP must be at the beginning of the subnet, or in binary terms, the IP can only have 1s where the subnet mask has 1s. So, if we remove the last 1 from the IP we get:

IP   = x.y.19.176            = 00001010.00000000.00010011.10110000

So, the start of your subnet should actually be x.y.19.176. You'll have to calculate appropriate IPs if you want a subnet different than a /30. I used this tool to do some calculations.

Also note: if you just run the command given in the log at the command line

/sbin/ip route add x.y.19.178/24 via z.a.0.1

You'll get the error back. On my machine I got "Invalid argument", whereas this command succeeded:

/sbin/ip route add 192.168.19.176/24 via 192.168.0.1

Solution 2:

if you are having server-side(Openvpn server) access normally its under /etc/openvpn/server/server.conf or /etc/openvpn/server.conf comment this configuration

#######push "redirect-gateway def1 bypass-dhcp" 

just put your desire website ip address like

push  "route 96.6.31.216 255.255.255.255"

save this file and restart your openvpn service systemctl restart [email protected]