Konfiguracja routingu i NAT w tunelach VPN – Kompletny przewodnik
Tunel VPN pozwala na bezpieczne przesyłanie danych pomiędzy sieciami, ale jego prawidłowa konfiguracja wymaga poprawnego routingu i NAT. Jeśli tunel działa, ale pakiety nie docierają do celu, problem często leży w trasowaniu ruchu lub konieczności zastosowania translacji adresów (NAT).
W tym artykule dowiesz się:
✅ Jak skonfigurować routing w tunelach VPN
✅ Jak skonfigurować NAT dla ruchu przechodzącego przez VPN
✅ Jak rozwiązywać najczęstsze problemy związane z routingiem i NAT
1. Ustawienie poprawnego routingu w tunelach VPN
🔹 Jak działa routing w VPN?
Gdy klient VPN łączy się z serwerem, pakiety muszą być kierowane poprawnie między interfejsami VPN a lokalną siecią. W zależności od scenariusza, routing może działać w dwóch trybach:
1️⃣ Tryb pełnego tunelowania (Full Tunnel) – cały ruch przechodzi przez VPN.
2️⃣ Tryb podziału tunelowania (Split Tunnel) – tylko określone sieci są przesyłane przez VPN.
📌 Sprawdzenie tabeli routingu:
ip route show
📌 Dodanie trasy ręcznie:
sudo ip route add 192.168.2.0/24 via 10.10.10.1 dev tun0
📌 Usunięcie błędnej trasy:
sudo ip route del 192.168.2.0/24
📌 Trasy statyczne w /etc/network/interfaces
(Debian/Ubuntu):
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.254
up ip route add 192.168.2.0/24 via 10.10.10.1
📌 Trasy statyczne w /etc/sysconfig/network-scripts/route-eth0
(CentOS/RHEL):
192.168.2.0/24 via 10.10.10.1 dev tun0
📢 Restart usług sieciowych:
sudo systemctl restart networking
2. Konfiguracja NAT dla ruchu w tunelach VPN

🔹 Kiedy stosować NAT w VPN?
NAT (Network Address Translation) jest konieczny, gdy:
✅ Tunel VPN łączy prywatne sieci o tych samych adresach IP
✅ Serwer VPN działa jako brama dla ruchu internetowego
✅ Dostawca VPN wymaga translacji adresów IP
🔹 Konfiguracja NAT na serwerze VPN (iptables)
📌 Sprawdzenie interfejsu VPN:
ip addr show | grep tun
📌 Włączenie przekazywania pakietów:
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
📌 Reguła NAT w iptables:
sudo iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j MASQUERADE
📌 Zapisywanie reguł iptables:
sudo iptables-save | sudo tee /etc/iptables/rules.v4
Na CentOS/RHEL:
sudo iptables-save > /etc/sysconfig/iptables
sudo systemctl restart iptables
📌 Dla Firewalld (CentOS/RHEL 8+):
sudo firewall-cmd --add-masquerade --permanent
sudo firewall-cmd --reload
📌 Sprawdzenie działania NAT:
sudo iptables -t nat -L -n -v
3. Rozwiązywanie problemów z routingiem i NAT w tunelach VPN
🔹 Problem: Klient VPN łączy się, ale nie ma dostępu do sieci
✔ Sprawdź trasę:
ip route show
✔ Sprawdź, czy serwer VPN przekazuje pakiety:
cat /proc/sys/net/ipv4/ip_forward
Jeśli wynik to 0
, włącz przekazywanie:
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
🔹 Problem: Brak dostępu do Internetu po połączeniu z VPN
✔ Sprawdź reguły NAT:
sudo iptables -t nat -L -n -v
✔ Dodaj regułę NAT:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
✔ Sprawdź serwer DNS (zmień na 8.8.8.8, jeśli potrzeba):
cat /etc/resolv.conf
🔹 Problem: Pakiety wysyłane przez tunel VPN nie wracają
✔ Sprawdź ustawienia NAT na routerze docelowym.
✔ Sprawdź, czy nie ma kolizji adresów IP po obu stronach tunelu.
✔ Jeśli sieci po obu stronach tunelu mają ten sam zakres IP, użyj NAT do translacji adresów.
🔹 Problem: Serwer VPN nie odbiera ruchu z klienta
✔ Sprawdź interfejsy VPN:
ip addr show
✔ Sprawdź zapory ogniowe (iptables/firewalld).
4. Przykładowe konfiguracje dla różnych tuneli VPN
🔹 OpenVPN – Routing i NAT
W pliku server.conf
dodajemy:
push "route 192.168.2.0 255.255.255.0"
push "redirect-gateway def1"
Włączamy przekazywanie ruchu:
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Dodajemy NAT w iptables:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
🔹 WireGuard – Routing i NAT
W pliku /etc/wireguard/wg0.conf
na serwerze dodajemy:
[Interface]
Address = 10.10.10.1/24
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Na kliencie dodajemy trasę:
[Peer]
AllowedIPs = 192.168.1.0/24, 0.0.0.0/0
5. Podsumowanie
✔ Routing VPN jest kluczowy dla poprawnego działania tunelu
✔ NAT pozwala na dostęp do Internetu i eliminuje kolizje adresów
✔ Firewall i iptables mogą blokować ruch – zawsze sprawdzaj reguły
✔ Testowanie tras i NAT to podstawa przy diagnozowaniu problemów