Поскольку у меня закончились красные таблетки, следующее , а не не предоставляет решение для принудительного подключения определенного интерфейса для трафика SSH к определенному хосту. Это также похоже на проблему XY , потому что вы не хотите принудительно использовать интерфейс, вы пытаетесь заставить вашу локальную виртуальную машину взаимодействовать с хостом, находящимся в удаленной сети. Я все еще думаю, что могу вам немного помочь.
TL; DR:
Добавьте маршрут к вашей виртуальной машине CentOS, чтобы она использовала маршрутизатор, доступный через NAT-интерфейс, при взаимодействии с Target. ip route add
В целом ваша настройка кажется нарушенной. Если это действительно целевая машина, которая отклоняет ваши SSH-соединения, она определенно сломана.
В первом случае ваш SSH-трафик никогда не должен достигать целевой машины. Как следствие, он не может его отвергнуть.
Во втором случае VPN / setup не справляется со своей задачей по правильному соединению двух ваших сетей.
Из того, что вы описываете, я понимаю, что VPN предназначена только для подключения вашего хоста к какой-то сети. Если это так, то вся проблема заключается в проблеме маршрутизации, и единственный жизнеспособный способ для вашей виртуальной машины взаимодействовать с машинами в VPN (кроме вашего хоста) - через NAT вашего хоста. Поэтому вы всегда должны выбирать NAT-интерфейс, а не только для SSH.
Если вы не активируете мостовой адаптер, ваша виртуальная машина будет использовать маршрут через NAT-интерфейс для взаимодействия с Target.(Используйте ip route show
для отображения настроенных маршрутов.) Как только вы активируете мостовой адаптер, он использует маршрут через мостовой адаптер. Это также свидетельствует о том, что ваша установка не работает. Например, на вашей виртуальной машине могут быть перекрывающиеся IP-подсети и / или несколько маршрутов по умолчанию.
Ваша текущая проблема, похоже, заключается в том, что как только вы активируете мостовой адаптер, ваша виртуальная машина CentOS изучает какой-то маршрут по умолчанию, который она предпочитает использованию NAT-интерфейса.
Чтобы решить вашу проблему, вы должны добавить маршрут к вашей виртуальной машине CentOS, который сообщает системе использовать маршрутизатор, доступный через NAT-интерфейс, при взаимодействии с Target или даже для каждого хоста в сети VPN. Если с вашей настройкой все в порядке, этот маршрут всегда будет иметь приоритет над маршрутом по умолчанию.
В конце концов, это один:
ip route add \
/ \
via `
Вы можете использовать awk
awk 'NR>1 {a[$1]++} END { for (x in a) { print x,a[x] } } ' file
NR> 1
игнорирует заголовок
a [$ 1] ++
- хеш-итератор
$ datamash -W --header-in groupby 1 count 2 < file
Prom_1 3
Prom_2 4
Prom_3 2
Простой способ с cat, cut, sort и uniq:
sed -n '1,$p' input | cut -d' ' -f1 | sort | uniq -c
Что-то похожее на user3589054:
поскольку Id много, при сортировке у вас не будет одинакового порядка Id, потому что, например, Id, начинающиеся с Prom_1 Prom_10 и т.д., будут первыми. Поэтому я сделал следующее, и все сработало нормально:
awk 'NR>1 {a[$1]++} END { for (x in a) { print x,a[x] } } ' file | awk -F "_" '{print $1"\t"$2"\t"}' | cut -f 2 | sort -n | awk -F " " '{print $1"\t"$2}' | sed 's/^/Prom_/' > file.output.txt
where:
awk 'NR>1 {a[$1]++} END { for (x in a) { print x,a[x] } } ' файл |
вы получите вывод с Id и номером, но не отсортированный
awk -F "_" '{print $1"\t"$2"\t"}' |
вы разделите файл на Prom , номер, его Id номер и его количество
cut -f 2 | sort -n |
сортировка по номеру Id и его соответствующему количеству
awk -F " " '{print $1"\t"$2"\t"}'|
здесь вы табулируете две колонки
sed 's/^/Prom_/'
и наконец вы присоединяете Prom_ перед его номером Id
Вы можете подсчитать идентификаторы с помощью uniq
:
tail -n +2 input | cut -d' ' -f1 | sort | uniq -c
Обратите внимание, что uniq
ожидает отсортированный ввод. Мы используем tail
, чтобы пропустить заголовок, и вырезать
, чтобы «вырезать» первый столбец.
Пример вывода:
3 Prom_1
4 Prom_2
2 Prom_3
Если идентификатор с меньшим числом должен быть напечатан перед идентификатором с большим номером (например, Prom_3
перед Prom_10
), вы можете заменить ] sort
с sort -V
(сортировка по версиям):
tail -n +2 input2 | cut -d' ' -f1 | sort -V | uniq -c
Пример вывода (input2 содержит дополнительную строку для id Prom_10
):
3 Prom_1
4 Prom_2
2 Prom_3
1 Prom_10