4

Это моя ситуация:

Два компьютера под одним и тем же роутером, 192.168.1.101 и 192.168.1.102

Это то, что мне нравится делать: На 192.168.1.101 при доступе к порту 22 с localhost он направляет трафик на порт 192.168.1.102.

Другими словами, я хотел бы перенаправить любой трафик с localhost на другой локальный IP.

Есть ли решение для того, что мне нужно?

3 ответа3

5

Не переопределяйте значение localhost. Вы сломаете вещи удивительными способами.

Вместо этого посмотрите параметры -L и -R в ssh(1) . Они упрощают перенаправление порта на локальном компьютере на IP-адрес и порт удаленного компьютера. Плюс туннель защищен SSH.

Обратите внимание, что эти туннели не обязательно относятся к трафику ssh/shell. Это может быть для произвольного трафика.

3

Не уверен, что это разумно. Многие сервисы, предназначенные для запуска на локальном компьютере, используют 127.0.0.1 (что не будет проблемой для ваших изменений) или localhost (в этом случае ваши изменения могут испортить ситуацию) для подключения к другим сервисам на той же машине. И многие другие пакеты настроены таким образом.

Если цель состоит в том, чтобы одно и то же имя соединялось крест-накрест, независимо от того, на какой машине вы находитесь, я бы рекомендовал использовать для этого другое имя. Вместо "localhost" вы можете, например, использовать "crosshost" - и с этим следуйте подсказкам, данным Indrek: Проверьте ваш файл hosts (в Linux/Unix и, вероятно, также Mac это /etc/hosts , в Windows это C:\Windows\System32\drivers\etc\hosts (без расширения - поэтому будьте осторожны, в Windows обычно уже есть другие файлы hosts.* В этом каталоге). НЕ закомментируйте строку 127.0.0.1 localhost и не изменяйте ее - оставьте ее как есть. Просто добавьте строку

192.168.1.101 crosshost

на компьютере 192.168.1.102 и аналогичным образом с другим адресом на другом компьютере. Теперь вы можете, например, ssh crosshost подключиться к одному компьютеру с другого, или скопировать файлы с помощью scp filename.ext crosshost:/path/to/put или любым другим способом .

2

Если вы работаете в Windows, вы можете использовать команду:

netsh interface portproxy add v4tov4 listenaddress=192.168.1.101 listenport=21 connectaddress=192.168.1.102 connectport=21

Заменить:

  • 21 с портом, который вы хотите переслать,
  • 192.168.1.101 с вашим ip,
  • 192.168.1.102 с назначением ip.

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