
Вот моя ситуация:
Два компьютера под одним роутером, 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
, или что бы вы ни хотели.