Chcę, aby połączenia przychodzące na ppp0 na porcie 8001 były kierowane do 192.168.1.200 na eth0 na porcie 8080.
Mam te dwie zasady
-A PREROUTING -p tcp -m tcp --dport 8001 -j DNAT --to-destination 192.168.1.200:8080
-A FORWARD -m state -p tcp -d 192.168.1.200 --dport 8080 --state NEW,ESTABLISHED,RELATED -j ACCEPT
i to nie działa. czego mi brakuje?
Odpowiedzi:
Po pierwsze - powinieneś sprawdzić, czy w ogóle dozwolone jest przekazywanie:
Jeśli oba zwracają,
1
jest w porządku. Jeśli nie, wykonaj następujące czynności:Druga sprawa -
DNAT
może być zastosowananat
tylko na stole. Tak więc twoja reguła powinna zostać rozszerzona poprzez dodanie specyfikacji tabeli (-t nat
):Obie reguły dotyczą tylko ruchu TCP (jeśli chcesz również zmienić UDP, musisz podać podobne reguły, ale z
-p udp
ustawioną opcją).Ostatnia, ale nie mniej ważna, to konfiguracja routingu. Rodzaj:
i sprawdź, czy
192.168.1.0/24
znajduje się wśród zwróconych pozycji routingu.źródło
sysctl
składnięsysctl net.ipv4.conf.eth0.forwarding=1
-A
z-D
Myślę, że chcesz:
źródło
Zapomniałeś adresu źródłowego SNAT:
I nie zapomnij ustawić zapory linux jako domyślnej bramy na komputerze z adresem 192.168.1.200.
źródło
POSTROUNTING
krok wstecz . W tym momencie rozmowa jest--destination
raczej o--source
.Stworzyłem następujący skrypt bash, aby to zrobić na moim routerze Linux. Automatycznie podaje adres WAN IP i potwierdza wybór przed kontynuowaniem.
Korzystanie ze skryptu jest proste, wystarczy skopiować i wkleić go do pliku, a następnie.
Aby usunąć tę samą regułę
Myślałem, że może to zaoszczędzić komuś czas na odpowiednim routerze.
źródło
Miałem za zadanie zmusić MACHINE_A do myślenia, że usługa działa fizycznie na MACHINE_B, ale transparentnie przekierowuje wszystkie żądania do MACHINE_C.
Sztuka polegała na użyciu MASQUERADE.
Pamiętaj, że możesz chcieć ulepszyć polecenia:
Aby umożliwić przekazywanie pakietów tylko na określonym interfejsie. Na przykład:
Aby zezwolić nie tylko MACHINE_A, ale także wszystkim innym na korzystanie z przekierowania portów, usuń:
źródło
Próbować
Pliki te informują jądro, że wolno przekazywać pakiety między interfejsami.
źródło
To polecenie nie działa dla mnie:
Mam 2 interfejsy LAN i pracuję w przód, kiedy napiszę:
Oczywiście PREROUTING i FORWARD są również niezbędne :)
źródło