У сервера есть белый ip-адрес и выход в интернет, у клиента такой роскоши нет.
Сервер
IP-адрес локалки: 192.168.1.1/24
IP-адрес белый: 1.2.3.4
Клиент
IP-адрес локалки: 192.168.2.2/24
Шлюз 192.168.2.1
Решение состоит из двух шагов: Поднятие туннеля между клиентом и сервером и настройка NAT на сервере.
На сервере:
ip tun add tun0 mode ipip local 192.168.1.1 remote 192.168.2.2 ttl 255 ip l s dev tun0 up iptables -I INPUT -p 4 -s 192.168.2.2 -j ACCEPT iptables -I FORWARD -s 192.168.2.2 -j ACCEPT iptables -I FORWARD -d 192.168.2.2 -j ACCEPT iptables -t nat -I POSTROUTING -s 192.168.2.2 -j MASQUERADE
На клиенте:
ip tun add tun0 mode ipip local 192.168.2.2 remote 192.168.1.1 ttl 255 ip l s dev tun0 up ip r a 192.168.1.1 via 192.168.2.1 ip r d default ip r a default dev tun0Надо помнить, что здесь не используется шифрование.
Forwarding должен быть включен, а rp_filter на всякий случай выключен.