Задать вопрос
  • SSH +reverse https proxy, при чём тут openSSL(VPN)?

    ValdikSS
    @ValdikSS
    На стороне сервера в таком случае настраивают, например, stunnel.
    В целом любой софт, который терминирует TLS, подойдёт: nginx с модулем stream, socat, v2fly.

    На клиенте в ProxyCommand передаётся команда, которая «оборачивает» трафик в свой протокол, получая данные в stdin и выдавая в stdout. openssl s_client именно так и работает. Можно еще использовать socat, ncat --ssl.
    Ответ написан
    7 комментариев
  • Неточность формулировки в книге или же я не понимаю?

    Go - язык, который сознательно создавался, как очень простой язык. В Go всегда всё копируется. Если это базовый тип, то копируется базовый тип, если это структура, то копируется структура, если это массив, то копируется весь массив, если это указатель, то копируется указатель. Если это дескриптор слайса, то копируется этот дескриптор (не сами данные). И нет этих внезапных указателей, которые могут испортить жизнь джаваскриптизёру или пыхарю.

    Поэтому, в Go не надо зазубривать, какие операции что возвращают, а мы просто глядим в нашей мега-IDE, что конкретно нам возвращает time.Now()
    А возсращает она нам очень простую структурку time.Time

    type Time struct {
        wall uint64
        ext  int64
        loc  *Location
    }


    И что мы видим? Что из ссылок в этой структуре только loc, который занимается исключительно часовыми поясами, а само время хранится в обычных целочисленных переменных без всяких ссылок. А т.к., как мы говорили ранее, в Go всегда всё копируется, то внезапному указателю (ссылке) просто неоткуда взяться.

    Если вы запамятовали, и сомневаетесь, что происходит при присваивании, например, слайса, мапы или интерфейса, то лучшим способом это определить будет не зазубривать, а изучить, как устроены слайс, мапа или интерфейс изнутри, и тогда вы сами всё поймёте. И сделать это будет несложно, потому что язык Go написан на языке Go и использует свои же примитивы для своих же структур данных.

    Из всего вышеописанного мы делаем вывод, что не все книжки одинаково полезны даже для подтирания, не то что для изучения.

    Я рекомендую вам самый лучший инструмент для первоначального вкатывания в Go - это официальный курс "A Tour of Go", где вы в интерактивном режиме изучите базовые основы языка за пару дней. А дальше уже можно смотреть на книги, и уже самому находить в них такие вот несуразности. Не стесняйтесь преходить прямо в IDE на типы или определения функций, чтобы самому смотреть, что же там возвращается. Так как, на наше счастье, Go - это строго-типизированный язык, то никаких сюрпризов и подвохов там не будет.

    P.S. Нашёл отличную статью со списком материалов в дополнение: https://habr.com/ru/companies/selectel/articles/929858/
    Ответ написан
    2 комментария
  • Блокировка сайта для всей сети?

    b1ora
    @b1ora Куратор тега MikroTik
    Контакты в профиле
    Через DNS FWD или address list
    Ответ написан
    5 комментариев
  • Кто должен устанавливать cookie, клиент или сервер?

    1. Клиент - ваш враг! Это единственно-верный подход при разработке web-сервисов. У клиента может быть дырявый древний браузер насквозь пробитый вирусами и вредоносными расширениями. Ваша задача - максимально обезопасить и сервер и бедного юзверя от этой гадости.

    2. Поэтому лучше всего генерировать куку на сервере. И не простую, а минимум:
    • HttpOnly
    • Secure
    • SameSite=lax


    3. Приложите уникальный CSRF-токен, и спите относительно спокойно.

    4. Если же вашему JavaScript ну очень нужна именно в куке какая-то дополнительная информация, не содержащая критических защищённых данных, то можете установить вторую куку откуда угодно. Но эти данные также надо считать вражескими и везде перепроверять.
    Ответ написан
    Комментировать
  • В чем разница между терминалом, эмулятором терминала и консолью?

    Olej
    @Olej
    инженер, программист, преподаватель
    Если не вдаваться в историю (телетайп как терминал и т.д.) и премудрости терминологии (удалённый RS-232 дисплей как терминал) ... что обстоятельно описал Vladimir Zhurkin, то:
    - чтобы не путаться, в Linux сложилось так, что текстовой консолью (просто консолью) называют вот те 6 (обычно, но может быть до 63-х) текстовые сессии (экраны), которые вы можете переключать Ctrl+Alt+F2, Ctrl+Alt+F3 и т.д.
    - в одной (но может быть и несколько) из таких консолей (обычно Ctrl+Alt+F1 или Ctrl+Alt+F7) запущена сессия графического сервера X Window ... то что вы видите как GUI...
    - а в этой графической сессии, среди других GUI программ может быть запущены разные программы эмулятров терминала (gnome-terminal и мн. др.)
    - вот эти окна или вкладки эмулятров терминала можете называть терминал ... если не блюсти в тщательности терминологическую девственность ;-) ... потому что нет других терминалов в современном Linux
    - наконец, в серверном Linux может вообще не быть графики (X Window), а значит и терминалов, но там всегда и обязательно может быть до 63 текстовых консолей...

    Можно было бы вообще консоль (текстовую) и терминал (графический) употреблять как синонимы, в пользовательском смысле (какая вам разница? ;-) ) ... если бы не некоторые тонкие различия:
    - многие (но не все) сообщения ядра и модулей ядра Linux отображаются в текстовой консоли, но не отображаются в эмуляторе терминала;
    - текстовая консоль и эмулятор терминала совершенно по-разному руссифицируются: что во 2-м выглядит как текст, в 1-м может быть как ... кракозябры;
    - если из модулей ядра Linux выбросить русскоязычное сообщение даже на корректно руссифицированную консоль ... то опять же - кракозябры;

    P.S. Хотя, вот исторический парадокс! - все текстовые программы, кторые в 99.9...% случаев запускаются в графическом терминале, называются консольные приложения. И даже в системах Windows, где вообще "на дух" нет текстовой консоли - всё-равно консольные приложения...
    Ответ написан
    9 комментариев
  • В чем разница между терминалом, эмулятором терминала и консолью?

    icCE
    @icCE
    youtube.com/channel/UC66N_jRyZiotlmV95QPBZfA
    Консоль - это совокупность устройств, которые позволяет вам взаимодействовать с устройством.
    Раньше консолью мог быть обычный принтер (в принципе и сейчас может), тогда это будет текстовая консоль/терминал. Не надо путать с текстовым интерфейсом.

    Терминал - По сути это так же устройство для ввода и вывода информации но
    >Консоль, это уже обёртка над терминалом.
    В корне не верно.

    Терминал, это уже надстройка над консолью и под собой больше подразумевает удаленный доступ с мало мощной машины. Раньше, это были очень и очень дешевые устройства, но медленные.
    Поэтому у каждого пользователя, была своя терминальная сессия разделенная по времени и ресурсу. (собственно сейчас почти все так же )

    В итоге - консоль, это работа непосредственно с самим устройство,терминал -некая удаленная работа.
    В графической среде мы запускаем эмулятор терминала, который дает нам доступ к "консоле" текущий или удаленной машины.
    Ответ написан
    Комментировать
  • Cтоит ли брать для тестирования (auto) Macbook Air M2 16gb 13"?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Любой мак на арме в целом лучше, чем все старые маки на интеле. Для ваших задач подойдёт любой мак на арме с 16 гигами ОЗУ и больше. Аир м1 с 16 гигами легко переваривает 10-15 докер контейнеров. Брать м2 на 16 гигов я бы не советовал - если бюджет ограничен, то лучше взять м1 с 16 гигами. М2 известен проблемами с перегревом и троттлингом под большой нагрузкой. Единственная причина брать м2 - ограниченный бюджет и вариант с 24 гигами ОЗУ. По производительности там не такая уж большая разница. Аир в целом - отличнейшая и шустрая рабочая машинка. При ограниченном бюджете и если нет жёстких требований к макоси - то лучше взять классический х86 ноут и поставить туда винду/линукс.
    Ответ написан
    Комментировать
  • Почему не срабатывает регулярное выражение?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Ошибка - в экранировании последней фигурной скобки.
    Алгоритм RegExp видит экранирование, поэтому считает эту фигурную скобку несущественной, из-за этого RegExp выражение становится некорректным (не закрыта фигурная скобка), оно не обрабатывается.

    Проверяется очень просто: https://regex101.com/r/nfsYd5/1
    Зайдите, и удалите последнее экранирование, и выражение сразу засияет всеми красками заработает!
    Ответ написан
    1 комментарий
  • Полная разница sudo su, sudo -i, sudo -s?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    - Разница 1: Почти, sudo -i также меняет HOME на /root, и читает логин скрипты root юзера.
    - Разница 2: Верно, действия с sudo -i и sudo -s логгируются в журналах юзера, а sudo su - нет.
    - Разница 3: Верно, sudo позволяет настраивать ограничения для команд через sudo -i и sudo -s, но не для sudo su (так как sudo su переключает юзера в root).
    Еще не понял разницу между
    sudo su
    sudo su -

    - sudo su - переключает юзера на root, но окружение при этом не является полным root окружением.
    - sudo su - - эмулирует полный вход юзера root (login shell). Будут прочитаны все файлы конфигурации, которые обычно читаются при входе root (profile, .bash_profile, .bashrc и что-то там еще). Насколько я понимаю, это то, что нужно Вам при работе от имени юзера root.
    И где можно смотреть логи пользаков при использовании sudo -i, sudo -s?

    Viewing and monitoring log files, можно еще заюзать journalctl.
    Ответ написан
    7 комментариев
  • Может ли соединение между 2 серверами на Linux быть одновременно и локальной сетью и мостом?

    Afranius
    @Afranius
    Из говорящих дольше живут те, что говорят меньше.
    А зачем такие извращения? Кабель от провайдера в свитч, а от свитча на оба компа.
    И устанавливай PPPoE - соединение по очереди хоть с первого, хоть со второго (если только пров привязку по маку не делает). Потому что одновременно с обоих PPPoE работать не будет.

    Вообще задача не понятна. Если первый комп настроен как шлюз, то при наличии локальной сети и поднятом PPPoE интернет и так будет на обоих. Зачем нужна другая сессия?
    Ответ написан
    1 комментарий
  • Может ли соединение между 2 серверами на Linux быть одновременно и локальной сетью и мостом?

    @rPman
    Сетевые устройства типа link/ether могут быть объединены в bridge и полученное устройство так же будет типа link/ether и ему можно назначить ip адрес (собственно у него будет полноценный mac и он получит его автоматически), по факту сетевой мост это виртуальный неуправляемый коммутатор (свитч), которые могут быть подключены каскадно (только кольца не нужно делать).

    Если у тебя есть какой-либо vpn, так же создающий link/ether (pppoe это тоже), то его можно добавить в сетевой мост и он так же будет работать как ожидается. Т.е. у тебя может быть сетевой мост на нескольких компьютерах в сети, каждый компьютер может поднять свой vpn ether, и добавить его в этот сетевой мост. в итоге все эти vpn сети будут объеденены в одну локальную сеть, без настроек маршуртизации и дополнительных шевелений.

    p.s. могут быть нюансы с arp таблицами, например при создании сетевого туннеля типа ethernet с помощью ssh, и объединение его tap0 в сетевой мост с физическим устройством из локальной сети будет работать, но с задержкой (примерно в 20 секунд) с момента подключения, пока информация об удаленных устройствах сети доедет до локальной (по крайней мере я эту проблему понял именно так), по каким то причинам, передобавление устройства в мост эту таблицу у bridge в других компьютерах локальной сети сбрасывает
    Ответ написан
    Комментировать
  • Почему wc -l выдает на 1 строку меньше?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Потому что считается количество переводов строки, а у вас последняя строка заканчивается концом файла, а не переводом.
    Ответ написан
  • Как настроить MikroTik в одну подсеть на нескольких подразделениях?

    b1ora
    @b1ora Куратор тега MikroTik
    Контакты в профиле
    Растягивание L2 это не правильное планирование всего что можно.

    Но если очень хочется:
    Меняем /24 на /22
    Тем самым каждая локация становится со своей /24, но /22 домене
    Блокируем DHCP между сетями

    EoIP подымаем между Lo интерфейсами OSPF и бриджуем в сеть.

    По такой схеме EoIP работает поверх wireguard +маршрутизация Lo интерфейсов отрабатывает как нужно.
    Ответ написан
    Комментировать
  • Как в bash из массива удалить элемент c с конкретным значением?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    for (( i=0; i <= ${#lng[*]}; ++i )); do
      [ "${lng[$i]}" == "none" ] && unset lng[$i]
    done
    Ответ написан
    Комментировать
  • LPT внутрь виртуальной машины KVM?

    @rPman
    proxmox использует kvm
    kmv позволяет пробрасывать pci и pci-e (очень старое железо без pci с isa скорее всего не получится, но там и kvm запустить нормально не получится) контроллеры в виртуальную машину, с помощью lspci посмотри, на какой именно контроллер повешан lpt и пробрось его (в биосе нужно будет включить iommu кажется называется), гуглить по ключевым словам kvm pci passthrough

    upd. совсем забыл, сейчас погуглил, в старых компьютерах lpt подключался через южный мост или PCH контроллер, а вот его непонятно как пробрасывать.

    в общем сначала нужно удостовериться что на материнке для lpt не развели отдельного pci контроллера (как это делают с usb), в windows можно посмотреть прямо в диспетчере устройств (в меню выбрать - по подключению)

    p.s. у virtualbox вроде бы есть проброс lpt
    Ответ написан
    1 комментарий
  • Как поймать, что дает высокий Load Average?

    shambler81
    @shambler81 Куратор тега Linux
    1. поставь munin с плагинами на веб сервер -там будет 99% видно где кто и когда дешево и сердито.
    2. iotop -oka тоже даст понимания особенно если это I-O проблема.
    3 Поздравляю вас ддосят, можно проверить по аксесс логу апача или по подключениям
    netstat -ntu | awk '{print $5}' | grep -vE "(Address|servers|77.37.156.60|79.137.175.245|192.168.5.201|95.163.251.234|127.0.0.1|8.8.8.8|8.8.4.4)" | cut -d: -f1 | sort | uniq -c | sort -n| sed 's/^[ \t]*//'

    смотрим если там все плохо вас ддосят, плохо это по факту если больше 5 подключений на ip или этих подключений целая куча.
    Ответ написан
    5 комментариев
  • Как сделать импорт переменной из 1 пакета, когда она в другой?

    Go не любит лишних усложнений. У языка такая философия.
    Вы ведь всё равно все ошибки держите в одном пакете, т.е. они всё равно в одной куче с точки зрения программы. Почему бы тогда вместо папок не использовать просто файлы? Т.о. плоская структура с именами файлов вместо папок будет соответствовать вашим нуждам.

    err.go
    account.go
    auth.go
    json.go
    registation.go
    Ответ написан
    Комментировать
  • Как улучшить соединения к интернету?

    @default_route
    Посмотрите в сторону двух PLC модемов
    tp_link_tl_pa4010pkit_powerline_500_mbps_86562_3.jpg
    Ответ написан
    2 комментария
  • Доступ в интернет через 2 MikroTik, как?

    @agpecam
    172.27.180.200 не знает, что сеть 192.168.0.0/24 находится за 172.27.180.202
    Ответ написан
    1 комментарий
  • Как мне настроить переадрисацию пакетов wireguard в роутере mikrotik на клиенте?

    b1ora
    @b1ora Куратор тега MikroTik
    Контакты в профиле
    Вам нужен Mangle и Route Table
    В частности PBR
    Ответ написан
    1 комментарий