Когда я хочу сделать что-то вроде этого, что я использую diff
:
diff $file_1 $file_2 > result.diff
Вам требуются только несколько минут для изучения синтаксиса result.diff :)
ssh -L
то, что Вы ищете.
Позволяет рисуют изображение, которое имеет 4 общих хоста, A, B, X, Y.
На B:
ssh -Nn -L 8080:Y:80 username@X
Это устанавливает туннель:
B:8080 <--- encrypted over ssh ---> X < ---- unencrypted ----> Y:80
Затем A может соединиться с B:8080 и видеть Y:80:
A <--- unencrypted ---> B:8080 <--- encrypted over ssh ---> X < ---- unencrypted ----> Y:80
Если A является той же машиной как X, и B является той же машиной как Y, то незашифрованные участки никогда на самом деле пробегаются через реальную сеть; Ваши подключения веб-браузера к localhost:8080 (туннель запускаются); ssh сервер на X подключениях к localhost:80.
Машина, на которой вводится команда туннеля ssh, называется »ваш хост« .
local: -L Указывает, что данный порт на локальном (клиентском) хосте должен быть перенаправлен на данный хост и порт на удаленной стороне.
ssh -L sourcePort: forwardToHost: onPort connectToHost
означает: подключиться с помощью ssh к connectToHost
и перенаправить все попытки подключения на локальный sourcePort
на порт onPort
на машине с именем forwardToHost
, к которой можно получить доступ с машины connectToHost
.
удаленный: -R Указывает, что данный порт на удаленном (серверном) хосте должен быть перенаправлен на данный хост и порт на локальной стороне.
ssh -R sourcePort: forwardToHost: onPort connectToHost
означает: подключиться с помощью ssh к connectToHost
и перенаправить все попытки подключения к удаленному удаленному sourcePort
порту onPort
на машине с именем forwardToHost
, к которой можно получить доступ с вашего локального компьютера.
Это изображение номер три из моих набросков. На вашем домашнем компьютере установлена Linux? И у вас есть удаленный хост где-то в Интернете, на котором есть ssh, и вы можете просто получить к нему доступ со своего домашнего компьютера, используя
ssh remotehost
. Тогда у вас наверняка установлен ssh, и вам даже не нужен маршрутизатор для создания туннеля. Используйте следующую команду на своем компьютере (синее поле с именем yourhost
представляет ваш домашний компьютер):
ssh -R 11111:localhost:22 remotehost
Теперь, если вы сидите на удаленном хосте и хотите подключиться к домашнему компьютеру через ssh, используйте эту команду
ssh -p 11111 homeuser@localhost
, который запустит ssh-соединение с зеленым портом 11111
на вашем удаленном хосте, которое перенаправляется через ssh-туннель (который даже проходит через ваш маршрутизатор busybox) и подключится к розовому порту 22
локального хоста вашего домашнего компьютера (который является самим домашним компьютером).
Это изображение номер 4 из моих набросков. Теперь вы сидите (или вошли в систему) в busybox. Итак, yourhost
- это маршрутизатор busybox.
ssh -R 11111:nearhost:22 remotehost
Теперь, когда вы находитесь на удаленном хосте, вы снова набираете
ssh -p 11111 busyboxuser@localhost
, чтобы подключиться к зеленому порту 11111
, который затем перенаправляется через туннель в busybox, а оттуда он подключается к розовому порту. порт 22
ближайшего хоста (представляющего ваш домашний компьютер).