Перейти к содержанию

Рекомендуемые сообщения

Опубликовано

В веб основной системы шел, там не надо ничего менять. А на 222 нужный вам логин root пароль от админа.

Опубликовано
14 минуты назад, terrabyte сказал:

Изменил порт в веб интерфейсе на 222. В putty 222 и теперь пароль не подходит 🤔UPD: перезагрузил зашел по порту 222, но опять же в CLI

А в компонентах установлен "Сервер SSH"?

Опубликовано

  

46 минут назад, terrabyte сказал:

Entware установлен. Иначе куда бы я скрипт то закинул?

Удивительно как вы справились, в крайней версии скрипта нет строк установки пакета jq для разбора. 

Скрипт банально не заработает. 

  

5 минут назад, Orbit сказал:

пароль от админа.

зачем вводить в заблуждение? пароль на свежеустановленной entware keenetic

Опубликовано
48 минут назад, AndrewKvas сказал:

Часто, когда перезагружается роутер или по какой-то другой причине бывает ситуация, что GPON модем уже установил соединение с серым IP, роутер загружается, видит поднятое соединение и работает с этим соединением. Соответственно не отрабатывает скрипт в wan.d. По крайней мере я так представляю ситуацию. Приходится руками разрывать соединение, тогда всё  начинает работать как запланировано, пока не добьёмся белого IP. (По крайней мере я так вижу происходящее)

Куда и что прописать, чтобы роутер, после загрузки определял не серый ли IP у уже поднятого соединения и дергал его, если нужно?

Не кроном же это проверять...

Кто тут поднимает PPPOE сессию gpon терминал или роутер?

Опубликовано
2 минуты назад, batonskij сказал:

Скрипт банально не заработает

Всё было зря? А то у меня получилось через ssh сконнектится и права на скрипт поменять....

Опубликовано
16 минут назад, Rezdbic сказал:

Вроде порт entware в веб-интерфейсе не меняется...

root/keenetic попробуйте.

зашел на 222 порту с такой парой. Спасибо.

Опубликовано
8 минут назад, Rezdbic сказал:

Кто тут поднимает PPPOE сессию gpon терминал или роутер?

Формально роутер, но если его перезагрузить или ещё что - сессия сохраняется поднятой... И роутер работает с уже поднятой.

Опубликовано
3 минуты назад, AndrewKvas сказал:

Формально роутер, но если его перезагрузить или ещё что - сессия сохраняется поднятой... И роутер работает с уже поднятой.

Мне такая схема работы неизвестна...

А если GPON терминал перевести в режим моста и поднимать PPPOE сессию в роутере, не?

 

Опубликовано
Только что, Rezdbic сказал:

Мне такая схема работы неизвестна...

А если GPON терминал перевести в режим моста и поднимать PPPOE сессию в роутере, не?

 

Я не могу его перевести в режим моста. Он включен в WAN. Первоначально poe соединение поднимает роутер, но оно остаётся в случае перезагрузки роутера (по крайней мере мне так кажется).

Опубликовано

Если GPON терминал не в режиме моста, то он в режиме роутера и именно он первоначально поднимает PPPOE сессию. Что там дальше делает кинетик роутер уже неважно.

Опубликовано
50 минут назад, Rezdbic сказал:

Если GPON терминал не в режиме моста, то он в режиме роутера и именно он первоначально поднимает PPPOE сессию. Что там дальше делает кинетик роутер уже неважно.

PON терминал сам не поднимает POE  соединение. Оно поднимается роутером или если подключиться напрямую к ПК, то поднимается оттуда. Проблема только в том, что соединение в какой-то момент поднимается с серым ip и роутер это не видит. Не знаю как это отловить, если не справляется скрипт в wan.d.

Опубликовано (изменено)

Зачем вы дополнительно поднимаете PPPOE сессию на роутере?  Если ваш GPON терминал не в режиме моста? 

Старая версия скрипта, использующая ndmq работает идеально при правильной настройке сети. 

Для тех, кто не захочет переходить на rci, можно установить ndmq из архива

