Jump to content

Search the Community

Showing results for tags 'entware'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Keenetic Community
    • Forum policy
    • Community Support & Knowledge Exchange
    • Off-topic lounge
  • Keenetic Updates
    • KeeneticOS
    • Keenetic mobile application
    • Keenetic RMM system
  • Форум пользователей Keenetic
    • Обмен опытом
    • KeeneticOS
    • Мобильное приложение
    • Keenetic RMM

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Location


Web-site


Interests


Occupation


AOL Account


ICQ Account


WLM


YAHOO


Facebook Account


Twitter Account


Skype Account


Youtube Account


Google+ Account


Keenetic

  1. Добрый день. Хочу предложить всем скрипт, который я доработал. Изначально ссылкой поделился zyxmon, а на том форуме еще кто-то, а он взял еще у кого-то. По этому сразу прошу прощения, за то, что не уловил всю длинную цепочку авторов, но, если надо, то меня поправят в этом вопросе. Не ругайте сильно, если где-то опечатался, все желательно проверить, мне пока негде. Готов к замечаниям, я старался, надеюсь кому поможет. Скрипту требуется bash и wget . (opkg install bash wget openssl-util openvpn-openssl) Что было сделано: Добавлена генерация ta.key. Содержимое этого файла включено в конфигурацию сервера и клиента. Все файлы с ключами, используемые сервером, включены внутрь конфига сервера. (ранее было отдельными файлами со ссылками в конфиге). Выключена компрессия lzo перенесены логи в другой каталог status /opt/var/log/openvpn-status.log и log-append /opt/var/log/openvpn.log сам файл: #!/opt/bin/bash #OpenVPN road warrior installer for Entware-NG running on NDMS v.2. Please see http://keenopt.ru and http://forums.zyxmon.org #This script will let you setup your own VPN server in a few minutes, even if you haven't used OpenVPN before if [[ ! -e /dev/net/tun ]]; then echo "TUN/TAP is not available" exit 1 fi newclient () { # Generates the custom client.ovpn cp /opt/etc/openvpn/client-common.txt ~/$1.ovpn echo "<ca>" >> ~/$1.ovpn cat /opt/etc/openvpn/easy-rsa/pki/ca.crt >> ~/$1.ovpn echo "</ca>" >> ~/$1.ovpn echo "<cert>" >> ~/$1.ovpn cat /opt/etc/openvpn/easy-rsa/pki/issued/$1.crt >> ~/$1.ovpn echo "</cert>" >> ~/$1.ovpn echo "<key>" >> ~/$1.ovpn cat /opt/etc/openvpn/easy-rsa/pki/private/$1.key >> ~/$1.ovpn echo "</key>" >> ~/$1.ovpn echo "key-direction 1" >> ~/$1.ovpn echo "<tls-auth>" >> ~/$1.ovpn cat ta.key >> ~/$1.ovpn echo "</tls-auth>" >> ~/$1.ovpn } echo "Getting your ip address....please wait." IP=$(wget -qO- ipv4.icanhazip.com) if [[ -e /opt/etc/openvpn/openvpn.conf ]]; then while : do clear echo "Looks like OpenVPN is already installed" echo "" echo "What do you want to do?" echo " 1) Add a cert for a new user" echo " 2) Revoke existing user cert" echo " 3) Exit" read -p "Select an option [1-3]: " option case $option in 1) echo "" echo "Tell me a name for the client cert" echo "Please, use one word only, no special characters" read -p "Client name: " -e -i client CLIENT cd /opt/etc/openvpn/easy-rsa/ ./easyrsa build-client-full $CLIENT nopass # Generates the custom client.ovpn newclient "$CLIENT" echo "" echo "Client $CLIENT added, certs available at ~/$CLIENT.ovpn" exit ;; 2) # This option could be documented a bit better and maybe even be simplimplified # ...but what can I say, I want some sleep too NUMBEROFCLIENTS=$(tail -n +2 /opt/etc/openvpn/easy-rsa/pki/index.txt | grep -c "^V") if [[ "$NUMBEROFCLIENTS" = '0' ]]; then echo "" echo "You have no existing clients!" exit 5 fi echo "" echo "Select the existing client certificate you want to revoke" tail -n +2 /opt/etc/openvpn/easy-rsa/pki/index.txt | grep "^V" | cut -d '=' -f 2 if [[ "$NUMBEROFCLIENTS" = '1' ]]; then read -p "Select one client [1]: " CLIENTNUMBER else read -p "Select one client [1-$NUMBEROFCLIENTS]: " CLIENTNUMBER fi CLIENT=$(tail -n +2 /opt/etc/openvpn/easy-rsa/pki/index.txt | grep "^V" | cut -d '=' -f 2 | sed -n "$CLIENTNUMBER"p) cd /opt/etc/openvpn/easy-rsa/ ./easyrsa --batch revoke $CLIENT ./easyrsa gen-crl rm -rf pki/reqs/$CLIENT.req rm -rf pki/private/$CLIENT.key rm -rf pki/issued/$CLIENT.crt # And restart /opt/etc/init.d/S20openvpn restart echo "" echo "Certificate for client $CLIENT revoked" exit ;; 3) exit;; esac done else clear echo 'Welcome to this quick OpenVPN "road warrior" installer' echo "" # OpenVPN setup and first user creation echo "I need to ask you a few questions before starting the setup" echo "You can leave the default options and just press enter if you are ok with them" echo "" echo "First I need to know the IPv4 address of the network interface you want OpenVPN" echo "listening to." read -p "IP address: " -e -i $IP IP echo "" echo "What protocol do you want for OpenVPN?" echo "1) UDP" echo "2) TCP" read -p "Protocol (1 or 2): " -e -i 1 PROTOCOL echo "What VPN NET do you want?" read -p "VPN network: " -e -i 10.8.0.0 VPN_NET echo "Add VPN IP to getaway?" echo "y or n" read -p "VPN GW? " -e -i no VPN_GW echo "" if [ "$PROTOCOL" = 2 ]; then PROTOCOL=tcp PORT=443 else PROTOCOL=udp PORT=1194 fi echo "What port do you want for OpenVPN?" read -p "Port: " -e -i $PORT PORT echo "" if ["$VPN_GW" = "y" ]; then echo "What DNS do you want to use with the VPN?" echo " 1) Current system resolvers" echo " 2) Yandex DNS" echo " 3) Google" read -p "DNS [1-3]: " -e -i 1 DNS echo "" fi echo "RSA key size 2048 or 1024 ?" echo "1) 2048" echo "2) 1024" read -p "RSA key size (1 or 2): " -e -i 1 RSA_KEY_SIZE echo "" if [ "$RSA_KEY_SIZE" = 2 ]; then RSA_KEY_SIZE=1024 else RSA_KEY_SIZE=2048 fi echo "" echo "Finally, tell me your name for the client cert" echo "Please, use one word only, no special characters" read -p "Client name: " -e -i client CLIENT echo "" echo "Okay, that was all I needed. We are ready to setup your OpenVPN server now" read -n1 -r -p "Press any key to continue..." # An old version of easy-rsa was available by default in some openvpn packages if [[ -d /opt/etc/openvpn/easy-rsa/ ]]; then mv /opt/etc/openvpn/easy-rsa/ /opt/etc/openvpn/easy-rsa-old/ fi # Get easy-rsa wget --no-check-certificate -O ~/EasyRSA-3.0.4.tgz https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.4/EasyRSA-3.0.4.tgz tar xzf ~/EasyRSA-3.0.4.tgz -C ~/ mv ~/EasyRSA-3.0.4 /opt/etc/openvpn/easy-rsa/ chown -R root:root /opt/etc/openvpn/easy-rsa/ rm -rf ~/EasyRSA-3.0.4.tgz cd /opt/etc/openvpn/easy-rsa/ if [ "$RSA_KEY_SIZE" = 1024 ]; then cp vars.example vars echo "set_var EASYRSA_KEY_SIZE 1024" >> vars fi # Create the PKI, set up the CA, the DH params and the server + client certificates ./easyrsa init-pki ./easyrsa --batch build-ca nopass ./easyrsa gen-dh ./easyrsa build-server-full server nopass ./easyrsa build-client-full $CLIENT nopass ./easyrsa gen-crl openvpn --genkey --secret ta.key echo "local $IP" > /opt/etc/openvpn/openvpn.conf echo "port $PORT proto $PROTOCOL dev tun sndbuf 0 rcvbuf 0 topology subnet server $VPN_NET 255.255.255.0 ifconfig-pool-persist ipp.txt" >> /opt/etc/openvpn/openvpn.conf if ["$VPN_GW" = "y" ]; then echo 'push "redirect-gateway def1 bypass-dhcp"' >> /opt/etc/openvpn/openvpn.conf # DNS case $DNS in 1) # Obtain the resolvers from resolv.conf and use them for OpenVPN grep -v '#' /etc/resolv.conf | grep 'nameserver' | grep -E -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | while read line; do echo "push \"dhcp-option DNS $line\"" >> /opt/etc/openvpn/openvpn.conf done ;; 2) echo 'push "dhcp-option DNS 77.88.8.8"' >> /opt/etc/openvpn/openvpn.conf echo 'push "dhcp-option DNS 77.88.8.1"' >> /opt/etc/openvpn/openvpn.conf ;; 3) echo 'push "dhcp-option DNS 8.8.8.8"' >> /opt/etc/openvpn/openvpn.conf echo 'push "dhcp-option DNS 8.8.4.4"' >> /opt/etc/openvpn/openvpn.conf ;; esac fi echo "keepalive 10 120 push \"route 192.168.1.0 255.255.255.0\" cipher AES-256-CBC compress status /opt/var/log/openvpn-status.log log-append /opt/var/log/openvpn.log client-to-client persist-key persist-tun verb 3 explicit-exit-notify 1 crl-verify /opt/etc/openvpn/easy-rsa/pki/crl.pem" >> /opt/etc/openvpn/openvpn.conf echo '<ca>' >> /opt/etc/openvpn/openvpn.conf cat pki/ca.crt >> /opt/etc/openvpn/openvpn.conf echo '</ca>' >> /opt/etc/openvpn/openvpn.conf echo '<cert>' >> /opt/etc/openvpn/openvpn.conf cat pki/issued/server.crt >> /opt/etc/openvpn/openvpn.conf echo '</cert>' >> /opt/etc/openvpn/openvpn.conf echo '<key>' >> /opt/etc/openvpn/openvpn.conf cat pki/private/server.key >> /opt/etc/openvpn/openvpn.conf echo '</key>' >> /opt/etc/openvpn/openvpn.conf echo '<dh>' >> /opt/etc/openvpn/openvpn.conf cat pki/dh.pem >> /opt/etc/openvpn/openvpn.conf echo '</dh>' >> /opt/etc/openvpn/openvpn.conf echo 'key-direction 0' >> /opt/etc/openvpn/openvpn.conf echo '<tls-auth>' >> /opt/etc/openvpn/openvpn.conf cat ta.key >> /opt/etc/openvpn/openvpn.conf echo '</tls-auth>' >> /opt/etc/openvpn/openvpn.conf echo "#!/bin/sh [ \"\$table\" != "filter" ] && exit 0 # check the table name iptables -I INPUT -i tun0 -j ACCEPT iptables -I FORWARD -s $VPN_NET/24 -j ACCEPT iptables -I INPUT -p $PROTOCOL --dport $PORT -j ACCEPT iptables -A INPUT -i lo -j ACCEPT" >> /opt/etc/ndm/netfilter.d/052-openvpn-filter.sh chmod +x /opt/etc/ndm/netfilter.d/052-openvpn-filter.sh echo "#!/bin/sh [ \"\$table\" != "nat" ] && exit 0 # check the table name iptables -t nat -A POSTROUTING -s $VPN_NET/24 -j SNAT --to $IP" >> /opt/etc/ndm/netfilter.d/053-openvpn-nat.sh chmod +x /opt/etc/ndm/netfilter.d/053-openvpn-nat.sh echo "client dev tun proto $PROTOCOL sndbuf 0 rcvbuf 0 remote $IP $PORT resolv-retry infinite nobind persist-key persist-tun remote-cert-tls server cipher AES-256-CBC compress verb 3" > /opt/etc/openvpn/client-common.txt # Generates the custom client.ovpn newclient "$CLIENT" echo "" echo "Finished!" echo "" echo "Your client config is available at ~/$CLIENT.ovpn" echo "If you want to add more clients, you simply need to run this script another time!" fi
  2. Установка и настройка Transmission Transmission - BitTorrent-клиент c открытым кодом. Версия из репозитория Transmission 2.94-2: http://bin.entware.net/mipselsf-k3.4/transmission-daemon-mbedtls_2.94-2_mipsel-3.4.ipk http://bin.entware.net/mipselsf-k3.4/transmission-web_2.94-2_mipsel-3.4.ipk Изменения: Transmission 2.94: All Platforms: Fix building against LibreSSL (#284, #486, #570) Fix building against mbedTLS (#115, #528) Fix torrents ETA calculation (#522) Fix cross-compilation issues caused by miniupnpc configuration test (#475) Qt Client: Fix bad downloaded percentage in DetailsDialog (#547) Web Client: Fix tracker error XSS in inspector (CVE pending; found by Rory McNamara of Gotham Digital Science) Fix torrent name HTML-escaping in trackers inspector tab Transmission 2.93: All Platforms: Fix CVE-2018-5702 (#468) Fix crash on handshake if establishing DH shared secret fails (#27) Fix crash when switching to next tracker during announcement (#297) Fix potential issue during password salt extraction in OOM situation (#141) Workaround glib_DEFUN- and glib_REQUIRE-related configuration issue (#215) Fix building against OpenSSL 1.1.0+ (#24) Mac Client: Fix uncaught exception when dragging multiple items between groups (#51) Don't hard-code libcrypto version to 0.9.8 in Xcode project (#71) Подготовка: 1. Создаем раздел EXT4 на жестком диске - Использование файловой системы EXT4 на USB-накопителях. 2. Установка и настройка Entware - в данной теме. Работоспособность проверена с: Keenetic Giga III и Keenetic Giga KN-1010, прошивка draft 2.12.A.3.0-2 от 06.02.2018, раздел на HDD EXT4. Обновляемся: ~ # opkg update Downloading http://bin.entware.net/mipselsf-k3.4/Packages.gz Updated list of available packages in /opt/var/opkg-lists/entware Downloading http://bin.entware.net/mipselsf-k3.4/keenetic/Packages.gz Updated list of available packages in /opt/var/opkg-lists/keendev Устанавливаем: / # opkg install transmission-daemon-mbedtls Installing transmission-daemon-mbedtls (2.94-2) to root... Downloading http://bin.entware.net/mipselsf-k3.4/transmission-daemon-mbedtls_2.94-2_mipsel-3.4.ipk Installing libcurl (7.59.0-2) to root... Downloading http://bin.entware.net/mipselsf-k3.4/libcurl_7.59.0-2_mipsel-3.4.ipk Installing libopenssl (1.0.2o-1) to root... Downloading http://bin.entware.net/mipselsf-k3.4/libopenssl_1.0.2o-1_mipsel-3.4.ipk Installing zlib (1.2.11-2) to root... Downloading http://bin.entware.net/mipselsf-k3.4/zlib_1.2.11-2_mipsel-3.4.ipk Installing libevent2 (2.0.22-1) to root... Downloading http://bin.entware.net/mipselsf-k3.4/libevent2_2.0.22-1_mipsel-3.4.ipk Installing libminiupnpc (2.0.20170509-1) to root... Downloading http://bin.entware.net/mipselsf-k3.4/libminiupnpc_2.0.20170509-1_mipsel-3.4.ipk Installing libnatpmp (20150609-1) to root... Downloading http://bin.entware.net/mipselsf-k3.4/libnatpmp_20150609-1_mipsel-3.4.ipk Installing libmbedtls (2.8.0-1) to root... Downloading http://bin.entware.net/mipselsf-k3.4/libmbedtls_2.8.0-1_mipsel-3.4.ipk Configuring zlib. Configuring libopenssl. Configuring libcurl. Configuring libmbedtls. Configuring libevent2. Configuring libnatpmp. Configuring libminiupnpc. Configuring transmission-daemon-mbedtls. / # opkg install transmission-web Installing transmission-web (2.94-2) to root... Downloading http://bin.entware.net/mipselsf-k3.4/transmission-web_2.94-2_mipsel-3.4.ipk Configuring transmission-web. Смотрим путь, где находится .conf, .json и загрузочный файл: / # opkg files transmission-daemon-mbedtls Package transmission-daemon-mbedtls (2.94-1) is installed on root and has the following files: /opt/bin/transmission-daemon /opt/etc/init.d/S88transmission /opt/etc/transmission/settings.json /opt/etc/sysctl.d/20-transmission.conf Запускаем: ~ # /opt/etc/init.d/S88transmission start Starting transmission-daemon... done. Останавливаем: ~ # /opt/etc/init.d/S88transmission stop Checking transmission-daemon... alive. Shutting down transmission-daemon... done. Настройка settings.json (можно настроить под себя): Директория, где лежит файл конфигурации /opt/etc/transmission: /opt/etc/transmission Директория, куда будут скачиваться торрент-файлы: "download-dir": "/tmp/mnt/NTFS_TEST/download", Директория, куда будут помещаться недоскаченные торрент-файлы: "incomplete-dir": "/tmp/mnt/NTFS_TEST/no_download", NTFS_TEST - для записи торрент-файлов указал раздел с фс NTFS, { "alt-speed-down": 50, "alt-speed-enabled": false, "alt-speed-time-begin": 540, "alt-speed-time-day": 127, "alt-speed-time-enabled": false, "alt-speed-time-end": 1020, "alt-speed-up": 50, "bind-address-ipv4": "0.0.0.0", "bind-address-ipv6": "::", "blocklist-enabled": false, "blocklist-url": "http://list.iblocklist.com/?list=bt_level1", "cache-size-mb": 2, "dht-enabled": true, "download-dir": "/tmp/mnt/NTFS_TEST/download", "download-queue-enabled": true, "download-queue-size": 5, "encryption": 2, "idle-seeding-limit": 30, "idle-seeding-limit-enabled": false, "incomplete-dir": "/tmp/mnt/NTFS_TEST/no_download", "incomplete-dir-enabled": true, "lpd-enabled": true, "message-level": 1, "peer-congestion-algorithm": "", "peer-id-ttl-hours": 6, "peer-limit-global": 2000, "peer-limit-per-torrent": 200, "peer-port": 51413, "peer-port-random-high": 65535, "peer-port-random-low": 49152, "peer-port-random-on-start": false, "peer-socket-tos": "lowcost", "pex-enabled": true, "port-forwarding-enabled": true, "preallocation": 1, "prefetch-enabled": false, "queue-stalled-enabled": false, "queue-stalled-minutes": 30, "ratio-limit": 2, "ratio-limit-enabled": false, "rename-partial-files": true, "rpc-authentication-required": false, "rpc-bind-address": "0.0.0.0", "rpc-enabled": true, "rpc-host-whitelist": "", "rpc-host-whitelist-enabled": true, "rpc-password": "{56d033989b5274bc42981b4b51ab541d664aa689c1che9lt", "rpc-port": 9091, "rpc-url": "/transmission/", "rpc-username": "root", "rpc-whitelist": "127.0.0.1", "rpc-whitelist-enabled": false, "scrape-paused-torrents-enabled": true, "script-torrent-added-enabled": false, "script-torrent-added-filename": "", "script-torrent-done-enabled": false, "script-torrent-done-filename": "", "seed-queue-enabled": false, "seed-queue-size": 10, "speed-limit-down": 100, "speed-limit-down-enabled": false, "speed-limit-up": 100, "speed-limit-up-enabled": false, "start-added-torrents": true, "trash-original-torrent-files": true, "umask": 18, "upload-slots-per-torrent": 14, "utp-enabled": true, "watch-dir": "/opt/etc/transmission/watchdir", "watch-dir-enabled": true } Запускаем: ~ # /opt/etc/init.d/S88transmission start Starting transmission-daemon... done. Заходим в WebUI по адресу http://192.168.1.1:9091/transmission/web/ и делаем настройку (можно настроить под себя): https://cloud.mail.ru/public/LFEg/9f6gjsFfu https://cloud.mail.ru/public/GnnN/jUoLTDCe5 https://cloud.mail.ru/public/CEya/dJBxGcRrL https://cloud.mail.ru/public/3uPy/pbjBx7pQ7 https://cloud.mail.ru/public/JCdn/7JCRmzQoS Версия Transmission: https://cloud.mail.ru/public/15nb/kNMkAY6zv Скорость download: https://cloud.mail.ru/public/HYLn/Jgw2ZWQje https://cloud.mail.ru/public/LbCB/zpUyaiW8B https://cloud.mail.ru/public/HS33/58Lv8v4dS Загрузка CPU: CPU: 34.6% usr 18.1% sys 0.0% nic 32.9% idle 3.0% io 0.0% irq 11.1% sirq Load average: 2.01 1.58 1.29 2/111 14504 PID PPID USER STAT VSZ %VSZ CPU %CPU COMMAND 13805 1 root S 48904 19.0 0 47.9 transmission-daemon -g /opt/etc/transmission https://cloud.mail.ru/public/CXMj/9s5Trqkfc Информация по настройке Transmission: https://help.keenetic.net/hc/ru/articles/213967249 http://nmt200.ru/nmt/apps/trans https://github.com/transmission/transmission/wiki Отдельное спасибо за обновление и поддержку репозитория @zyxmon, @TheBB
  3. Для тех, кто возможно искал: предустановленный Asterisk 11 и статья по настройке; полезная статья на старом форуме Zyxmon.
  4. Давно хотел подключить свою веб камеру Logitech HD Webcam C310 к роутеру ZyXEL Keenetic II, но не получалось настроить их связь. На днях нашёл инструкцию как подключить Logitech HD Webcam C270 к роутеру ASUS ( It's only for mipsel devices like RT-N16, RT-N66U, RT-AC66U...). Для подключения по SSH к Entware использовал плагин FireSSH, для Mozilla Firefox, с этим плагином все комманды можно вводить прям в окне браузера и он немного удобнее чем PuTTY. Попробовал установить по инструкции, но пакета mjpg-streamer в репозитории не оказалось, тогда решил поискать похожий пакет и спомощью команды opkg list вывел в консоль список всех возможных пакетов для установки из репозитория. Нашёл похожий пакет mjpg-streamer-zyx, установил его opkg install mjpg-streamer-zyx. Все нужные ядерные модули и драйвера для UVC веб камер уже есть в официальной прошивке. После чего остановил на всякий случай сервер mjpg-streamer-zyx с помощью команды /opt/etc/init.d/S96mjpg-streamer stop, убедился что Entware видит веб камеру с помощью команды ls /dev/vid*, на что был получен ответ /dev/video0, т.е. вебкамера видится Entware как video0. Запустил сервер mjpg-streamer-zyx с помощью команды /opt/etc/init.d/S96mjpg-streamer start, светодиод на вебкамере загорелся, значит изображение с неё начало транслироваться. Зашёл по адресу 192.168.1.1:3000/stream_simple.html, изображение с камеры появилось, но разрешение картинки было слишком маленьким "QVGA" 320x240, а частота кадров всего лишь 5 кадров в секунду. Чтоб повысить эти показатели, а также чтоб добавить возможность авторизации для доступа к видеопотоку нужно править конфиг mjpg-streamer-zyx. Сначало останавливаем сервер с помощью команды /opt/etc/init.d/S96mjpg-streamer stop, потом правим конфиг. В приведённой выше инструкции предлагается править конфиг mjpg-streamer-zyx с помощью консольного редактора nano (кому больше нравится пользуйтесь им), а мне привычнее делать всё через графический интерфейс (GUI) и для правки конфига я воспользовался текстовым редактором Notepad++, зашёл в папку с файлом конфигурации (S96mjpg-streamer) и открыл этот фаил с помощью Notepad++. После того как сделал все изменения и закрыл Notepad++ чтоб сохранить изменения, то он ненадолго (секунд на 10-15) подвис, но потом закрылся, я снова открыл конфигурационный фаил чтоб убедиться что изменения были сохранены. Изменил разрешение видео увеличив его до "XGA" 1024x768, добавил частоту кадров до 25 кадров в секунду, изменил порт доступа на более короткий 86 и добавил логин с паролем - c admin:admin чтоб никто кроме меня не смог просмотреть изображение с вебкамеры. В результате строка: mjpg_streamer -b -i "input_uvc.so -r 320x240 -f 5" -o "output_http.so -p 3000 -w /opt/share/www/webcam" изменилась на: mjpg_streamer -b -i "input_uvc.so -r 1024x768 -f 25" -o "output_http.so -p 86 -w /opt/share/www/webcam -c admin:admin" Снова запустил сервер /opt/etc/init.d/S96mjpg-streamer start, зашёл по адресу 192.168.1.1:86/stream_simple.html, мне было предложено ввести логин и пароль, когда я авторизовался, то увидел картинку с вебкамеры высокого разрешения и более высокую частоту кадров. Если зайти по адресу 192.168.1.1:86, то откроется окно с дополнительными возможностями, среди которых есть возможность сгенерировать плей лист, который кожно открыть в VLC проигрывателе и просматривать изображение через него. FireSSH 0.94.10 'Playfair' designed by Mime Čuvalo in Croatia SSH component is ported from Paramiko 1.7.7.1, created by Robey Pointer Connecting to 192.168.1.1... Connected (version 2.0, client dropbear_2016.73) Authentication (password) successful! Secsh channel 1 opened. BusyBox v1.24.2 () built-in shell (ash) ~ # opkg update Downloading http://pkg.entware-keenetic.ru/binaries/keenle/Packages.gz. Updated list of available packages in /opt/var/opkg-lists/keenle. ~ # opkg upgrade ~ # opkg install mjpg-streamer-zyx Installing mjpg-streamer-zyx (r116-2) to root... Downloading http://pkg.entware-keenetic.ru/binaries/keenle/mjpg-streamer-zyx_r116-2_keenle.ipk. Installing libjpeg (9a-1) to root... Downloading http://pkg.entware-keenetic.ru/binaries/keenle/libjpeg_9a-1_keenle.ipk. Configuring libjpeg. Configuring mjpg-streamer-zyx. ~ # /opt/etc/init.d/S96mjpg-streamer stop stopping mjpg_streamer... killall: mjpg_streamer: no process killed ~ # ls /dev/vid* /dev/video0 ~ # /opt/etc/init.d/S96mjpg-streamer start starting mjpg_streamer... enabling daemon modeforked to background (680) ~ # /opt/etc/init.d/S96mjpg-streamer stop stopping mjpg_streamer... ~ # /opt/etc/init.d/S96mjpg-streamer start starting mjpg_streamer... enabling daemon modeforked to background (802) ~ # Мой провайдер интернета предоставляет бесплатную услугу подключения доменного имени компьютеру, т.е. аналог сервисов no-ip.com и других. Пробовал подключаться к своему роутеру по доменному имени и в конце указывал порт 86, видеопоток транслируется без проблем, даже не пришлось настраивать проброс порта в настройках безопасности роутера. Во время видеотрансляции процессор и оперативная память роутера нагружаются не сильно, при этом у меня запущены FTP сервер и Transmission. Список пакетов в репозитории.txt FireShot Screen Capture.rar
  5. Что-то про OSPF вообще тишина. Внесу свои пять копеек. 1. Пакет bird4 мертв. При запуске загрузка cpu 100%, результата нет. Если из конфига убрать protocol device {scan time 10;} то запускается нормально, но естественно не работает. Нет стартового скрипта. Конфиг по умолчанию ищет /opt/etc/bird.conf, с пакетом ставится /opt/etc/bird4.conf. Дальше не копал. 2. Пакеты quagga. Все демоны некорректно отрабатывают опцию -d, соответственно стартовый скрипт делает вид что все запущено, но демоны тут же умирают. В виде временного решения заменил в стартовом скрипте "${BINDIR}/${d}" ${DAEMON_FLAGS} на ${BINDIR}/${d} & Работает.
  6. См. тут - Проблема в том, что при работе с 3.1, насколько я понял, пропало многое для DVB - в треде указание на Module /opt/lib/modules/4.9-ndm-0/kernel/compat.ko not found. У меня сегодня при инсталляции тоже на compat ругалось, не дома ставил, не переписал точно, как именно. Тюнер (Т220) еще надо к роутеру поднести, но проблемы предвижу...
  7. Статья с Хабра. Опубликовал пользователь @CodeName33 "...В этой статье я расскажу о том, как управлять устройствами nooLite через USB переходник РС1ххх прямо из проутера Zyxel Keenetic — без участия компьютера. Преамбула Темы про NooLite уже не раз тут мелькали, но, на всякий случай напомню, что это компоненты для построения «умного дома», общающиеся между собой посредством радиоканала. А ещё к их системе можно заказать USB адаптер, позволяющий отправлять команды с компьютера (на самом деле есть и тот, который может эти команды получать, но мы сейчас его рассматривать не будем). Когда-то давно я специально поднимал у себя на машине Web-сервер, на который можно было зайти с компьютера или телефона в домашней сети и управлять освещением, а также добавлять запланированные задачи. Например — я, как истинный сова, с трудом просыпаюсь рано утром, и даже с удовольствием не делал бы этого, но надо. И пробуждаться в темноте от звука будильника, было крайне тяжело, даже если поставить на него самую милую мелодию, из всех милых мелодий на земле. И я решил провести эксперимент, написав скрипт для плавного включения света, когда яркость увеличивается с 0 до 100% за 20 минут, тем самым имитируя восход солнца, и эксперимент удался — просыпаться стало значительно легче, когда свет не резко бьёт по глазам, а едва заметно нарастает, и организм реагирует на подобное пробуждение намного лучше будильника… Но что-то я ушёл от темы. Все это работало себе спокойно, и впрочем меня даже не напрягало то, что требуется постоянно включенный компьютер, у меня стоят тихие вентиляторы и его практически не слышно, но не так давно узнав, что на Zyxel Keenetic с прошивкой второй версии снова можно ставить пакеты OpenWRT у меня в голове начала созревать идея. И когда эта идея совсем меня допекла, никак не желая оставить в покое мой мозг, я решился — а, черт с ним! Впереди выходные, и я сделаю это! Повестка дня Итак, что же я собственно сделал? Сделал я следующее: — Веб-интерфейс управления светом и нагрузками прямо в роутере Zyxel Keenetic. — Команды отправляются непосредственно с роутера, через USB передатчик NooLite (РС1ххх) воткнутый в USB порт роутера. — В веб-интерфейсе можно настраивать запланированные задачи для cron для управления светом. — Консольная утилита, позволяющая отправлять команды непосредственно из командной строки роутера (под SSH) и если мой веб-интерфейс пришёлся не по вкусу, можно написать свой или встроить её вызов откуда угодно. Shut up and take my money Итак, что нам потребуется для настройки. Для начала подготовим роутер, делается это просто и достаточно подробно расписано тут. Дальше нам потребуется доустановить несколько пакетов, посему выполняем следующее: opkg update opkg install php5-cgi lighttpd-mod-fastcgi cron Эта команда устанавливает Веб-сервер, PHP, и cron для планирования задач. Я бы ещё Midnight Commander поставил, ибо удобнее: opkg install mc Дальше редактируем настройки Web-сервера: /opt/etc/lighttpd/lighttpd.conf указав верный порт: server.port = 82 80-й порт уже занять Web-интерфейсом роутера, поэтому выбираем другой. Затем редактируем файл:/opt/etc/lighttpd/conf.d/30-fastcgi.conf, сделав так: fastcgi.server = ( ".php" => ( "php-local" => ( "socket" => "/opt/tmp/php-fastcgi-1.socket", "bin-path" => "/opt/bin/php-fcgi", "max-procs" => 1, "broken-scriptfilename" => "enable", ) ), # ..... # ..... ) Вот и все, а теперь запускаем сервер: lighttpd -f /opt/etc/lighttpd/lighttpd.conf На этом подготовка закончена, и можно приступать к самому главному. Качаем этот архив. В нем находится программа, пару либов, и php файлы. Из папки binaries закидываем бинарники на флешку роутера, bin в bin, lib в lib, share в share. По идее он не должен предлагать что-то заменять, но если предложит — отказываемся, ибо тут надо разбираться. Если вы мне не доверяется, то в архиве в папке source лежит исходник утилиты для отправки команд NooLite, можете собрать его сами. Как это сделать — тема отдельная, здесь расписывать не буду, информации по этому поводу в сети много. Итак, если все файлы закинуты по своим местам, можно проверить работоспособность всего этого чуда. Идём в браузер и вводим IP адрес роутера и порт, который был вами указан в настройке веб-сервера. http://192.168.1.1:82/ Тут мы должны увидеть страницу с управление освещением. Но не вашим, а моим. Для того, чтобы сделать свои настройки, вам понадобиться отредактировать файл: /opt/share/www/config.php Я специально продокументировал его комментариями, думаю проблем с его редактированием не возникнет. После того как, вы настроите все под свою конфигурацию — можно начинать пользоваться. Веб-интерфейс сделан больше под мобильные устройства, но на десктопе тоже можно вполне пользоваться. Отдельное внимание обращаю на то, что создавать, включать, выключать и удалять задания для cron, можно прямо из браузера, при изменениях cron будет перезапущен и вам не надо ни о чем думать. Если же вы хотите пользоваться консольной утилитой, то просто наберите в SSH команду: noolite Вам выведется список параметров, тут тоже ничего сложного. Я проверял это на Zyxel Keenetic Giga II, у него 2 USB порта, но насколько я знаю, на роутерах с одним USB портом, можно использовать хаб. Я решил это проверить и у меня через хаб заработало..."
  8. В репозиторий Entware-3x добавлен пакет exfat-fuse, который позволяет монтировать флешки с exfat на кинетике. Установка элементарна opkg update opkg install exfat-fuse Перед использованием создайте точку монтирования mkdir -p /tmp/mnt/exfat Подключите флешку к кинетику. Скорее всего она определится, как sdb. Проверьте командой `fdisk -l` (нужно поставить `opkg install fdisk`). Монтируем флешку mount.exfat /dev/sdb1 /tmp/mnt/exfat Читаем, пишем. Перед отключением размонтируем fusermount -u /tmp/mnt/exfat Пока мы не пробовали собрать и не проверяли пакет под Entware-Keenetic.
  9. оно делает вид что работает, но никуда не пускает. и в гугле не густо. Entware-Keenetic
  10. Всем привет! Пытаюсь поднять вэб-сервер Apache на роутере Keenetic Giga III с Entware-3x. Сначала в логах при запуске выдавал следующую ошибку: [Tue Nov 08 23:43:27 2016] [alert] (669998)APR does not understand this error code: mod_unique_id: unable to find IPv4 address of "Keenetic_Giga" Configuration Failed Думаю, интересно - не выявить айпишник, ну ладно - укажу в /etc/hosts хоть какой-то. Указал дополнительно: 127.0.0.1 Keenetic_Giga Вроде эта ошибка исчезла. Но появилась другая: [Wed Nov 09 00:01:05 2016] [info] mod_unique_id: using ip addr 127.0.0.1 [Wed Nov 09 00:01:06 2016] [info] Init: Seeding PRNG with 0 bytes of entropy [Wed Nov 09 00:01:06 2016] [warn] Init: Session Cache is not configured [hint: SSLSessionCache] [Wed Nov 09 00:01:06 2016] [info] Init: Initializing (virtual) servers for SSL [Wed Nov 09 00:01:06 2016] [info] mod_ssl/2.2.31 compiled against Server: Apache/2.2.31, Library: OpenSSL/1.0.2j [Wed Nov 09 00:01:06 2016] [notice] Digest: generating secret for digest authentication ... [Wed Nov 09 00:01:06 2016] [notice] Digest: done [Wed Nov 09 00:01:06 2016] [info] mod_unique_id: using ip addr 127.0.0.1 [Wed Nov 09 00:01:07 2016] [info] Init: Seeding PRNG with 0 bytes of entropy [Wed Nov 09 00:01:07 2016] [info] Init: Initializing (virtual) servers for SSL [Wed Nov 09 00:01:07 2016] [info] mod_ssl/2.2.31 compiled against Server: Apache/2.2.31, Library: OpenSSL/1.0.2j [Wed Nov 09 00:01:07 2016] [notice] Apache/2.2.31 (Unix) mod_ssl/2.2.31 OpenSSL/1.0.2j DAV/2 configured -- resuming normal operations [Wed Nov 09 00:01:07 2016] [info] Server built: Nov 3 2016 13:54:31 [Wed Nov 09 00:01:07 2016] [debug] prefork.c(1023): AcceptMutex: sysvsem (default: sysvsem) [Wed Nov 09 00:01:07 2016] [notice] child pid 4923 exit signal Segmentation fault (11) [Wed Nov 09 00:01:07 2016] [notice] child pid 4926 exit signal Segmentation fault (11) [Wed Nov 09 00:01:08 2016] [notice] child pid 4924 exit signal Segmentation fault (11) [Wed Nov 09 00:01:08 2016] [notice] child pid 4925 exit signal Segmentation fault (11) [Wed Nov 09 00:01:08 2016] [notice] child pid 4927 exit signal Segmentation fault (11) [Wed Nov 09 00:01:09 2016] [notice] child pid 4929 exit signal Segmentation fault (11) [Wed Nov 09 00:01:10 2016] [notice] child pid 4931 exit signal Segmentation fault (11) [Wed Nov 09 00:01:10 2016] [notice] child pid 4932 exit signal Segmentation fault (11) [Wed Nov 09 00:01:10 2016] [notice] child pid 4934 exit signal Segmentation fault (11) [Wed Nov 09 00:01:10 2016] [notice] child pid 4935 exit signal Segmentation fault (11) [Wed Nov 09 00:01:10 2016] [notice] child pid 4936 exit signal Segmentation fault (11) [Wed Nov 09 00:01:10 2016] [notice] child pid 4937 exit signal Segmentation fault (11) [Wed Nov 09 00:01:11 2016] [info] server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers), spawning 8 children, there are 0 idle, and 0 total children [Wed Nov 09 00:01:12 2016] [notice] child pid 4939 exit signal Segmentation fault (11) [Wed Nov 09 00:01:12 2016] [notice] child pid 4940 exit signal Segmentation fault (11) [Wed Nov 09 00:01:12 2016] [notice] child pid 4941 exit signal Segmentation fault (11) Ну и так далее несколько раз в секунду появляются записи "child pid ХХХХ exit signal Segmentation fault (11)". Причем я пробовал как с определенными настройками, так и на чистых конфигах (поменяв порт 80 на 8080 конечно). Результат один и тот же. Ради интереса поставил сервер nginx - поменял порт на 8080 - заработало без нареканий. Даже в /etc/hosts ничего писать не пришлось. А вот с апачем такая беда. Подскажите, что можно с этим сделать? Есть вероятность завести апач на роутере??? Версии: apache - 2.2.31-2_mipsel-3x uname -a - Linux Keenetic_Giga 3.4.112 #1 SMP Mon Oct 24 20:43:04 MSK 2016 mips GNU/Linux Версия прошивки NDMS - v2.07(AAUW.5)C3
  11. Поскольку разработка популярного торрент клиента transmission буксует, вашему вниманию предлагается форк transmission-cfp. Он основан на версии 2.77 в которую внесены новые функции.Подробнее тут http://forums.zyxmon.org/viewtopic.php?f=5&t=5209 Процитирую @Александр Рыжов В начале каждого пункта я по возможности приведу опцию из settings.json и снабжу ссылкой на авторское описание фичи: построен на кодовой базе версии 2.77 (как самой стабильной по мнению автора) , но включающий новшества свежих версий, например иерархическое дерево файлов контента, prefetch-magnets-enabled - выбор контента после добавления magnet-ссылки, как в uTorrent. piece-temp-dir - сохранение закачанных, но невостребованных кусков. reverify-torrents-tries - принудительная проверка контента после скачивания. dht.bootstrap - добавление bootstrap DHT-нод, если взять их больше неоткуда. script-torrent-added-filename - скрипт, выполняемый после добваления торрента. stream-mode-default - видео качается с головы. Можно начать закачку и натравить на файл медиаплеер. поддержка magnet-линков в папке watchdir. blacklist для UDP-трекеров. расширенные настройки для webseed'ов. задание Peer ID/User agent - мимикрия под произвольного торрент клиента. группировка торрентов по категориям и задание для них персональных настроек. расширенные настройки для IPv6-интерфейса. cheat-mode-default - читинг ration/seeding/leeching. Без дальнейших комментариев. (конец цитаты) Собрал для entware-3x (mipsel), гонял около часа. Работает (предыдущая версия глючила). Желающие могут потестировать. http://entware-3x.zyxmon.org/binaries/mipsel/test/transmission-cfp-daemon_2.77plus-20170318-1_mipsel-3x.ipk http://entware-3x.zyxmon.org/binaries/mipsel/test/transmission-cfp-web_2.77plus-20170318-1_mipsel-3x.ipk И (на всякий пожарный) http://entware-3x.zyxmon.org/binaries/mipsel/test/transmission-cfp-cli_2.77plus-20170318-1_mipsel-3x.ipk http://entware-3x.zyxmon.org/binaries/mipsel/test/transmission-cfp-remote_2.77plus-20170318-1_mipsel-3x.ipk PS Могут быть проблемы с первым запуском. Второй раз запускается нормально.
  12. Добавить в WEB интерфейсе список сервисов управляемых скриптами в /opt/etc/inid.d с возможностью запуска (start) / остановки (stop) и отображением текущего статуса (check).
  13. Последнее время возможно после перехода на релиз прошивки 3 (на 2.15 не проверял пока) или обновление программ из Entware наблюдаю такую картину, например после чтения страницы или не пользованием Интернетом ~ 8-10мин набираю в браузере адрес forum.keenetic.net (или еще 2-3 сайта) получаю попытка соединения не удалась/попробовать снова, если набрать потом любой другой (он открывается) и опять проблемные то все открывается и работает. Схема Клиент-->--Dnsmasq-->--Dnscrypt-proxy-->--Интернет dnsmasq-full - 2.80-11 и dnscrypt-proxy2 - 2.0.21. Легкий анализ показал, что как бы проблема в следующем получен ответ для клиента с TC = 1 (Message truncated) или Flags: Response, Opcode - QUERY (Standard query), TC, RD, RA, Rcode - Success Такого никогда не было, начало появляться совсем не давно.
  14. Установка и настройка WGET Wget (CNU Wget) - свободная неинтерактивная консольная программа для загрузки файлов по сети. Поддерживает протоколы: HTTP, HTTPS, FTP, FTPS. Версия из репозитория Wget (1.19.5-2): http://bin.entware.net/mipselsf-k3.4/wget_1.19.5-2_mipsel-3.4.ipk Изменения - здесь. Подготовка: 1. Создаем раздел EXT4 на жестком диске - Использование файловой системы EXT4 на USB-накопителях. 2. Установка и настройка Entware - в данной теме. Обновляемся: / # opkg update Downloading http://bin.entware.net/mipselsf-k3.4/Packages.gz Updated list of available packages in /opt/var/opkg-lists/entware Downloading http://bin.entware.net/mipselsf-k3.4/keenetic/Packages.gz Updated list of available packages in /opt/var/opkg-lists/keendev Устанавливаем: / # opkg install wget Installing wget (1.19.5-2) to root... Downloading http://bin.entware.net/mipselsf-k3.4/wget_1.19.5-2_mipsel-3.4.ipk Installing zlib (1.2.11-2) to root... Downloading http://bin.entware.net/mipselsf-k3.4/zlib_1.2.11-2_mipsel-3.4.ipk Installing libopenssl (1.0.2p-1) to root... Downloading http://bin.entware.net/mipselsf-k3.4/libopenssl_1.0.2p-1_mipsel-3.4.ipk Configuring zlib. Configuring libopenssl. Configuring wget. Пример работы. 1. Записываем файл прошивки Keenetic OS для KN-1010 в нужный нам раздел: / # wget -P opt/home/ --no-check-certificate https://help.keenetic.com/hc/article_attachments/360000591459/KN-1010_stable_2.13.C.0.0-3.zip --2018-11-13 11:33:36-- https://help.keenetic.com/hc/article_attachments/360000591459/KN-1010_stable_2.13.C.0.0-3.zip Resolving help.keenetic.com... 104.16.55.111, 104.16.51.111, 104.16.52.111, ... Connecting to help.keenetic.com|104.16.55.111|:443... connected. WARNING: cannot verify help.keenetic.com's certificate, issued by 'CN=Let\'s Encrypt Authority X3,O=Let\'s Encrypt,C=US': Unable to locally verify the issuer's authority. HTTP request sent, awaiting response... 200 OK Length: 13821475 (13M) [application/zip] Saving to: 'opt/home/KN-1010_stable_2.13.C.0.0-3.zip' KN-1010_stable_2.13.C.0.0-3.zip 100%[=====================================================================================================================>] 13.18M 4.54MB/s in 2.9s 2018-11-13 11:33:40 (4.54 MB/s) - 'opt/home/KN-1010_stable_2.13.C.0.0-3.zip' saved [13821475/13821475] где: ключ -P --directory-prefix=PREFIX save files to PREFIX/.. - здесь указываем нужную директорию для скачивания. ключ --no-check-certificate - отключает проверку сертификата протокола HTTPS. 2. Пример копирования скаченного файла из одной директории в другую: / # cp opt/home/KN-1010_stable_2.13.C.0.0-3.zip tmp/mnt/MYFILES/KN-1010_stable_2.13.C.0.0-3.zip где: opt/home/ - откуда копируем файл; tmp/mnt/MYFILES/ - куда копируем файл. 3. Проверяем директорию, куда был записан файл: / # ls tmp/mnt/MYFILES/ Camera Uploads Keenetic 4G III_revB_2.13.C.0.0-3.txt Keenetic_Air_2.13.C.0.0-3.bin IMAX.Dolphins.2000.2160p.Amazon.WEBRip.DD2.0.x264-TrollUHD.mkv Keenetic 4G_KN-1210_2.13.C.0.0-3.bin components KN-1010_stable_2.13.C.0.0-3.zip Keenetic 4G_KN-1210_2.13.C.0.0-3.txt Keenetic 4G III_revB_2.13.C.0.0-3.bin Keenetic Air_2.13.C.0.0-3.txt Как видим, файл записан корректно, в нужную нам директорию. Описание ключей: / # wget --help GNU Wget 1.19.5, a non-interactive network retriever. Usage: wget [OPTION]... [URL]... Mandatory arguments to long options are mandatory for short options too. Startup: -V, --version display the version of Wget and exit -h, --help print this help -b, --background go to background after startup -e, --execute=COMMAND execute a `.wgetrc'-style command Logging and input file: -o, --output-file=FILE log messages to FILE -a, --append-output=FILE append messages to FILE -d, --debug print lots of debugging information -q, --quiet quiet (no output) -v, --verbose be verbose (this is the default) -nv, --no-verbose turn off verboseness, without being quiet --report-speed=TYPE output bandwidth as TYPE. TYPE can be bits -i, --input-file=FILE download URLs found in local or external FILE -F, --force-html treat input file as HTML -B, --base=URL resolves HTML input-file links (-i -F) relative to URL --config=FILE specify config file to use --no-config do not read any config file --rejected-log=FILE log reasons for URL rejection to FILE Download: -t, --tries=NUMBER set number of retries to NUMBER (0 unlimits) --retry-connrefused retry even if connection is refused --retry-on-http-error=ERRORS comma-separated list of HTTP errors to retry -O, --output-document=FILE write documents to FILE -nc, --no-clobber skip downloads that would download to existing files (overwriting them) --no-netrc don't try to obtain credentials from .netrc -c, --continue resume getting a partially-downloaded file --start-pos=OFFSET start downloading from zero-based position OFFSET --progress=TYPE select progress gauge type --show-progress display the progress bar in any verbosity mode -N, --timestamping don't re-retrieve files unless newer than local --no-if-modified-since don't use conditional if-modified-since get requests in timestamping mode --no-use-server-timestamps don't set the local file's timestamp by the one on the server -S, --server-response print server response --spider don't download anything -T, --timeout=SECONDS set all timeout values to SECONDS --dns-timeout=SECS set the DNS lookup timeout to SECS --connect-timeout=SECS set the connect timeout to SECS --read-timeout=SECS set the read timeout to SECS -w, --wait=SECONDS wait SECONDS between retrievals --waitretry=SECONDS wait 1..SECONDS between retries of a retrieval --random-wait wait from 0.5*WAIT...1.5*WAIT secs between retrievals --no-proxy explicitly turn off proxy -Q, --quota=NUMBER set retrieval quota to NUMBER --bind-address=ADDRESS bind to ADDRESS (hostname or IP) on local host --limit-rate=RATE limit download rate to RATE --no-dns-cache disable caching DNS lookups --restrict-file-names=OS restrict chars in file names to ones OS allows --ignore-case ignore case when matching files/directories -4, --inet4-only connect only to IPv4 addresses -6, --inet6-only connect only to IPv6 addresses --prefer-family=FAMILY connect first to addresses of specified family, one of IPv6, IPv4, or none --user=USER set both ftp and http user to USER --password=PASS set both ftp and http password to PASS --ask-password prompt for passwords --use-askpass=COMMAND specify credential handler for requesting username and password. If no COMMAND is specified the WGET_ASKPASS or the SSH_ASKPASS environment variable is used. --no-iri turn off IRI support --local-encoding=ENC use ENC as the local encoding for IRIs --remote-encoding=ENC use ENC as the default remote encoding --unlink remove file before clobber --no-xattr turn off storage of metadata in extended file attributes Directories: -nd, --no-directories don't create directories -x, --force-directories force creation of directories -nH, --no-host-directories don't create host directories --protocol-directories use protocol name in directories -P, --directory-prefix=PREFIX save files to PREFIX/.. --cut-dirs=NUMBER ignore NUMBER remote directory components HTTP options: --http-user=USER set http user to USER --http-password=PASS set http password to PASS --no-cache disallow server-cached data --default-page=NAME change the default page name (normally this is 'index.html'.) -E, --adjust-extension save HTML/CSS documents with proper extensions --ignore-length ignore 'Content-Length' header field --header=STRING insert STRING among the headers --compression=TYPE choose compression, one of auto, gzip and none. (default: none) --max-redirect maximum redirections allowed per page --proxy-user=USER set USER as proxy username --proxy-password=PASS set PASS as proxy password --referer=URL include 'Referer: URL' header in HTTP request --save-headers save the HTTP headers to file -U, --user-agent=AGENT identify as AGENT instead of Wget/VERSION --no-http-keep-alive disable HTTP keep-alive (persistent connections) --no-cookies don't use cookies --load-cookies=FILE load cookies from FILE before session --save-cookies=FILE save cookies to FILE after session --keep-session-cookies load and save session (non-permanent) cookies --post-data=STRING use the POST method; send STRING as the data --post-file=FILE use the POST method; send contents of FILE --method=HTTPMethod use method "HTTPMethod" in the request --body-data=STRING send STRING as data. --method MUST be set --body-file=FILE send contents of FILE. --method MUST be set --content-disposition honor the Content-Disposition header when choosing local file names (EXPERIMENTAL) --content-on-error output the received content on server errors --auth-no-challenge send Basic HTTP authentication information without first waiting for the server's challenge HTTPS (SSL/TLS) options: --secure-protocol=PR choose secure protocol, one of auto, SSLv2, SSLv3, TLSv1, TLSv1_1, TLSv1_2 and PFS --https-only only follow secure HTTPS links --no-check-certificate don't validate the server's certificate --certificate=FILE client certificate file --certificate-type=TYPE client certificate type, PEM or DER --private-key=FILE private key file --private-key-type=TYPE private key type, PEM or DER --ca-certificate=FILE file with the bundle of CAs --ca-directory=DIR directory where hash list of CAs is stored --crl-file=FILE file with bundle of CRLs --pinnedpubkey=FILE/HASHES Public key (PEM/DER) file, or any number of base64 encoded sha256 hashes preceded by 'sha256//' and separated by ';', to verify peer against --random-file=FILE file with random data for seeding the SSL PRNG --egd-file=FILE file naming the EGD socket with random data --ciphers=STR Set the priority string (GnuTLS) or cipher list string (OpenSSL) directly. Use with care. This option overrides --secure-protocol. The format and syntax of this string depend on the specific SSL/TLS engine. HSTS options: --no-hsts disable HSTS --hsts-file path of HSTS database (will override default) FTP options: --ftp-user=USER set ftp user to USER --ftp-password=PASS set ftp password to PASS --no-remove-listing don't remove '.listing' files --no-glob turn off FTP file name globbing --no-passive-ftp disable the "passive" transfer mode --preserve-permissions preserve remote file permissions --retr-symlinks when recursing, get linked-to files (not dir) FTPS options: --ftps-implicit use implicit FTPS (default port is 990) --ftps-resume-ssl resume the SSL/TLS session started in the control connection when opening a data connection --ftps-clear-data-connection cipher the control channel only; all the data will be in plaintext --ftps-fallback-to-ftp fall back to FTP if FTPS is not supported in the target server WARC options: --warc-file=FILENAME save request/response data to a .warc.gz file --warc-header=STRING insert STRING into the warcinfo record --warc-max-size=NUMBER set maximum size of WARC files to NUMBER --warc-cdx write CDX index files --warc-dedup=FILENAME do not store records listed in this CDX file --no-warc-compression do not compress WARC files with GZIP --no-warc-digests do not calculate SHA1 digests --no-warc-keep-log do not store the log file in a WARC record --warc-tempdir=DIRECTORY location for temporary files created by the WARC writer Recursive download: -r, --recursive specify recursive download -l, --level=NUMBER maximum recursion depth (inf or 0 for infinite) --delete-after delete files locally after downloading them -k, --convert-links make links in downloaded HTML or CSS point to local files --convert-file-only convert the file part of the URLs only (usually known as the basename) --backups=N before writing file X, rotate up to N backup files -K, --backup-converted before converting file X, back up as X.orig -m, --mirror shortcut for -N -r -l inf --no-remove-listing -p, --page-requisites get all images, etc. needed to display HTML page --strict-comments turn on strict (SGML) handling of HTML comments Recursive accept/reject: -A, --accept=LIST comma-separated list of accepted extensions -R, --reject=LIST comma-separated list of rejected extensions --accept-regex=REGEX regex matching accepted URLs --reject-regex=REGEX regex matching rejected URLs --regex-type=TYPE regex type (posix|pcre) -D, --domains=LIST comma-separated list of accepted domains --exclude-domains=LIST comma-separated list of rejected domains --follow-ftp follow FTP links from HTML documents --follow-tags=LIST comma-separated list of followed HTML tags --ignore-tags=LIST comma-separated list of ignored HTML tags -H, --span-hosts go to foreign hosts when recursive -L, --relative follow relative links only -I, --include-directories=LIST list of allowed directories --trust-server-names use the name specified by the redirection URL's last component -X, --exclude-directories=LIST list of excluded directories -np, --no-parent don't ascend to the parent directory Email bug reports, questions, discussions to <bug-wget@gnu.org> and/or open issues at https://savannah.gnu.org/bugs/?func=additem&group=wget. Если возникли проблемы при работе wget: Читаем посты от TheBB и zyxmon Дополнительный материл: КОМАНДА WGET LINUX Wget Wiki КОПИРОВАНИЕ ФАЙЛОВ В LINUX КОМАНДА LS LINUX
  15. Для дистанционного управления Entware через мобильный интернет пробовал использовать клиент JuiceSSH для Android. Думал что будет достаточно прописать проброс портов, но JuiceSSH так и не захотел подключаться по SSH к Entware. Нашёл в инете статью, но она похоже написана для старых версий Entware. Попробовал использовать инструкцию из этой статьи, но это тоже не помогло дистанционно подключиться к Entware по SSH. 1. Требования первого пункта по IP адресу (либо «пробросу» портов) - сугубо организационные и решаются с домашним провайдером на стадии заключения договора подключения к сети Интернет. Если провайдер не предоставляет такой услуги, то описанными в этой статье способами получить доступ из интернета к роутеру и домашней локальной сети невозможно. 2. Подробно установка системы opkg (в том числе и ssh сервера dropbear) описана в статье "Установка системы opkg." Сервер dropbear может быть запущен не только на порту по умолчанию (порт 22), но и на любом другом. Чтобы изменить порт по умолчанию (22), прослушиваемый сервером dropbear на нужный порт (например 45017), через PuTTy по ssh заходим на роутер и любым удобным способом корректируем файл /media/DISK_A1/system/etc/init.d/S10dropbear . Строка запуска dropbear в секции «start» должна выглядеть так: $DROPBEAR -p 45017 -d $DSS -r $RSA ВНИМАНИЕ !!! В дальнейшем везде в статье предполагаем, что dropbear у нас будет запущен на порту 45017. Чтобы изменения вступили в силу - перегружаем роутер. После перезагрузки роутер будет доступен из домашней сети по установленному порту 45017 (не забудьте откорректировать свойства соединения в PuTTy ). Для еще большей защиты и удобства возможно настроить авторизацию по приватным ключам. 3. Для настройки доступа из интернета к роутеру по ssh протоколу добавляем в автозапуск следующие строки: iptables -I INPUT -p tcp --dport 45017 -j ACCEPT iptables -I INPUT -i lo -j ACCEPT Первое правило позволяет роутеру принимать входящие соединения по порту 45017, второе правило необходимо для нормального хождения пакетов внутри роутера между интерфейсами. В «автозапуск» их можно добавить двумя способами: добавить правила в секцию start скрипта запуска dropbear /media/DISK_A1/system/etc/init.d/S10dropbear создать исполняемый файл /media/DISK_A1/system/etc/firewall.d/fw.sh следующего содержания: #!/bin/sh iptables -I INPUT -p tcp --dport 45017 -j ACCEPT iptables -I INPUT -i lo -j ACCEPT Второй способ является более правильным. Главное отличие между ними: при корректировке скрипта запуска dropbear правила iptables добавляются каждый раз при старте ssh сервера dropbear. при корректировке скрипта fw.sh правила iptables добавляются каждый раз при поднятии соединения на интерфейсе роутера. Если у вас pptp, l2tp и т.п. соединение с провайдером, то используйте именно этот вариант. Чтобы изменения вступили в силу - необходимо перегрузить роутер. На этом настройка Zyxel Keenetic/Keenetic Giga закончена, проверяем доступность роутера по ssh из интернета и переходим к настройке удаленной машины, с которой планируем подключаться к домашней сети. Может кто-нибудь написать инструкцию как дистанционно через интернет управлять Entware по SSH?
  16. Collectd - это простой и легкий сервис, который собирает данные о производительности системы и приложений и предоставляет механизмы для хранения полученных значений в различных форматах, например в RRD файлах. Сбор статистики производится с помощью подключаемых плагинов. В данном примере будет рассмотрена возможность использования плагина для работы с SNMP (получения данных со встроенного в роутер SNMP-сервера), плагина для работы с дисковой подсистемой и плагина для записи полученных данных в RRD БД. Задача collectd только собирать данные. Отрисовка графиков производится с помощью rrdcgi, который позволяет использовать некое подобие шаблонов, упрощающих формирование html-файлов и облегчающих процесс их настройки. Создание графиков выполняется только по запросу пользователя (при обращении к веб-скриптам), соответственно, нагрузка на систему незначительная. До графических возможностей netdata, недавно включенного в состав готовых пакетов, конечно, далеко, но здесь в первую очередь обеспечивается задача долговременного хранения данных статистики. Примеры отображения полученной информации: Этим возможности программы не ограничиваются. Существует дополнительные плагины, открывающие другие варианты сбора статистики (в том числе с определенных сервисов). Например, плагин iptables, позволяющий собирать данные по помеченным цепочкам правил (в планах отрисовывать графики по определенным клиентам wi-fi), плагин ping, формирующий данные по задержкам до определенного хоста и т.п.. Также есть возможность формирования нотификаций при достижении определенных значений полученной информации с помощью плагина threshold. Этап 1. Формирование данных статистики. Включаем через CLI поддержку snmp на роутере: service snmp system configuration save Ставим в entware SNMP-утилиты и проверяем работу протокола SNMP на роутере: opkg install snmp-utils snmp-mibs snmpwalk -c public 127.0.0.1 . >/opt/tmp/snmp.txt Если все прошло успешно, то должен создаться файл, содержащий все возможные OID роутера. Распаковываем содержимое приложенного архива files.zip во временную папку и устанавливаем collectd c необходимыми для нашего примера плагинами: opkg install collectd collectd-mod-logfile collectd-mod-disk collectd-mod-snmp collectd-mod-rrdtool Создаем каталог для rrd файлов: mkdir -p /opt/var/lib/collectd/rrd Копируем файл кастомных типов из архива share/custom-types.db в /opt/share/collectd Заменяем конфигурационный /opt/etc/collectd.conf на файл conf/collectd.conf Некоторые пояснения по конфигурационному файлу. Вначале указываются рабочие каталоги, а также подключается файл с кастомными типами (в нем описывается хранение характерных для keenetic данных: оперативной памяти и CPU). Далее указывается интервал (в примере 180 сек.) сбора статистики для плагинов (в настройках плагина snmp д.б. такой же интервал). Изменение интервала в дальнейшем допускается только при удалении всех rrd файлов (обнуление статистики). Но также можно выполнить их тюнинг вручную. В противном случае получим некорректную статистику. Плагин logfile нужен для записи журналов самого сервиса collectd. В нем и будем смотреть возникающие при настройке и работе сервиса ошибки. Плагин disk пишет информацию о работе выбранных дисков (разделов). В примере указаны только хардварные диски (производительность отдельных разделов не учитываю, т.к. у меня в этом необходимости нет). Информация начинает записываться в БД через 3*интервал_опроса после запуска collectd. Плагин rrdtool собственно и обеспечивает сохранение данных в БД RRD. Размер каждого созданного файла БД фиксированный, информация записывается по кругу, переписывая устаревшие данные. Наибольшая точность данных получается для статистики за последние сутки (в примере точность до 3 минут). Данные за неделю, месяц и год усредняются и хранятся с большими интервалами времени. Но при этом существует возможность считывания максимальных значений статистики, которые были в указанные периоды (эти данные не усредняются, и в отрисовке графиков мы их также будем отображать). Значение “RRARows 480” определяет количество записей для каждого раздела данных (сутки, неделя, месяц, год). 480 соответствует точности для записи данных за сутки с интервалом три минуты (24*60/3). Плагин snmp выполняет сбор статистики по протоколу SNMP. В разделе Host указывается узел, с которого собираются данные, а также имена разделов с данными для опроса определенных OID (информацию по нужным мне OID брал из временного файла /opt/tmp/snmp.txt). Запускаем collectd /opt/etc/init.d$ /opt/etc/init.d/S??collectd start Проверяем лог /opt/var/log/collectd.log на наличие ошибок. Если все прошло успешно, то через несколько минут в БД RRD можно посмотреть вносимые сервисом данные, например по uptime системы. Для этого установим rrdtool: opkg install rrdtool rrdtool dump /opt/var/lib/collectd/rrd/localhost/snmp/uptime.rrd | less На этом данный этап закончен. Можно спокойно передохнуть, а настройку отрисовки графиков продолжить в следующий раз. Этап 2. Формирование графиков статистики. Приступим к настройке визуальной части системы. Для этого установим http-сервер. В примере будет использоваться lighttpd с модулем lighttpd-mod-cgi. Можете использовать другой http-сервер, но необходимо будет в соответствии с документацией на сервер настроить поддержку выполнения CGI-скриптов. Также необходимо установить rrdcgi для формирования динамических HTML-файлов. Устанавливаем сервер и необходимое ПО: opkg install lighttpd lighttpd-mod-cgi rrdcgi Настраиваем сервер. В /opt/etc/lighttpd/lighttpd.conf меняем порт на 8000 и убираем комментарий: server.port = 8000 И добавляем в index-file.names запуск индексной страницы с именем index.rcgi: index-file.names = ( "index.php", "index.html", "index.htm", "default.htm", "index.lighttpd.html", "index.rcgi" ) В /opt/etc/lighttpd/conf.d/30-cgi.conf корректируем cgi.assign для выполнения скриптов с расширением .rcgi: cgi.assign = ( ".pl" => "/opt/bin/perl", ".cgi" => "/opt/bin/perl", ".rb" => "/opt/bin/ruby", ".erb" => "/opt/bin/eruby", ".py" => "/opt/bin/python", ".rcgi" => "/opt/bin/rrdcgi" ) Запускаем сервер: /opt/etc/init.d/S80lighttpd start Копируем содержимое архива www/* в каталог /opt/share/www. В переменной RRDPATH файлов 3*.rcgi нужно указать правильный путь к каталогу статистики, т.к. он зависит от названия вашего роутера. Также у меня для доступа в Интернет используется PPPoE, физическое подключение имеется только к WAN и к трем интерфейсам роутера. Поэтому набор файлов редактируйте под свои нужды. Но скрипты для общей статистики системы должны работать без каких-либо изменений. Подключаемые шаблоны находятся в /opt/share/www/include. Их тоже можно корректировать, если возникнет необходимость (например, изменить дизайн страницы, поменять цвет и форму графиков и т.п.). Документацию смотрите на официальной странице RRDTOOL. Если требуется выполнить какие-то дополнительные вычисления над данными в RRD (а в некоторых шаблонах это используется), то они производятся в обратной польской записи (RPN), в конце статьи есть ссылка на он-лайн конвертер. В общем шаблоне /opt/share/www/include/0-page.tmpl используется параметр <RRD::SETVAR ADDOPT5 --lazy>, необходимый для того, чтобы каждый раз не пересоздавать изображения с графиками, если информация в RRD файле не менялась. При отладке (например, подборе цвета линий на графике или изменении шрифтов) можно данный параметр изменить на заглушку <RRD::SETVAR ADDOPT5 --title=''>. В этом случае картинка будет перерисовываться каждый раз при открытии страницы со статистикой. Делаем исполняемым скрипт формирования индексной страницы и запускаем его для создания файла index.cgi: chmod +x /opt/share/www/scripts/index.sh /opt/share/www/scripts/index.sh Если потребуется изменить дизайн индексной страницы, то его придется изменять непосредственно в скрипте. Выносить HTML-код в отдельный файл пока не планировал. Открываем сайт со статистикой в браузере по адресу http://адрес_роутера:8000/ Архив (конфигурация, шаблоны, скрипт для создания индексной страницы): files.zip Список используемой литературы: Официальная страница collectd Collectd Wiki Официальная страница rrdtool Он-лайн конвертер для обратной польской записи Названия и коды цветов в HTML, CSS и JavaScript
  17. Когда авторы прошивки добавят fuse.ko в перечень доступных для кинетика модулей, Я.Диск можно будет подключать к кинетику как часть локальной файловой системы. Пока же работа с WebDAV-ресурсами доступна из командной строки. Ниже приведён пример работы с файлами Я.Диска с помощью пакета cadaver. ~ # # Установка пакета: ~ # opkg install cadaver Installing cadaver (0.23.3-1) to root... Downloading http://entware.zyxmon.org/binaries/mipsel/cadaver_0.23.3-1_mipselsf.ipk. Installing libncurses (6.0-1) to root... Downloading http://entware.zyxmon.org/binaries/mipsel/libncurses_6.0-1_mipselsf.ipk. Installing libexpat (2.1.0-3) to root... Downloading http://entware.zyxmon.org/binaries/mipsel/libexpat_2.1.0-3_mipselsf.ipk. Installing libneon (0.30.0-1) to root... Downloading http://entware.zyxmon.org/binaries/mipsel/libneon_0.30.0-1_mipselsf.ipk. Installing libreadline (6.3-1) to root... Downloading http://entware.zyxmon.org/binaries/mipsel/libreadline_6.3-1_mipselsf.ipk. Configuring libexpat. Configuring libneon. Configuring libreadline. Configuring libncurses. Configuring cadaver. ~ # # Подключение к Я.Диску. Введите email\пароль к учётке Яндекса при запросе Username\Password соответсвенно ~ # cadaver https://webdav.yandex.ru WARNING: Untrusted server certificate presented for `webdav.yandex.com.ua': Issued to: Russian Federation, Moscow, ITO, Yandex LLC, RU Issued by: Yandex Certification Authority, Yandex LLC, RU Certificate is valid from Thu, 19 Nov 2015 12:01:23 GMT to Sat, 18 Nov 2017 12:01:23 GMT Do you wish to accept the certificate? (y/n) y Authentication required for Yandex.Disk on server `webdav.yandex.ru': Username: mail@yandex.ru Password: dav:/> # Посмотр списка файлов/папок в корневой директории: dav:/> ls Listing collection `/': succeeded. Coll: Документы 0 Apr 20 2012 Coll: Загрузки 0 Feb 12 18:59 Coll: Скриншоты 0 Jun 6 2014 Coll: Entware-shared 0 Feb 16 2014 Coll: Public 0 Feb 17 2014 Coll: Settings 0 Feb 17 2014 dav:/> # Переход в папку Settings и обзор её содержимого: dav:/> cd Settings dav:/Settings/> ls Listing collection `/Settings/': succeeded. Coll: Miranda-ng 0 Apr 6 2015 Coll: Notepad++ 0 Oct 11 15:52 adblock.txt 1164 Sep 15 12:25 noscript.txt 6060 Jul 20 2015 putty sessions.reg 70798 Jul 20 2015 dav:/Settings/> # Пример скачивания файла adblock.txt dav:/Settings/> get adblock.txt Downloading `/Settings/adblock.txt' to adblock.txt: Progress: [=============================>] 100.0% of 1164 bytes succeeded. dav:/Settings/> # Пример переименования файла: dav:/Settings/> mv adblock.txt adblock.bak.txt Moving `/Settings/adblock.txt' to `/Settings/adblock.bak.txt': succeeded. dav:/Settings/> # Пример закачки файла на диск: dav:/Settings/> put adblock.txt Uploading adblock.txt to `/Settings/adblock.txt': Progress: [=============================>] 100.0% of 1164 bytes succeeded. dav:/Settings/> # Проверка результата работы dav:/Settings/> ls Listing collection `/Settings/': succeeded. Coll: Miranda-ng 0 Apr 6 2015 Coll: Notepad++ 0 Oct 11 15:52 adblock.bak.txt 1164 Sep 15 12:25 adblock.txt 1164 Feb 18 10:20 noscript.txt 6060 Jul 20 2015 putty sessions.reg 70798 Jul 20 2015 dav:/Settings/> # Окончание работы dav:/Settings/> exit Connection to `webdav.yandex.ru' closed.
  18. Установка и настройка e2fsprogs e2fsprogs - набор служебных утилит с открытым исходным кодом для работы с файловыми системами ext2, ext3 и ext4. Утилиты предназначены для проверки целостности файловых систем, поиска и исправления ошибок, изменения настроек, форматирования. Рассмотрим вариант работы утилиты с фс ext 2/3/4 раздела накопителя. Если Вы часто перезагружаете роутер или выключили внезапно свет, при этом диск с разделами не был безопасно извлечен из системы, то при последующей загрузке интернет-центра, в логе можно увидел запись: [W] Dec 15 02:27:50 ndm: kernel: EXT4-fs (sdb3): warning: maximal mount count reached, running e2fsck is recommended Драйвер EXT4-fs сообщает, что раздел sdb3 достиг максимального количества монтирований \ подключений. Проверяем максимальное количество монтирования раздела и сколько раз он уже был монтирован: / # tune2fs -l /dev/sdb3 | grep -E 'Mount|Maximum' Mount count: 8 Maximum mount count: 30 В файловых системах ext2/3/4 имеется параметр 'max-mount-count' и если его превысить, в логе будем видеть варнинг. Т.к. в ndm нет встроенного 'e2fsck', система не может сделать проверку раздела. Чтобы сбросить количество монтирований, убрать предупреждение при загрузке раздела, необходимо будет установить пакет с утилитами 'e2fsprogs': / # opkg info e2fsprogs Package: e2fsprogs Version: 1.44.3-1 Depends: libc, libssp, librt, libpthread, libuuid, libext2fs Status: install user installed Section: utils Architecture: mipsel-3.4 MD5Sum: 9e04041f932f0f9a5de6b57711d60cd0 Size: 197487 Filename: e2fsprogs_1.44.3-1_mipsel-3.4.ipk Conffiles: /opt/etc/e2fsck.conf dece11e2b15f487d7d2bf9f96abe2eaaf9cd33f02d7b9725b9116023d7 786cac Description: This package contains essential ext2 filesystem utilities which con sists of e2fsck, mke2fs and most of the other core ext2 filesystem utilities. Installed-Time: 1544833329 Внимание! Данный метод подходит для моделей ZyXEL Keenetic | Keenetic KN-**** с двумя USB или накопителями с двумя разделами ext2/3/4 и предустановленным Entware OPKG. Версия из репозитория e2fsprogs 1.44.3-1: http://bin.entware.net/mipselsf-k3.4/e2fsprogs_1.44.3-1_mipsel-3.4.ipk Подготовка: 1. Создаем раздел EXT4 на жестком диске - Использование файловой системы EXT4 на USB-накопителях. 2. Установка и настройка Entware - в данной теме. Обновление репозитория: / # opkg update Downloading http://bin.entware.net/mipselsf-k3.4/Packages.gz Updated list of available packages in /opt/var/opkg-lists/entware Downloading http://bin.entware.net/mipselsf-k3.4/keenetic/Packages.gz Updated list of available packages in /opt/var/opkg-lists/keendev Устанавливаем пакет e2fsprogs: / # opkg install e2fsprogs Installing e2fsprogs (1.44.3-1) to root... Downloading http://bin.entware.net/mipselsf-k3.4/e2fsprogs_1.44.3-1_mipsel-3.4.i pk Installing libuuid (2.32.1-1) to root... Downloading http://bin.entware.net/mipselsf-k3.4/libuuid_2.32.1-1_mipsel-3.4.ipk Installing libext2fs (1.44.3-1) to root... Downloading http://bin.entware.net/mipselsf-k3.4/libext2fs_1.44.3-1_mipsel-3.4.i pk Installing libblkid (2.32.1-1) to root... Downloading http://bin.entware.net/mipselsf-k3.4/libblkid_2.32.1-1_mipsel-3.4.ip k Installing libss (1.44.3-1) to root... Downloading http://bin.entware.net/mipselsf-k3.4/libss_1.44.3-1_mipsel-3.4.ipk Installing libcomerr (1.44.3-1) to root... Downloading http://bin.entware.net/mipselsf-k3.4/libcomerr_1.44.3-1_mipsel-3.4.i pk Configuring libuuid. Configuring libblkid. Configuring libcomerr. Configuring libss. Configuring libext2fs. Configuring e2fsprogs. Проверяем доступность утилиты e2fsck и ее опций: / # e2fsck -h e2fsck: invalid option -- 'h' Usage: e2fsck [-panyrcdfktvDFV] [-b superblock] [-B blocksize] [-l|-L bad_blocks_file] [-C fd] [-j external_journal] [-E extended-options] [-z undo_file] device Emergency help: -p Automatic repair (no questions) -n Make no changes to the filesystem -y Assume "yes" to all questions -c Check for bad blocks and add them to the badblock list -f Force checking even if filesystem is marked clean -v Be verbose -b superblock Use alternative superblock -B blocksize Force blocksize when looking for superblock -j external_journal Set location of the external journal -l bad_blocks_file Add to badblocks list -L bad_blocks_file Set badblocks list -z undo_file Create an undo file Проверяем монтирование разделов: / # mount | grep sd /dev/sdc1 on /tmp/mnt/f7bf5f53-ff93-d401-30ae-5f53ff93d401 type ext4 (rw,relatime,data=ordered) /dev/sdc1 on /opt type ext4 (rw,relatime,data=ordered) /dev/sdb1 on /tmp/mnt/01D477A2F4778D70 type tntfs (rw,nosuid,noexec,noatime,uid=0,gid=1000,umask=02,allow_utime=0020,nls=utf8,min_prealloc_size=64k,max_prealloc_size=869092348,readahead=4M,perm,user_xattr,case_insensitive,fail_safe,hidden=show,dotfile=show,protected_system=ignore,errors=continue,mft_zone_multiplier=1) /dev/sdb3 on /tmp/mnt/274659ce-3efd-0f7a-3de7-ab72ca4628b9 type ext4 (rw,nosuid,noexec,noatime,data=ordered) /dev/sda1 on /tmp/mnt/01D44C003E14AB80 type tntfs (rw,nosuid,noexec,noatime,uid=0,gid=1000,umask=02,allow_utime=0020,nls=utf8,min_prealloc_size=64k,max_prealloc_size=117219324,readahead=4M,perm,user_xattr,case_insensitive,fail_safe,hidden=show,dotfile=show,protected_system=ignore,errors=continue,mft_zone_multiplier=1) Судя по логу: [W] Dec 15 02:27:50 ndm: kernel: EXT4-fs (sdb3): warning: maximal mount count reached, running e2fsck is recommended - необходимо осуществить проверку раздела 'sdb3'. Размонтируем нужный раздел: / # umount /dev/sdb3 Производим проверку раздела, выбираем ключ ' -y Assume "yes" to all questions': / # e2fsck -y /dev/sdb3 e2fsck 1.44.3 (10-July-2018) EXT4: ignoring check interval, broken_system_clock set EXT4: clean, 1142/13221888 files, 2499351/26420736 blocks Вы можете выбрать и другие ключи, зависит от ситуации и проблемы. Монтируем раздел обратно: / # mount /dev/sdb3 /tmp/mnt/274659ce-3efd-0f7a-3de7-ab72ca4628b9 Проверяем счетчик монтирования раздела: / # tune2fs -l /dev/sdb3 | grep -E 'Mount|Maximum' Mount count: 1 Maximum mount count: 30 Как видим, значение сброшено. Далее можете перезагрузить роутер, чтобы убедиться в отсутствие варнинга при загрузке. Также варнинги можно проверить командой: / # dmesg | grep warning
  19. Здравствуйте. Поставил ext-ui-lighttpd-7 Всё хорошо, пытаюсь прикрутить mysql. Ставлю mariadb-server, mariadb-client Запускаю S70mysqld и не чего не происходит, не запускается.
  20. Предисловие: Искал простое решение для общения с друзьями по VoIP, да чтобы хоть как-то "секурно" было. Первым делом в голову приходит teamspeak, но его не существует под процессоры mips, пришлось искать альтернативы. На старом форуме zyxmon'a нашлись темы по серверу umurmur (это упрощенный сервер mumble), проведя несколько экспериментов было принято решение упростить и актуализировать инфу, для тех, кто эксперимента ради включил opkg в своем keenetic и пришел сюда. Пост написан в формате "for dummies", старался изложить от и до, не бейте сильно Для начала обновим список пакетов: opkg update Установка openssl (при необходимости) mkdir -p /etc/ssl/certs export SSL_CERT_DIR=/etc/ssl/certs source /etc/profile opkg install ca-certificates opkg install openssl-util Генерация сертификатов openssl в папку сервера cd /opt/etc/umurmur openssl genrsa 1024 > key.key openssl req -new -x509 -nodes -sha1 -days 365 -key key.key > cert.crt Установка umurmur под openssl (Если нет openssl выполняем: opkg install openssl-util) opkg install umurmur-openssl Конфигурирование сервера (mcedit нет в стандартном наборе, его надо установить "opkg install mc" или юзаем "vi","nano") mcedit /opt/etc/umurmur.conf Не забываем открыть UDP и TCP порты под номером 64738! (Как открыть порты) Запуск сервера вручную /opt/etc/init.d/umurmur start Автозапуск сервера Название скрипта в /opt/etc/init.d/ делится на 3 части: 1) Буква: S-запускать / K-не запускать; 2) Произвольное целое число: приоритет запуска; 3) Название сервиса (Например: S60umurmur) Все, можно болтать с друзьями на своем сервере!
  21. Всем доброго дня! Недавно решил сделать GSM шлюз с использованием модемов Huawei E1550. Для простоты было принято решение сделать это на Windows. Благо было бесплатное ПО, но внезапно 8.02.2016 данное ПО снова стало платным, поэтому вариант на Windows отпал. Следующим было решение использовать пакеты, например, OPKG. Начал изучать тему. За основу взял несколько статей: http://ew8bak.ru/2015/05/17/openwrt-ast ... %B9%D1%82/ https://habrahabr.ru/post/172345/ https://geektimes.ru/post/125186/ и некоторые другие. Дошло до того, что asterisk не может подключиться к COM порту модема. Потыкал по разному, понял, что дальше не понятно. Написал в теме на ixbt. http://forum.ixbt.com/topic.cgi?id=14:63096:764#764 В результате там был дан совет, что нужен модуль ядра usbserial.ko. Так как установкой пакетов первых раз занялся вчера, но с этими вещами мне не совсем понятно на текущий момент. Поэтому создают тему здесь. Так же напишу кратно, что я хочу сдлать. Хочу поставить один или несколько модемов GSM USB E1550, и звонить через них в сеть Оператора связи GSM. Решения такие в сети есть, вопрос как это сделать в текущий ситуации не понятно мне немного. UPD Напишу более подробно, что уже было сделано: Пришел к выводу, что нужно использовать пакеты. Сначала попробовал по статье viewtopic.php?f=2&t=2, но там не было необходимых пакетов, тогда попробовал по другой статье. Установил пакет Астериск, он запустился: Starting asterisk... done. ~ # asterisk -rv Asterisk 11.20.0, Copyright (C) 1999 - 2013 Digium, Inc. and others. Created by Mark Spencer Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= Но дальше пошли проблемы, не может подключиться к модему: Connected to Asterisk 11.20.0 currently running on Keenetic_Ultra (pid = 10059) [Feb 13 16:03:19] WARNING[10074]: chan_dongle.c:218 opentty: unable to open /dev/ttyUSB2: No such file or directory Keenetic_Ultra*CLI> Keenetic_Ultra*CLI> dongle show devices ID Group State RSSI Mode Submode Provider Name Model Firmware IMEI IMSI Number dongle0 0 Not initia 0 0 0 NONE Unknown Keenetic_Ultra*CLI> [Feb 13 16:12:33] ERROR[10622]: at_response.c:331 at_response_error: [dongle0] Command 'AT' failed Далее удалось добиться, что бы было видно несколько устройств путем удаления компонентов для работы с NDIS и установкой стоковой прошивки. ~ # ls /dev/ttyUSB* /dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 ~ # Запускаю ~ # asterisk -rvvvvv Asterisk 11.20.0, Copyright (C) 1999 - 2013 Digium, Inc. and others. И всё равно получаю [Feb 13 22:23:57] ERROR[6054]: at_response.c:331 at_response_error: [modem1] Command 'AT' failed -- [modem1] Error initializing Dongle -- [modem1] Dongle has disconnected Keenetic_Ultra*CLI> Пробовал по разному, но выходит так modem1 0 Not connec 0 0 0 NONE Unknown -- [modem1] Trying to connect on /dev/ttyUSB0... -- [modem1] Dongle has connected, initializing... [Feb 13 22:46:56] ERROR[8027]: chan_dongle.c:436 do_monitor_phone: [modem1] timedout while waiting 'OK' in response to 'AT' -- [modem1] Error initializing Dongle -- [modem1] Dongle has disconnected Keenetic_Ultra*CLI> Пробовал менять конфиг, но всё равно: Trying to connect on /dev/ttyUSB0... Trying to connect on /dev/ttyUSB1... Trying to connect on /dev/ttyUSB2... Устройства видны такие: ~ # ls -l /dev/ttyS* /dev/ttyUSB* crw------- 1 root root 4, 64 Jan 1 1970 /dev/ttyS0 crw------- 1 root root 4, 65 Feb 13 20:09 /dev/ttyS1 crw-r----- 1 root root 188, 0 Feb 13 22:58 /dev/ttyUSB0 crw-r----- 1 root root 188, 1 Feb 13 22:45 /dev/ttyUSB1 crw-r----- 1 root root 188, 2 Feb 13 22:58 /dev/ttyUSB2 ~ # Пробовал обращаться на /dev/ttyS0 Но то же самое было. [Feb 13 23:06:11] ERROR[9079]: chan_dongle.c:436 do_monitor_phone: [modem1] timedout while waiting 'OK' in response to 'AT' -- [modem1] Error initializing Dongle -- [modem1] Dongle has disconnected -- [modem1] Trying to connect on /dev/ttyS0... -- [modem1] Dongle has connected, initializing...
  22. Собран пакет encfs (EncFS — свободная криптографическая файловая система, основанная на FUSE, прозрачно шифрующая файлы, используя произвольную директорию в качестве места для хранения зашифрованных файлов. Распространяется под лицензией GPL.) Необходимо, чтобы Была установленная система пакетов Entware-keenetic - viewtopic.php?f=4&t=333 Был установлен модуль ядра fuse - viewtopic.php?f=3&t=471 1. Установка opkg install http://pkg.entware-keenetic.ru/binaries/keenle/t/encfs_1.9-20160630-1_keenle.ipk 2. Использование (в интернете много подробных статей). 2.1 Создадим две папки. Первая, где хранятся "секретные данные", вторая "точка монтирования" Например (используйте свои названия) mkdir -p /opt/crypto mkdir -p /opt/mcrypto 2.2 Запустим шифрование encfs /opt/crypto/ /opt/mcrypto/ Внимание! В команде нужно указывать полные пути к папкам. У Вас спросят тип шифрования (я проверял на стандартном) и пароль (если потеряете, данные не восстановите). Creating new encrypted volume. Please choose from one of the following options: enter "x" for expert configuration mode, enter "p" for pre-configured paranoia mode, anything else, or an empty line will select standard mode. ?> Standard configuration selected. Configuration finished. The filesystem to be created has the following properties: Filesystem cipher: "ssl/aes", version 3:0:2 Filename encoding: "nameio/block", version 4:0:2 Key Size: 192 bits Block Size: 1024 bytes Each file contains 8 byte header with unique IV data. Filenames encoded using IV chaining mode. File holes passed through to ciphertext. Now you will need to enter a password for your filesystem. You will need to remember this password, as there is absolutely no recovery mechanism. However, the password can be changed later using encfsctl. New Encfs Password: Verify Encfs Password: Проверяем, что все "сработало", командой mount. mount rootfs on / type rootfs (rw) /dev/root on / type squashfs (ro,relatime) tmpfs on /dev type tmpfs (rw,nosuid,noexec,relatime) none on /dev/pts type devpts (rw,nosuid,noexec,relatime,mode=600) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime) sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) /dev/mtdblock/7 on /storage type jffs2 (rw,nosuid,relatime) none on /proc/bus/usb type usbfs (rw,nosuid,noexec,relatime) /dev/sda1 on /tmp/mnt/entware type ext2 (rw,relatime) /dev/sda1 on /opt type ext2 (rw,relatime) encfs on /opt/mcrypto type fuse.encfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions) Как видим у нас появилась точка монтирования /opt/mcrypto. Именно в эту папку и следует помещать секретные данные. А в папке /opt/crypto Вы увидите, как они будут отображаться в зашифрованном виде. 2.3 Закончили. Отключаем зашифрованную папку fusermount -u /opt/mcrypto 2.4 Снова нужен доступ encfs /opt/crypto/ /opt/mcrypto/ Вводим пароль - все отобразиться расшифрованным в /opt/mcrypto. На параметрах шифрования по умолчанию у меня на медленную флешку скорость записи была около 1.5 МБ/с. Отписываемся о проблемах (на ядре 2.6.22 прошивка v1 все повисло). Отписываемся - устраивает ли скорость? Подбираем оптимальные для скорости параметры. По результатам Ваших ответов решим, нужно ли включать encfs в репозиторий.
  23. Как уменьшали, если не секрет?
  24. Update 28/02/2016. Прошу обратить внимание, теперь это штатная возможность прошивки и Entware больше не требуется. Инструкция ниже вам нужна только в том случае, если команда opkg прошивкой уже поддерживается, а schedule — ещё нет. Для того, чтобы включать точку доступа в определённое время необходимо: Установить Entware, Установить необходимые пакеты: opkg install cron ndmq Отредактировать файл /opt/etc/crontab, добавив в него следующие строчки: 00 09 * * * root ndmq -p 'interface WifiMaster0/AccessPoint0 up' -P message 00 21 * * * root ndmq -p 'interface WifiMaster0/AccessPoint0 down' -P message Запустить cron вручную или перезагрузить роутер: /opt/etc/init.d/S10cron start Здесь есть описание формата /opt/etc/crontab. В примере выше основная точка (WifiMaster0/AccessPoint0) будет ежедневно включаться (up) в 9:00 и выключаться (down) в 21:00. Признаком того, что всё работает будут строчки лога: [i] Dec 1 09:00:01 cron[16839]: (root) CMD (ndmq -p "interface WifiMaster0/AccessPoint0 up" -P message) [i] Dec 1 09:00:01 ndm: Network::Interface::Base: "WifiMaster0/AccessPoint0": interface is up. … [i] Dec 1 21:00:01 cron[16756]: (root) CMD (ndmq -p "interface WifiMaster0/AccessPoint0 down" -P message^I) [i] Dec 1 21:00:01 ndm: Network::Interface::Base: "WifiMaster0/AccessPoint0": interface is down. Чтобы аналогичным образом управлять гостевой точкой, замените «WifiMaster0/AccessPoint0» на «WifiMaster0/AccessPoint1».
×
×
  • Create New...