OpenVZ – Dostęp do kontenera z prywatnym adresem IP z internetu

Niestety dopadł mi dziś problem braku publicznych adresów IP. Mój serwer może posiadać maksymalnie 3 publiczne adresy IP.

W związku z tym, przydałoby się w jakiś sposób „dobić” do zwirtualizowanego serwera z poziomu internetu. Z pomocą przychodzi nam magia iptables, dzięki którym „wystawimy” dowolny port naszego kontenera na adresie serwera-matki.

[sudo] iptables -t nat -A PREROUTING -p tcp -d publicznyIp –dport portPubliczny -i eth0 -j DNAT –to-destination kontenerIp:portKontenera

Teraz wyjaśnienie:

  • sudo – uzyskanie uprawnień administratorskich (klamry [] – parametr opcjonalny jeśli nie jesteś zalogowany na koncie root)
  • iptables – narzędzie do filtrowania pakietów, służy też do tworzenia natu i wielu innych czynności
  • -t nat – użycie tablicy NAT
  • -A PREROUTING – Dodanie reguły na koniec łańcucha (w tym wypadku łańcucha PREROUTING)
  • -p tcp – pakiety lecące po protokole TCP
  • -d publicznyIp – pakiety lecące na nasz publiczny adres IP
  • –dport portPubliczny – pakiety lecące na określony przez nas port
  • -i eth0 – pakiety lecące na interfejs eth0
  • -j DNAT – przekazujemy pakiet dalej (DNAT)
  • –to-destination kontenerIp:portKontenera – określamy dokąd przekażemy pakiet

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *