Я пытаюсь подключиться к компьютеру через ПК 3 К ПК 1, и он перенаправляется на ПК 2

ПК 1: 192.168.0.1

ПК 2: 192.168.0.2

ПК 3: 192.168.0.3

У меня есть команда, как это в ПК 1:

  1. iptables -t nat -A PREROUTING -p tcp -d 192.168.0.1 --dport 23 -j DNAT --to-destination 192.168.0.2:23

  2. iptables -t nat -A POSTROUTING -j MASQUARADE

Если я просто выполняю команду № 1, в ПК 2 показывает (файл журнала), что telnet - это ПК 3 (успешно), но он не может telnet (не может telnet) просто отправить соединение. Но когда я объединился с командой № 2, telnet может быть выполнен (успех telnet), но в журнале файлов (на ПК 2) показано, что ip, который telnet - это ПК 1, но на самом деле это делает telnet - это ПК 3.

Как я это решаю?

1 ответ1

0

В случае, если вы настроили первую команду, соединение, которое приходит к ПК1, будет перенаправлено на ПК2, и ПК2 видит соединение как исходящее с ПК3 (поскольку ПК1 изменил только адресата, а не источник). Теперь ПК2 отвечает на соединение (SYN) и отправляет обратно SYN, ACK на ПК3. но PC3 сбросит его (причина, по которой PC3 открыл соединение telnet с 192.168.0.1, поэтому он ожидал ответа от этого IP-адреса, но поскольку соединение было перенаправлено, исходный IP-адрес будет таким же, как у PC2)

Во втором случае, поскольку вы замаскировали исходный IP-адрес для IP-адреса ПК1, ПК2 будет видеть ПК1 в качестве источника всех соединений.

Что вам нужно сделать, это изменить исходный IP-адрес исходящих пакетов на ПК2 на 192.168.0.1 на ПК2.

(Примечание: не используйте вторую команду, т.е. MASQUERADE на ПК1)

Настройте это на ПК2

iptables -A POSTROUTING -t nat -p tcp --sport 23 -d 192.168.0.3 -j SNAT --to-source 192.168.0.1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .