Заменяя запятую цифрами в последовательности

Предполагая, что все возможные целевые каталоги находятся под /home и в именах каталогов нет символов новой строки, вы можете использовать эту функцию оболочки:

cds() {
    cd "$(find /home -type d -name "$1" | head -n 1)"
}

$ cds thedirectoryiwanttogointo

Конечно, в зависимости от того, сколько подкаталогов и файлов находится под /home и от того, способна ли ваша ОС кэшировать все дерево в памяти или нет, производительность будет значительно отличаться.

На системах GNU вы можете ускорить поиск и сделать его более надежным в отношении символов новой строки в именах файлов, используя вместо этого следующий синтаксис:

cds() {
    cd "$(find /home -type d -name "$1" -print -quit)"
}

Это прекратит поиск, как только будет найдено первое совпадение.

Обратите внимание, что аргумент воспринимается как образец, поэтому вы можете сделать:

cds 'foo*bar'

например, cd в первый каталог (порядок не указан), имя которого начинается с foo и заканчивается bar.

1
10.10.2018, 15:42
2 ответа

Я решил все. Сначала требуемые правила iptables (дают доступ к удаленным машинам VPN):

-A FORWARD -i wlan0 -o ppp0 -j ACCEPT
-A POSTROUTING -o ppp0 -j MASQUERADE

Затем, чтобы указать, какой IP-адрес или диапазон IP-адресов должен иметь другой маршрут, вам потребуются правила политики :

.
  • открыть /etc/iproute2/rt_tablesи ввести свою запись (ID tablename):

    100   my_custom_table
    
  • ip rule add from 172.24.1.114/24 table my_custom_table(указывает перейти к другой таблице, отличной от основной, для исходного IP 172.x.x.x)

  • ip route add 172.24.1.0/24 dev wlan0 table my_custom_table(требуется для получения пакетов от ppp0)

  • ip route add default via 10.10.10.1 dev ppp0 table my_custom_table(направляет пакет на шлюз VPN)

Убедитесь, что брандмауэр на сервере VPN разрешает входящий трафик с IP-адресов VPN.

1
27.01.2020, 23:42

Правильным подходом является создание ip ruleдля этого исходного адреса.

Для диагностики таких проблем полезен tcpdump.

Может ли сам VPN-клиент получить доступ к Интернету через VPN?

  • Если да, вам нужно добавить NAT в клиенте VPN для вашего адреса.
  • Если нет, вам нужно добавить NAT на сервер VPN и убедиться, что он не заблокирован.
0
27.01.2020, 23:42

Теги

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