Я не могу понять это. Сервер работает на VPS с частной сетью. Мне нужно подключиться к другому VPS в том же центре обработки данных от клиента через сервер OpenVPN. Локальный IP-адрес сервера - 10.128.182.211, а поле, которое мне нужно получить, - 10. Я могу пинговать локальную сеть сервера от клиента. Я нажимаю на маршрут и вижу его в клиенте:
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.0.5 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.2.1 0.0.0.0 UG 303 0 0 wlan0
10.8.0.1 10.8.0.5 255.255.255.255 UGH 0 0 0 tun0
10.8.0.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
128.0.0.0 10.8.0.5 128.0.0.0 UG 0 0 0 tun
192.168.2.0 0.0.0.0 255.255.255.0 U 303 0 0 wlan0
192.168.14.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
Я пробовал эти два правила на сервере:
iptables -A FORWARD -i tun0 -o ens4v1 -j ACCEPT
iptables -A FORWARD -i ens4v1 -o tun0 -j ACCEPT
Но все равно ничего. В настоящее время я маршрутизирую весь трафик клиента через VPN, и переадресация IP включена и работает.
ОБНОВИТЬ
Понял это .. так очевидно на самом деле. Мне нужно было правило MASQUERADE, подобное тому, которое я использую для выхода в интернет.
-A POSTROUTING -o ens3 -j MASQUERADE
-A POSTROUTING -o ens4v1 -j MASQUERADE