🔍 Как рекурсивно найти все файлы в текущей и поддиректориях с использованием шаблонов?
Если ты ищешь способ найти все файлы, соответствующие определенному шаблону, в текущей директории и всех поддиректориях, используй команду
Объяснение:
-
-
Дополнительные возможности:
- Для поиска без учета регистра используй:
- Если ты не хочешь получать уведомления об ошибках доступа к директориям, используй:
- Чтобы искать только файлы, исключая директории, добавь
Советы:
- Обязательно используй кавычки вокруг шаблона, чтобы избежать его расширения оболочкой перед передачей в
- Если у тебя есть символические ссылки, и ты хочешь их обрабатывать, добавь опцию
Ветка: https://stackoverflow.com/questions/5905054/how-can-i-recursively-find-all-files-in-current-and-subfolders-based-on-wildcard
📩 Завтра: Darling: Запускай MacOS приложения на Linux как профи!
Включи 🔔 чтобы не пропустить!
________________
Дополнительный материал:
🧠 - Linux Deep Dive: Разбираемся с UID и группами
🧠 - Как использовать команду basename для упрощения ваших скриптов Bash
🧠 - От простого до грандиозного: Путешествие Kubernetes в мире контейнеризации
tags: #linux #find #search #tips #stackoverflow @LinuxSkill
Если ты ищешь способ найти все файлы, соответствующие определенному шаблону, в текущей директории и всех поддиректориях, используй команду
find:
find . -name "foo*"
Объяснение:
-
find требует начальную точку поиска, поэтому . (точка) указывает на текущую директорию.-
"foo*" — это шаблон, который указывает find искать все файлы, начинающиеся с "foo".Дополнительные возможности:
- Для поиска без учета регистра используй:
find . -iname "foo*"
- Если ты не хочешь получать уведомления об ошибках доступа к директориям, используй:
find . -name "foo*" 2>/dev/null
- Чтобы искать только файлы, исключая директории, добавь
-type f:
find . -name "foo*" -type f
Советы:
- Обязательно используй кавычки вокруг шаблона, чтобы избежать его расширения оболочкой перед передачей в
find.- Если у тебя есть символические ссылки, и ты хочешь их обрабатывать, добавь опцию
-L.Ветка: https://stackoverflow.com/questions/5905054/how-can-i-recursively-find-all-files-in-current-and-subfolders-based-on-wildcard
📩 Завтра: Darling: Запускай MacOS приложения на Linux как профи!
Включи 🔔 чтобы не пропустить!
________________
Дополнительный материал:
🧠 - Linux Deep Dive: Разбираемся с UID и группами
🧠 - Как использовать команду basename для упрощения ваших скриптов Bash
🧠 - От простого до грандиозного: Путешествие Kubernetes в мире контейнеризации
tags: #linux #find #search #tips #stackoverflow @LinuxSkill
👍19🔥2
🎨 Как изменить цвет вывода команды echo в Linux?
Хочешь добавить немного цвета в свои скрипты? Используй ANSI escape-коды, чтобы изменить цвет текста в терминале! Вот как это сделать:
Коды цветов:
- Черный:
- Красный:
- Зеленый:
- Коричневый/Оранжевый:
- Синий:
- Фиолетовый:
- Голубой:
- Светло-серый:
Пример использования:
Совет: Если используешь
Замечания:
- Используй кавычки, чтобы избежать расширения шаблонов.
- На MacOSX вместо
- Цвета зависят от конфигурации терминала, так что результат может различаться.
Теперь ты знаешь, как добавить немного цвета в свои скрипты! 🎨
Ветка: https://stackoverflow.com/questions/5947742/how-to-change-the-output-color-of-echo-in-linux
📩 Завтра: Неожиданные секреты Linux: 12 утилит, которые спасут твой сервер!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Освежаем Linux Skills: Как удалить особые режимы разрешений?
🧠 - Станьте мастером правописания в Linux с помощью команды Aspell
🧠 - Путь дистрибутивов на базе Gentoo от Calculate Linux до Sabayon
@LinuxSkill #echo #stackoverflow
Хочешь добавить немного цвета в свои скрипты? Используй ANSI escape-коды, чтобы изменить цвет текста в терминале! Вот как это сделать:
Коды цветов:
- Черный:
0;30, Темно-серый: 1;30- Красный:
0;31, Светло-красный: 1;31- Зеленый:
0;32, Светло-зеленый: 1;32- Коричневый/Оранжевый:
0;33, Желтый: 1;33- Синий:
0;34, Светло-синий: 1;34- Фиолетовый:
0;35, Светло-фиолетовый: 1;35- Голубой:
0;36, Светло-голубой: 1;36- Светло-серый:
0;37, Белый: 1;37Пример использования:
RED='\033[0;31m'
NC='\033[0m' # Без цвета
printf "I ${RED}love${NC} Stack Overflow\n"
Совет: Если используешь
echo, добавь флаг -e для обработки escape-последовательностей:echo -e "I ${RED}love${NC} Stack Overflow"
Замечания:
- Используй кавычки, чтобы избежать расширения шаблонов.
- На MacOSX вместо
\e используй \x1B.- Цвета зависят от конфигурации терминала, так что результат может различаться.
Теперь ты знаешь, как добавить немного цвета в свои скрипты! 🎨
Ветка: https://stackoverflow.com/questions/5947742/how-to-change-the-output-color-of-echo-in-linux
📩 Завтра: Неожиданные секреты Linux: 12 утилит, которые спасут твой сервер!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Освежаем Linux Skills: Как удалить особые режимы разрешений?
🧠 - Станьте мастером правописания в Linux с помощью команды Aspell
🧠 - Путь дистрибутивов на базе Gentoo от Calculate Linux до Sabayon
@LinuxSkill #echo #stackoverflow
Stack Overflow
How to change the output color of echo in Linux
I am trying to print a text in a red color in the terminal using echo command.
How can I do that?
How can I do that?
👍8🔥7
🛠️ Как удалить экспортированную переменную окружения в Linux?
Если тебе нужно удалить экспортированную переменную окружения, команда
Важно знать:
- Эта команда удаляет переменную только для текущей сессии терминала. При открытии нового окна терминала переменные загружаются из таких файлов, как
- Если переменная автоматически устанавливается при каждом запуске терминала, попробуй найти её в скрытых файлах домашней директории. Используй команду:
Это может занять время, если у тебя много файлов.
Как сохранить значение переменной, но убрать экспорт:
- В bash можно использовать:
или
Удаление переменной в разных сессиях:
- Нет команды, которая бы удалила переменную во всех существующих сессиях. Лучше найти файл инициализации, где она устанавливается, и отредактировать его, чтобы переменная не устанавливалась в будущих сессиях.
Ветка: https://stackoverflow.com/questions/6877727/how-do-i-delete-an-exported-environment-variable
📩 Завтра: Твой незаменимый помощник: Скрипт для мониторинга Linux!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Улучшаем Linux Skills: Мастерство символического представления разрешений с chmod
🧠 - Знаете ли вы, как узнать архитектуру вашей машины в Linux
🧠 - Открытие Ansible: Как простой инструмент стал гигантом управления конфигурациями
#stackoverflow @LinuxSkill #Linux #EnvironmentVariables #Bash #Tips #Automation
Если тебе нужно удалить экспортированную переменную окружения, команда
unset — это то, что тебе нужно:unset GNUPLOT_DRIVER_DIR
Важно знать:
- Эта команда удаляет переменную только для текущей сессии терминала. При открытии нового окна терминала переменные загружаются из таких файлов, как
~/.bashrc или ~/.profile.- Если переменная автоматически устанавливается при каждом запуске терминала, попробуй найти её в скрытых файлах домашней директории. Используй команду:
grep -r <имя_переменной> ~
Это может занять время, если у тебя много файлов.
Как сохранить значение переменной, но убрать экспорт:
- В bash можно использовать:
typescriptdeclare +x MYVAR
или
export -n MYVAR
Удаление переменной в разных сессиях:
- Нет команды, которая бы удалила переменную во всех существующих сессиях. Лучше найти файл инициализации, где она устанавливается, и отредактировать его, чтобы переменная не устанавливалась в будущих сессиях.
Ветка: https://stackoverflow.com/questions/6877727/how-do-i-delete-an-exported-environment-variable
📩 Завтра: Твой незаменимый помощник: Скрипт для мониторинга Linux!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Улучшаем Linux Skills: Мастерство символического представления разрешений с chmod
🧠 - Знаете ли вы, как узнать архитектуру вашей машины в Linux
🧠 - Открытие Ansible: Как простой инструмент стал гигантом управления конфигурациями
#stackoverflow @LinuxSkill #Linux #EnvironmentVariables #Bash #Tips #Automation
👍13
🔍 Как найти различия между двумя деревьями каталогов в Linux?
Ты когда-нибудь задумывался, как быстро сравнить содержимое двух директорий и выявить различия? Сегодня мы расскажем, как это сделать с помощью команды
Чтобы сравнить два дерева каталогов и найти различия в содержимом файлов, используй команду
-
-
Если ты хочешь увидеть различия для файлов, которые могут отсутствовать в одной из директорий, добавь флаг
Используя эти команды, ты сможешь легко и быстро выявить различия между двумя директориями, что особенно полезно при управлении версиями и контроле изменений. Попробуй сам и убедись, насколько это удобно!
🌳 Ветка: https://stackoverflow.com/questions/4997693/given-two-directory-trees-how-can-i-find-out-which-files-differ-by-content
📩 Завтра: 18 команд которые должен знать каждый линуксоид!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Мастерство использования команды chown для смены владельца файлов и каталогов
🧠 - Станьте Мастером Календаря в Linux с Cal и NCal
🧠 - Станьте Мастером Управления Пользователями в Linux
#stackoverflow @LinuxSkill #Linux #Diff #DirectoryComparison #SysAdmin #DevOps
Ты когда-нибудь задумывался, как быстро сравнить содержимое двух директорий и выявить различия? Сегодня мы расскажем, как это сделать с помощью команды
diff в Linux.Чтобы сравнить два дерева каталогов и найти различия в содержимом файлов, используй команду
diff с флагами -qr:diff -qr dir1/ dir2/
-
-q или --brief — выводит только информацию о различиях, без детального сравнения.-
-r или --recursive — рекурсивно обходит все подкаталоги.Если ты хочешь увидеть различия для файлов, которые могут отсутствовать в одной из директорий, добавь флаг
-N:diff -qrN dir1/ dir2/
Используя эти команды, ты сможешь легко и быстро выявить различия между двумя директориями, что особенно полезно при управлении версиями и контроле изменений. Попробуй сам и убедись, насколько это удобно!
🌳 Ветка: https://stackoverflow.com/questions/4997693/given-two-directory-trees-how-can-i-find-out-which-files-differ-by-content
📩 Завтра: 18 команд которые должен знать каждый линуксоид!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Мастерство использования команды chown для смены владельца файлов и каталогов
🧠 - Станьте Мастером Календаря в Linux с Cal и NCal
🧠 - Станьте Мастером Управления Пользователями в Linux
#stackoverflow @LinuxSkill #Linux #Diff #DirectoryComparison #SysAdmin #DevOps
Stack Overflow
Given two directory trees, how can I find out which files differ by content?
If I want find the differences between two directory trees, I usually just execute:
diff -r dir1/ dir2/
This outputs exactly what the differences are between corresponding files. I'm interested i...
diff -r dir1/ dir2/
This outputs exactly what the differences are between corresponding files. I'm interested i...
👍23
⏱️ Как измерить время выполнения программы в Linux?
Хочешь узнать, сколько времени занимает выполнение твоих скриптов или команд в Linux? Сегодня мы расскажем, как использовать встроенную команду
Основная информация:
Команда
1. Использование команды
Просто добавь
Вывод будет примерно таким:
-
-
-
2. Измерение времени для нескольких команд:
Если нужно измерить время выполнения нескольких команд, используй группу команд:
Используя команду
🌳 Ветка: https://stackoverflow.com/questions/385408/get-program-execution-time-in-the-shell
📩 Завтра: Как не стать жертвой сниффинга паролей на Linux
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Открываем Мир b2-tools
🧠 - Открываем Все Тайны Команды Cat
🧠 - Разгадываем Загадки с Diff3
#stackoverflow @LinuxSkill #Linux #TimeCommand #Performance #SysAdmin #DevOps
Хочешь узнать, сколько времени занимает выполнение твоих скриптов или команд в Linux? Сегодня мы расскажем, как использовать встроенную команду
time для этого.Основная информация:
Команда
time позволяет измерить реальное время, затраченное на выполнение команды, а также время работы процессора. Вот как это сделать:1. Использование команды
time:Просто добавь
time перед командой, которую хочешь измерить. Например:time sleep 2
Вывод будет примерно таким:
real 0m2.009s
user 0m0.000s
sys 0m0.004s
-
real — общее время выполнения.-
user — время, затраченное на выполнение пользовательского кода.-
sys — время, затраченное на выполнение системного кода.2. Измерение времени для нескольких команд:
Если нужно измерить время выполнения нескольких команд, используй группу команд:
time { command1; command2; }
Используя команду
time, ты можешь легко измерять производительность своих скриптов и оптимизировать их. Попробуй сам и убедись, насколько это полезно!🌳 Ветка: https://stackoverflow.com/questions/385408/get-program-execution-time-in-the-shell
📩 Завтра: Как не стать жертвой сниффинга паролей на Linux
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Открываем Мир b2-tools
🧠 - Открываем Все Тайны Команды Cat
🧠 - Разгадываем Загадки с Diff3
#stackoverflow @LinuxSkill #Linux #TimeCommand #Performance #SysAdmin #DevOps
Stack Overflow
Get program execution time in the shell
I want to execute something in a linux shell under a few different conditions, and be able to output the execution time of each execution.
I know I could write a perl or python script that would d...
I know I could write a perl or python script that would d...
👍14
🛠️ Что означает $@ в shell скрипте?
Если ты когда-либо задавался вопросом, что такое
то
Когда внутри
каждый параметр будет передан в
Пример использования:
Если ты вызовешь:
то
Использование
🌳 Ветка: https://stackoverflow.com/questions/9994295/what-does-mean-in-a-shell-script
📩 Завтра: Защити свой сервер: Настройка безопасности SSH на Linux
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Текстовый редактор Nano — как работать с файлами на минималках и не страдать!
🧠 - Почувствуй себя цифровым рентгенологом — откроем файлы насквозь с Od!
🧠 - Давно занимался спортом? Нет? Ну вот, пора хотя бы пароли сменить!
#stackoverflow @LinuxSkill #Linux #ShellScripting #SysAdmin #DevOps
Если ты когда-либо задавался вопросом, что такое
$@ в shell скрипте, то сегодня мы разберем эту загадку и покажем, как использовать его для передачи параметров.$@ представляет собой все параметры, переданные скрипту. Например, если ты вызовешь скрипт так:./someScript.sh foo bar
то
$@ будет равно foo bar.Когда внутри
someScript.sh ты используешь:umbrella_corp_options "$@"
каждый параметр будет передан в
umbrella_corp_options в двойных кавычках. Это позволяет передавать параметры с пробелами, как единое целое.Пример использования:
Если ты вызовешь:
./someScript.sh foo bar "boo far"
то
$@ в двойных кавычках будет содержать три аргумента: "foo", "bar" и "boo far".Использование
$@ в shell скриптах позволяет легко и безопасно передавать параметры, включая те, которые содержат пробелы. Попробуй сам и убедись, насколько это удобно!🌳 Ветка: https://stackoverflow.com/questions/9994295/what-does-mean-in-a-shell-script
📩 Завтра: Защити свой сервер: Настройка безопасности SSH на Linux
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Текстовый редактор Nano — как работать с файлами на минималках и не страдать!
🧠 - Почувствуй себя цифровым рентгенологом — откроем файлы насквозь с Od!
🧠 - Давно занимался спортом? Нет? Ну вот, пора хотя бы пароли сменить!
#stackoverflow @LinuxSkill #Linux #ShellScripting #SysAdmin #DevOps
Stack Overflow
What does $@ mean in a shell script?
What does a dollar sign followed by an at-sign (@) mean in a shell script?
For example:
umbrella_corp_options $@
For example:
umbrella_corp_options $@
👍18🔥2
🧠 Нужно ли ставить кавычки вокруг переменных в shell-скриптах?
Привет, повелитель терминала! Если ты в скриптах пишешь
Давай разберёмся, когда и зачем переменные в shell-скриптах нужно оборачивать в кавычки.
### Общее правило:
> Оборачивай переменные в двойные кавычки, если не хочешь сюрпризов от пробелов, пустых значений и спецсимволов.
---
### Когда кавычки обязательны:
1. Значение может быть пустым:
2. Есть пробелы:
3. В переменной спецсимволы (
---
### Пример бага:
---
### Когда кавычки можно опустить:
-
- Внутри арифметических или логических выражений:
Вывод:
Используй кавычки по умолчанию. Это просто и защищает от десятков потенциальных багов.
🌳 Ветка: https://stackoverflow.com/questions/10067266/when-to-wrap-quotes-around-a-shell-variable
📩 Завтра: Секреты Bash: Как тестировать порты без curl и wget!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Откройте для себя мир Управления Службами в Linux с нашей серией статей
🧠 - Контейнер в контейнере? Да это как матрёшка для айтишников: открываешь, а там ещё больше проблем… но зато все свои!
🧠 - Секретная Команда nsenter! Управляй Контейнерами как Хакер
#stackoverflow @LinuxSkill #Linux #ShellScripting #Quotes #SysAdmin #DevOps
Привет, повелитель терминала! Если ты в скриптах пишешь
$var без кавычек — скорее всего, ты (пока что) просто везучий. Давай разберёмся, когда и зачем переменные в shell-скриптах нужно оборачивать в кавычки.
### Общее правило:
> Оборачивай переменные в двойные кавычки, если не хочешь сюрпризов от пробелов, пустых значений и спецсимволов.
---
### Когда кавычки обязательны:
1. Значение может быть пустым:
[ "$var" = "value" ]
2. Есть пробелы:
xdg-open "$URL"
3. В переменной спецсимволы (
*, &, ?): wget "$link"
---
### Пример бага:
file="My documents/report.pdf"
rm $file # ❌ Попытка удалить два файла: 'My' и 'documents/report.pdf'
rm "$file" # ✅ Удаляется нужный файл
---
### Когда кавычки можно опустить:
-
$?, $#, $0 — безопасны без кавычек.- Внутри арифметических или логических выражений:
if [ "$?" -eq 0 ]; then ...
Вывод:
Используй кавычки по умолчанию. Это просто и защищает от десятков потенциальных багов.
🌳 Ветка: https://stackoverflow.com/questions/10067266/when-to-wrap-quotes-around-a-shell-variable
📩 Завтра: Секреты Bash: Как тестировать порты без curl и wget!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Откройте для себя мир Управления Службами в Linux с нашей серией статей
🧠 - Контейнер в контейнере? Да это как матрёшка для айтишников: открываешь, а там ещё больше проблем… но зато все свои!
🧠 - Секретная Команда nsenter! Управляй Контейнерами как Хакер
#stackoverflow @LinuxSkill #Linux #ShellScripting #Quotes #SysAdmin #DevOps
Stack Overflow
When to wrap quotes around a shell variable?
Should or should I not wrap quotes around variables in a shell script?
For example, is the following correct:
xdg-open $URL
[ $? -eq 2 ]
or
xdg-open "$URL"
[ "$?" -eq "2&q...
For example, is the following correct:
xdg-open $URL
[ $? -eq 2 ]
or
xdg-open "$URL"
[ "$?" -eq "2&q...
👍14
🧯 Как удалить конкретные правила из iptables (а не всё подряд)?
Привет, линуксоид! Бывало такое: правила в iptables работают как часы, но внезапно нужно откатить одно-два, не трогая всё остальное. Ниже — короткий гайд, как это сделать аккуратно и по-взрослому.
✅ Способ 1. Удалить правило по содержимому
Повтори ту же команду, но с
💡 Работает, только если правило совпадает дословно.
🧩 Способ 2. Удалить по номеру
Сначала покажи номера правил:
Удаление:
Если правило в NAT:
🛠 Способ 3. Комментарии и iptables-restore
Добавляешь правило с комментарием:
Потом удаляешь всё с этим тегом:
🧼 Способ 4. Через
Показать все правила:
Удалить нужное вручную (заменив
⚠️ Не забудь:
- При удалении по номеру порядок важен: после удаления строки остальные смещаются.
- Не используй
🌳 Ветка: https://stackoverflow.com/questions/10197405/how-can-i-remove-specific-rules-from-iptables
📩 Завтра: iptables: доступ к порту 8000 только с одного IP
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Эй, ты в курсе, что с Grafana можно раз и навсегда забыть о хаосе в мониторинге серверов?
🧠 - Секретная связка Angie и Grafana для тотального контроля над серверами
🧠 - Неожиданно закончилась память? 3 секрета команды du -h
#stackoverflow @LinuxSkill #iptables #Linux #сетевоеадминистрирование #firewall #DevOps #SysAdmin #безопасность
Привет, линуксоид! Бывало такое: правила в iptables работают как часы, но внезапно нужно откатить одно-два, не трогая всё остальное. Ниже — короткий гайд, как это сделать аккуратно и по-взрослому.
✅ Способ 1. Удалить правило по содержимому
Повтори ту же команду, но с
-D вместо -A:iptables -D INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
💡 Работает, только если правило совпадает дословно.
🧩 Способ 2. Удалить по номеру
Сначала покажи номера правил:
iptables -L INPUT --line-numbers
Удаление:
iptables -D INPUT 3
Если правило в NAT:
iptables -t nat -L PREROUTING --line-numbers
iptables -t nat -D PREROUTING 1
🛠 Способ 3. Комментарии и iptables-restore
Добавляешь правило с комментарием:
iptables -A INPUT -s 1.2.3.4 -j DROP -m comment --comment "ban_temp"
Потом удаляешь всё с этим тегом:
iptables-save | grep -v "ban_temp" | iptables-restore
🧼 Способ 4. Через
iptables -SПоказать все правила:
iptables -S
Удалить нужное вручную (заменив
-A на -D):iptables -D INPUT -p tcp --dport 443 -j ACCEPT
⚠️ Не забудь:
- При удалении по номеру порядок важен: после удаления строки остальные смещаются.
- Не используй
iptables -F, если не хочешь снести всё подчистую.🌳 Ветка: https://stackoverflow.com/questions/10197405/how-can-i-remove-specific-rules-from-iptables
📩 Завтра: iptables: доступ к порту 8000 только с одного IP
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Эй, ты в курсе, что с Grafana можно раз и навсегда забыть о хаосе в мониторинге серверов?
🧠 - Секретная связка Angie и Grafana для тотального контроля над серверами
🧠 - Неожиданно закончилась память? 3 секрета команды du -h
#stackoverflow @LinuxSkill #iptables #Linux #сетевоеадминистрирование #firewall #DevOps #SysAdmin #безопасность
Stack Overflow
How can I remove specific rules from iptables?
I am hosting special HTTP and HTTPS services on the ports 8006 and 8007 respectively. I use iptables to "activate" the server; i.e. to route the incoming HTTP and HTTPS ports:
iptables -A INPUT -i...
iptables -A INPUT -i...
👍18🔥2
🔐 iptables: доступ к порту 8000 только с одного IP
Привет, хранитель сетей! Если ты хочешь открыть доступ к какому-либо сервису (например, веб-интерфейсу на порту 8000) только для одного IP, не трогая весь остальной трафик — вот как это делается через
🔧 Пример: разрешить доступ только для 1.2.3.4
Так ты явно разрешаешь доступ для IP
💡 Альтернатива: блокировать всех, кроме одного IP
Один простой вариант — одна строка, эффект тот же.
📌 Несколько полезных замечаний:
- Для диапазона IP используй:
- Чтобы снять правило, замени
- Не забудь сохранить конфигурацию, если не хочешь потерять правила после перезагрузки:
🌳 Ветка: https://stackoverflow.com/questions/7423309/iptables-block-access-to-port-8000-except-from-ip-address
📩 Завтра: Как управлять iptables на лету — без
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Не трать время на конфиги: как упростить работу с WireGuard
🧠 - Неожиданный способ взломать систему: что такое бинарный анализ в Linux?
#stackoverflow @LinuxSkill #iptables #Linux #firewall #порт #безопасность #SysAdmin #DevOps
Привет, хранитель сетей! Если ты хочешь открыть доступ к какому-либо сервису (например, веб-интерфейсу на порту 8000) только для одного IP, не трогая весь остальной трафик — вот как это делается через
iptables.🔧 Пример: разрешить доступ только для 1.2.3.4
iptables -A INPUT -p tcp --dport 8000 -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 8000 -j DROP
Так ты явно разрешаешь доступ для IP
1.2.3.4, а все остальные — отсекаешь.💡 Альтернатива: блокировать всех, кроме одного IP
iptables -A INPUT -p tcp --dport 8000 ! -s 1.2.3.4 -j DROP
Один простой вариант — одна строка, эффект тот же.
📌 Несколько полезных замечаний:
- Для диапазона IP используй:
-s 1.2.3.0/24- Чтобы снять правило, замени
-A на -D (или используй iptables -S и удаляй по номерам).- Не забудь сохранить конфигурацию, если не хочешь потерять правила после перезагрузки:
iptables-save > /etc/iptables.rules
🌳 Ветка: https://stackoverflow.com/questions/7423309/iptables-block-access-to-port-8000-except-from-ip-address
📩 Завтра: Как управлять iptables на лету — без
sudo, без потерьВключи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Не трать время на конфиги: как упростить работу с WireGuard
🧠 - Неожиданный способ взломать систему: что такое бинарный анализ в Linux?
#stackoverflow @LinuxSkill #iptables #Linux #firewall #порт #безопасность #SysAdmin #DevOps
Stack Overflow
iptables block access to port 8000 except from IP address
I've never used iptables, and the documentation online seems a bit opaque.
I'd like to block all requests to port 8000 on my server except those coming from a specific IP address. How do I do that...
I'd like to block all requests to port 8000 on my server except those coming from a specific IP address. How do I do that...
👍14👀1
🧠 Как управлять iptables на лету — без
Привет, сетевой волшебник! Если ты хоть раз пытался автоматически обновлять правила iptables из приложения или скрипта — ты знаешь, насколько это боль.
Сегодня разберём, как это делать программно, безопасно и эффективно — даже без API.
🤯 Проблема: у iptables нет API
-
- Прямого, документированного API в C, Python, Rust и т.д. не существует.
📌 Официальный ответ от Netfilter:
> “Нет, API не предусмотрен. Используйте
Источник: Netfilter FAQ
✅ Что работает на практике:
#1. iptables-restore (атомарная загрузка правил)
Можно применять *весь ruleset сразу*, не теряя соединений:
✔️ Безопасно: правила применяются при
✔️ Работает из любой программы через stdin
#2. ipset — для добавления IP без пересборки
✔️ Отлично подходит для динамических списков
✔️ Есть поддержка
✔️ Работает быстро и без потерь
#3. rfw — REST API для iptables (open source)
Позволяет управлять правилами через HTTP-запросы:
👉 Проект: https://github.com/gluczywo/rfw
✔️ Поддерживает JSON,
✔️ Работает на
✔️ Подходит для распределённых систем
#4. python-iptables
Обёртка над
🔗 https://github.com/ldx/python-iptables
✔️ Удобен для скриптов
❗ Требует осторожности при работе с низкоуровневым API
🛑 Что не делать:
- Не пиши правила через
- Не используй
- Не забывай про
🌳 Ветка: https://stackoverflow.com/questions/109553/how-can-i-programmatically-manage-iptables-rules-on-the-fly
📩 Завтра: Вопрос №17 из теста Linux Essentials Certification
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Настрой cron за 5 минут и забудь о ручной работе навсегда!
🧠 - Ты больше никогда не запутаешься в systemd: разбор по шагам!
🧠 - 10 секретов команды ping, которые знают только сетевые гуру
#stackoverflow @LinuxSkill #iptables #ipset #Linux #SysAdmin #DevOps #firewall #rfw #сетибезопасность
sudo, без потерьПривет, сетевой волшебник! Если ты хоть раз пытался автоматически обновлять правила iptables из приложения или скрипта — ты знаешь, насколько это боль.
Сегодня разберём, как это делать программно, безопасно и эффективно — даже без API.
🤯 Проблема: у iptables нет API
-
libiptc не предназначена для использования — она нестабильна и может быть удалена в будущем. - Прямого, документированного API в C, Python, Rust и т.д. не существует.
📌 Официальный ответ от Netfilter:
> “Нет, API не предусмотрен. Используйте
system() или iptables-restore.” Источник: Netfilter FAQ
✅ Что работает на практике:
#1. iptables-restore (атомарная загрузка правил)
Можно применять *весь ruleset сразу*, не теряя соединений:
iptables-restore < my_ruleset.conf
✔️ Безопасно: правила применяются при
COMMIT, в один вызов ядра ✔️ Работает из любой программы через stdin
#2. ipset — для добавления IP без пересборки
ipset create allowlist hash:ip
ipset add allowlist 1.2.3.4
iptables -A INPUT -m set --match-set allowlist src -j ACCEPT
✔️ Отлично подходит для динамических списков
✔️ Есть поддержка
timeout и swap ✔️ Работает быстро и без потерь
#3. rfw — REST API для iptables (open source)
Позволяет управлять правилами через HTTP-запросы:
PUT /drop/input/eth0/11.22.33.44
👉 Проект: https://github.com/gluczywo/rfw
✔️ Поддерживает JSON,
GET, PUT, DELETE, сериализацию ✔️ Работает на
localhost без SSL ✔️ Подходит для распределённых систем
#4. python-iptables
Обёртка над
libiptc (но будь осторожен):🔗 https://github.com/ldx/python-iptables
✔️ Удобен для скриптов
❗ Требует осторожности при работе с низкоуровневым API
🛑 Что не делать:
- Не пиши правила через
iptables -A в цикле - Не используй
libiptc напрямую в проде - Не забывай про
iptables-save как бэкап перед внесением правок🌳 Ветка: https://stackoverflow.com/questions/109553/how-can-i-programmatically-manage-iptables-rules-on-the-fly
📩 Завтра: Вопрос №17 из теста Linux Essentials Certification
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Настрой cron за 5 минут и забудь о ручной работе навсегда!
🧠 - Ты больше никогда не запутаешься в systemd: разбор по шагам!
🧠 - 10 секретов команды ping, которые знают только сетевые гуру
#stackoverflow @LinuxSkill #iptables #ipset #Linux #SysAdmin #DevOps #firewall #rfw #сетибезопасность
👍14