Как перенаправить «localhost» на другой локальный IP?

Как перенаправить «localhost» на другой локальный IP?

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

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

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

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

Есть ли решение для моей проблемы?

решение1

Если вы используете 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-адресом назначения.

решение2

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

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

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

решение3

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

Если цель состоит в том, чтобы иметь одно и то же имя для перекрестного соединения, независимо от того, на какой машине вы находитесь, я бы рекомендовал использовать другое имя для этого. Вместо "localhost" вы можете, например, использовать "crosshost" - и с этим следовать подсказкам, данным Индреком: Проверьте свой 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, или что бы вы ни хотели.

Связанный контент