В переадресации локальных портов SSH какой DNS-сервер используется для разрешения хоста (не шлюза ssh)?

Я бы:

  1. цикл по всем файлам
  2. взять первые 500 строк
  3. посмотрите, есть ли IP в этих строках
  4. если да, напечатать имя файла и завершить цикл

Как код:

for f in./*
do 
  head -n 500 "$f" | grep -qF myip && { printf "Found in: $f"; break; }
done

Где вы должны заменить myipна IP-адрес, который вы ищете. Вы можете создать функцию (или сценарий оболочки ), который принимает желаемый IP-адрес в качестве параметра для поиска :

.

findlogip ()
{
    for f in./*;
    do
        head -n 500 "$f" | grep -qF "$1" && {
            printf "Found in: $f\n";
            break
        };
    done
}

Как roaima прокомментировал , вы можете быть осторожны с IP-адресом, который вы ищете, чтобы случайно не найти другой IP-адрес (10.55.33.6, но совпадающий с 110.55.33.68 в пример ). Предполагая GNU grep (, учитывая тег ), вы можете окружить заданный IP-адрес маркерами \b:

...
head -n 500 "$f" | grep -q "\b$1\b" &&...
...

Вы отбрасываете-F(фиксированную строку )параметр grep, так как выражение больше не является "фиксированным", а является регулярным выражением.

1
14.05.2020, 17:44
2 ответа

Полная последовательность переадресации портов в ssh:
-L [<local_ip>:]<local_port>:<remote_ip>:<remote_port>
при этом локальный _ip может быть опущен.

<local_ip>(или DNS-имя )будут разрешены с локального хоста, а<remote_ip>(или DNS-имя )— с удаленного хоста (, в вашем случае это sshgateway.com ).

Изменить на основе вашего комментария:
Поправьте меня, если я не понял.
Ваша среда выглядит так:

host_1  ->   host_2   ->   host_3
your_PC -> sshgateway -> internal_db.local

и вы хотите подключиться с хоста _1 к базе данных, расположенной на хосте _3.
С предложенной вами переадресацией локального порта вы перенаправляете порт 4000 хоста _1 через хост _2 на порт 3306 хоста _3.
Для этого ваше соединение будет туннелироваться через ssh от хоста _1 к хосту _2, а затем отправлять как обычные ip-пакеты -с хоста _2 на хост _3, как если бы хост _] 2 будет подключаться к базе данных.
Поэтому хост _2 (sshgateway.com )должен разрешить IP-адрес хоста _3 (внутренний _db.local )со своим DNS-сервером.
Надеюсь, это прояснит ваш вопрос.

1
28.04.2021, 23:14

Переадресация портов в SSH включает локальный IP-адрес, локальный порт, удаленный IP-адрес, удаленный порт и пункт назначения. Как и в:

ssh -L $LOCAL_IP:$LOCAL_PORT:$REMOTE_IP:$REMOTE_PORT $DESTINATION

В этом примере DNS-имена для $LOCAL_IPи $DESTINATIONразрешаются средой, в которой выполняется команда ssh. DNS-имена для $REMOTE_IPразрешаются средой по адресу $DESTINATION.

1
28.04.2021, 23:14

Теги

Похожие вопросы