opkg install curl
curl https://bin.entware.net/mipselsf-k3.4/keenetic/archive/libndm_1.8.0-1_mipsel-3.4_kn.ipk >libndm.ipk
opkg install libndm.ipk
curl https://bin.entware.net/mipselsf-k3.4/keenetic/archive/ndmq_1.0.2-7_mipsel-3.4_kn.ipk > ndmq.ipk
opkg install ndmq.ipk

стащил у gvan из другого топика 

Изменено пользователем batonskij
Опубликовано
В 26.09.2022 в 15:41, batonskij сказал:

Удивительно как вы справились, в крайней версии скрипта нет строк установки пакета jq для разбора. 

Скрипт банально не заработает. 

Скрипт работает, но только при установленном уже пакете jq. При отладке убрал его проверку и установку из скрипта. Вот сейчас вернул и выложил обновлённый скрипт.

#!/opt/bin/sh

ConnName=Rostelecom
counter=/opt/tmp/CountReconnectWan.txt
previp=/opt/tmp/previp.txt
max_tries=10

if ! opkg list-installed | grep '^jq' > /dev/null; then
	opkg update
	opkg install jq
fi

sleep 3

RESP=$(wget -qO - http://localhost:79/rci/show/interface | jq -r ".[] | select(.description==\"$ConnName\") | select(.defaultgw==true) | .id, .description, .address")
[ -n "$RESP" ] || exit 1

_ip=$(echo $RESP | awk '{print $3}')
_name=$(echo $RESP | awk '{print $2}')
_iface=$(echo $RESP | awk '{print $1}')

if echo "$_ip" | grep -qE "^(10\.|100\.6[4-9]\.|100\.[7-9][0-9]\.|100\.1[01][0-9]\.|100\.12[0-7]\.|172\.1[6-9]\.|172\.2[0-9]\.|172\.3[01]\.|null)"; then
    [ -f "$counter" ] || echo "0" > $counter
    try_nr=$(cat $counter)
    try_nr=$((++try_nr))
    if [ $try_nr -gt $max_tries ]; then
        echo "0" > $counter
		logger -p local0.error -t white_ip[$$] "Provider: $_name, interface: $_iface. Too much tries. Exit"
        exit 1
    fi
    echo "$try_nr" > $counter
    logger -p local0.error -t white_ip[$$] "Provider: $_name, interface: $_iface. Reloading WAN due grey IP - $_ip. Try $try_nr of $max_tries."
	wget -qO - --post-data="[{\"interface\":{\"name\":\"$_iface\",\"down\":{}}}]" http://localhost:79/rci/
    sleep 3
    wget -qO - --post-data="[{\"interface\":{\"name\":\"$_iface\",\"up\":{}}}]" http://localhost:79/rci/
else
    echo "0" > $counter
    [ -f "$previp" ] || echo "0.0.0.0" > $previp
    _previp=$(cat $previp)
    if [ "$_previp" != "$_ip" ]; then
        logger -p local0.notice -t white_ip[$$] "Provider: $_name, interface: $_iface, white IP - $_ip."
        echo "$_ip" > $previp
	else
		logger -p local0.notice -t white_ip[$$] "Provider: $_name, interface: $_iface, white IP - $_ip (address unchanged)."
    fi
	exit 0
fi

 

030-rostelecom.sh

  • 4 месяца спустя...
Опубликовано (изменено)

Добрый день.

Форумчане есть ли возможность написать мануал по запуску данного скрипта что выше с нуля? Тему порыл ответа не нашел, заранее спасибо. Entware развернул обновил, установил xmlstarlet,  jq. Закинул скрипт в opt/etc/ndm/wan.d/. При перезагрузке подключения, вываливает ошибку, куда копать?

Screenshot 2023-01-29 at 19-52-35 Keenetic Giga – Диагностика.png

Изменено пользователем SP1R1T
  • 5 недель спустя...
Опубликовано
В 28.02.2019 в 11:04, Geont сказал:

Немного обновил и причесал скрипт. Теперь работает стабильнее.

#!/opt/bin/sh

ConnName=Rostelecom
counter=/opt/tmp/CountReconnectWan.txt
previp=/opt/tmp/previp.txt
max_tries=10

LIST=`ndmq -p 'show interface' -x | xml sel -t -m '//interface[link="up"][state="up"][global="yes"][defaultgw="yes"]' -v '@name' -o ',' -v 'description' -o ',' -v 'address' -o ',' -v 'via' -n`
echo "$LIST" | grep -iwq "$ConnName" || exit 0

_ip=`echo "$LIST" | cut -d, -f3`
_prov=`echo "$LIST" | cut -d, -f2`
_iface=`echo "$LIST" | cut -d, -f1`
_via=`echo "$LIST" | cut -d, -f4`

if echo "$_ip" | grep -qE "^(10\.|100\.6[4-9]\.|100\.[7-9][0-9]\.|100\.1[01][0-9]\.|100\.12[0-7]\.|172\.1[6-9]\.|172\.2[0-9]\.|172\.3[01]\.)"; then
    [ -f "$counter" ] || echo "0" > $counter
    try_nr=$(cat $counter)
    try_nr=$((++try_nr))
    if [ $try_nr -gt $max_tries ]; then
        echo "0" > $counter
	logger -t white_ip[$$] "Provider: $_prov, interface: $_iface. Too much tries. Exit"
        exit
    fi
    echo "$try_nr" > $counter
    logger -t white_ip[$$] "Provider: $_prov, interface: $_iface. Reloading WAN due grey IP - $_ip. Try $try_nr of $max_tries."
    ndmq -p "interface $_iface no connect via $_via" -P message
    sleep 5
    ndmq -p "interface $_iface connect via $_via" -P message
else
    echo "0" > $counter
    [ -f "$previp" ] || echo "0.0.0.0" > $previp
    _previp=$(cat $previp)
    if [ "$_previp" != "$_ip" ]; then
        logger -t white_ip[$$] "Provider: $_prov, interface: $_iface, white IP - $_ip."
        echo "$_ip" > $previp
    fi
fi

Кроме установленного пакета ndmq требуется также xmlstarlet. В переменной $ConnName (2-я строка) замените название подключения на свое - так, как оно названо у вас в web-интерфейсе. Больше ничего указывать не нужно. Подключений может быть несколько, скрипт обрабатывает только подключение с указанным названием в случае его использования в качестве основного. Расположение обычное: /opt/etc/ndm/wan.d/.

Вот рабочий вариант

Опубликовано (изменено)
On 9/28/2022 at 12:50 PM, winnie57 said:

Скрипт работает, но только при установленном уже пакете jq. При отладке убрал его проверку и установку из скрипта. Вот сейчас вернул и выложил обновлённый скрипт.

#!/opt/bin/sh

ConnName=Rostelecom
counter=/opt/tmp/CountReconnectWan.txt
previp=/opt/tmp/previp.txt
max_tries=10

if ! opkg list-installed | grep '^jq' > /dev/null; then
	opkg update
	opkg install jq
fi

sleep 3

RESP=$(wget -qO - http://localhost:79/rci/show/interface | jq -r ".[] | select(.description==\"$ConnName\") | select(.defaultgw==true) | .id, .description, .address")
[ -n "$RESP" ] || exit 1

_ip=$(echo $RESP | awk '{print $3}')
_name=$(echo $RESP | awk '{print $2}')
_iface=$(echo $RESP | awk '{print $1}')

if echo "$_ip" | grep -qE "^(10\.|100\.6[4-9]\.|100\.[7-9][0-9]\.|100\.1[01][0-9]\.|100\.12[0-7]\.|172\.1[6-9]\.|172\.2[0-9]\.|172\.3[01]\.|null)"; then
    [ -f "$counter" ] || echo "0" > $counter
    try_nr=$(cat $counter)
    try_nr=$((++try_nr))
    if [ $try_nr -gt $max_tries ]; then
        echo "0" > $counter
		logger -p local0.error -t white_ip[$$] "Provider: $_name, interface: $_iface. Too much tries. Exit"
        exit 1
    fi
    echo "$try_nr" > $counter
    logger -p local0.error -t white_ip[$$] "Provider: $_name, interface: $_iface. Reloading WAN due grey IP - $_ip. Try $try_nr of $max_tries."
	wget -qO - --post-data="[{\"interface\":{\"name\":\"$_iface\",\"down\":{}}}]" http://localhost:79/rci/
    sleep 3
    wget -qO - --post-data="[{\"interface\":{\"name\":\"$_iface\",\"up\":{}}}]" http://localhost:79/rci/
else
    echo "0" > $counter
    [ -f "$previp" ] || echo "0.0.0.0" > $previp
    _previp=$(cat $previp)
    if [ "$_previp" != "$_ip" ]; then
        logger -p local0.notice -t white_ip[$$] "Provider: $_name, interface: $_iface, white IP - $_ip."
        echo "$_ip" > $previp
	else
		logger -p local0.notice -t white_ip[$$] "Provider: $_name, interface: $_iface, white IP - $_ip (address unchanged)."
    fi
	exit 0
fi

 

030-rostelecom.sh 1.74 kB · 25 downloads

На KN-1011 3.9.4 скрипт почти бесконечно переподключает соединение, пока не получит белый ip, игнорируя счетчик - смотрел лог, счетчик доходит до 10-ти, выход по exit1, потом опять по кругу...

Изменено пользователем katarn1984
  • 3 месяца спустя...
Опубликовано (изменено)
В 29.01.2023 в 16:11, SP1R1T сказал:

Добрый день.

Форумчане есть ли возможность написать мануал по запуску данного скрипта что выше с нуля? Тему порыл ответа не нашел, заранее спасибо. Entware развернул обновил, установил xmlstarlet,  jq. Закинул скрипт в opt/etc/ndm/wan.d/. При перезагрузке подключения, вываливает ошибку, куда копать?

Screenshot 2023-01-29 at 19-52-35 Keenetic Giga – Диагностика.png

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

Изменено пользователем Marat1217
  • 2 месяца спустя...
Опубликовано

 

В 29.01.2023 в 16:11, SP1R1T сказал:

Добрый день.

Форумчане есть ли возможность написать мануал по запуску данного скрипта что выше с нуля? Тему порыл ответа не нашел, заранее спасибо. Entware развернул обновил, установил xmlstarlet,  jq. Закинул скрипт в opt/etc/ndm/wan.d/. При перезагрузке подключения, вываливает ошибку, куда копать?

Screenshot 2023-01-29 at 19-52-35 Keenetic Giga – Диагностика.png

проверьте 

ConnName=Rostelecom
  • 2 месяца спустя...
Опубликовано
В 28.02.2019 в 11:04, Geont сказал:

скрипт обрабатывает только подключение с указанным названием в случае его использования в качестве основного

Добрый день, а кто подскажет, как заставить скрипт отрабатывать на не основном подключении?

  • 10 месяцев спустя...
  • 4 недели спустя...
Опубликовано
В 20.10.2024 в 19:24, SP1R1T сказал:

Добрый день.

На aаrch64 не заведется?

Вот, потратил целый день, научился писать немного скрипты. Переписал. Работает отлично.
Закидываем так же /opt/etc/ndm/wan.d, называем, например rtk_whitener.sh
Возможно нужно дать права выполнения через

chmod +x rtk_whitener.sh


Возможно потребуется установить grep, если не будет отрабатывать busybox'овский.
 

opkg update opkg
install grep

В ConnInterface= прописываем нужный eth взятый при выполнении ifconfig
У меня это eth3.3086 из-за PPPoE РТК и VLAN, у вас мб eth 3 или другой, вариантов не так уж много.
Хоть ip у меня закреплен за ppp0 в ifconfig, но перезагрузка этого интерфейса приводит лишь к пропаданию интернета, так что если увидите ppp0 с ip вашим, подставите его и не будет работать - скорее всего нужно тоже eth3.3086 или подобное вписать.
в max_tries= конечно количество попыток.
Так же лог последней отработки записывается в /opt/tmp/log.txt
Если ставите на внутреннюю память роутера - лучше без логгирования. Дальше скрипт без логгирования предоставлю за этим.
С логами:

#!/opt/bin/sh

# Конфигурация
ConnInterface="eth3.3086"
counter="/opt/tmp/CountReconnectWan.txt"
previp="/opt/tmp/previp.txt"
log="/opt/tmp/log.txt"
max_tries=9

#Нет адреса, выходим
if [ "$address" = "" ]; then
	exit 2
fi

#Логи и сначала очистка
echo "" > "$log"
echo "Возможный интерфейс: $interface (вместо ppp0 рекомендуется перезагружать какой-либо eth" >> "$log"
echo "ip: $address" >> "$log"
echo "Попыток:" $(cat "$counter") >> "$log" 

# Проверка на наличие переданных данных
if [ -z "$interface" ] || [ -z "$address" ] || [ -z "$gateway" ]; then
    echo "Чёто потеряли. Выход" >> "$log"
    exit 1
fi

# Проверка на серый IP
if echo "$address" | grep -qE "^(10\.|100\.6[4-9]\.|100\.[7-9][0-9]\.|100\.1[01][0-9]\.|100\.12[0-7]\.|172\.1[6-9]\.|172\.2[0-9]\.|172\.3[01]\.)"; then
    #Файл есть?
    if [ ! -f "$counter" ]; then
		echo "0" > "$counter"
		echo "Нет файла счётчика. Создаём, вписываем 0 в него" >> "$log"
    fi
    # Увеличиваем счетчик попыток
	echo "Увеличиваем счётчик" >> "$log"
    try_nr=$(cat "$counter")
    try_nr=$((try_nr + 1))
    if [ "$try_nr" -gt "$max_tries" ]; then
	    echo "Лимит по счётчику, выходим" >> "$log"
        echo "0" > "$counter"
        exit
    fi
    echo "$try_nr" > "$counter"
    echo "Переходим к перезапуску подключения." >> "$log"

    # Перезапуск подключения
	ifconfig $ConnInterface down
	#sleep 1
	ifconfig $ConnInterface up
	#sleep 1
else
    # Сброс счетчика и сохранение белого IP
    echo "0" > "$counter"
	echo "Сброс счётчика" >> "$log"
    [ -f "$previp" ] || echo "0.0.0.0" > "$previp"
    _previp=$(cat "$previp")
    if [ "$_previp" != "$address" ]; then
		echo "$_previp и $address"
        echo "$address" > "$previp"
		echo "Сохранение старого ip" >> "$log"
    fi
fi

Без  логов:
 

#!/opt/bin/sh

# Конфигурация
ConnInterface="eth3.3086"
counter="/opt/tmp/CountReconnectWan.txt"
previp="/opt/tmp/previp.txt"
max_tries=9

#Нет адреса, выходим
if [ "$address" = "" ]; then
	exit 2
fi

# Проверка на наличие переданных данных
if [ -z "$interface" ] || [ -z "$address" ] || [ -z "$gateway" ]; then
    exit 1
fi

# Проверка на серый IP
if echo "$address" | grep -qE "^(10\.|100\.6[4-9]\.|100\.[7-9][0-9]\.|100\.1[01][0-9]\.|100\.12[0-7]\.|172\.1[6-9]\.|172\.2[0-9]\.|172\.3[01]\.)"; then
    #Файл есть?
    if [ ! -f "$counter" ]; then
		echo "0" > "$counter"
    fi
    # Увеличиваем счетчик попыток
    try_nr=$(cat "$counter")
    try_nr=$((try_nr + 1))
    if [ "$try_nr" -gt "$max_tries" ]; then
        echo "0" > "$counter"
        exit
    fi
    echo "$try_nr" > "$counter"

    # Перезапуск подключения
	ifconfig $ConnInterface down
	#sleep 1
	ifconfig $ConnInterface up
	#sleep 1
else
    # Сброс счетчика и сохранение белого IP
    echo "0" > "$counter"
    [ -f "$previp" ] || echo "0.0.0.0" > "$previp"
    _previp=$(cat "$previp")
    if [ "$_previp" != "$address" ]; then
		echo "$_previp и $address"
        echo "$address" > "$previp"
    fi
fi

 

  • 5 недель спустя...
Опубликовано (изменено)

Здравствуйте, хотел бы спросить, может кто делал скрипт только со сменой мак адресов? Я не из России и у меня не Ростелеком но, у меня можно получить "Белый" IP-адрес только сменой MAC-адреса, вручную становится лень, и хочется это автоматизировать через ChatGPT пытался сделать, фигню какую-то выдаёт, может быть для тех кто разбирается подправят и всё ок, а для тех кто в этом вообще ничего не понимает тяжеловато

Изменено пользователем AZZOLINDA

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.