Portál AbcLinuxu, 4. května 2025 12:32

Liek na čiastočnú amnéziu routera

4.5.2010 00:14 | Přečteno: 1719× | poslední úprava: 20.11.2010 23:19

Nákup routera som nejak neriešil. Proste chcel som len takú tú "krabičku", čo nastavíš a viac sa nestaráš. Kamoš odporučil Canyon CNP-WF514 AP. Router funkciami stačí dodnes, no trpí jedným ťažko odpustiteľným neduhom.

A totiž takým, že aj po krátkom výpadku el. energie tak nejak zabudne nastavenia rezervácie MAC adries a forwardovania portov. No a vzhľadom na fakt, že týchto položiek mám nakonfigurovaných dosť a že už ma dosť vytáčalo dokolečka to nastavovať (nie, že by sme mali tak nestabilnú elektriku, ale už som párkrát router musel pri jeho vytuhnutí na chvíľku odpojiť sám), tak som si urobil takýto jednoduchý skriptík.

Možno sa bude niekomu hodiť.

#!/bin/bash
#####################################################
# sets up Canyon CN-WF514 router                    #
#####################################################
# variable definition
host=router
user=guest
password=heslo
def_password=standardne_heslo
# host_mac_address = your client's mac address? prolly unimportant (find out via sniffing)
host_mac_address=00-01-11-11-11-11
# dhcp address range for clients
dhcp_start=100
dhcp_end=110
# before running the script:
# - configure WAN
######################################################
# let's check if we have the password set or we're using
# the default one + change the default
wget --output-document=- --user=${user} --password=${def_password} http://${host} &>/dev/null
if [ $? -eq 0 ]; then
        # we're using default password
        # this is not safe so let's change it
        wget --output-document=- --user=${user} --password=${def_password} --post-data="password1=${pass
word}&password2=${password}&apply_pass=+Apply+" http://${host}/UserPassSet.cgi
        sleep 2
else
        wget --output-document=- --user=${user} --password=${password} http://${host} &>/dev/null
        if [ $? -ne 0 ]; then
                        echo "wrong (unknown) password, exiting.."
                        exit 1
        fi
fi

# let's set dhcp range
wget --output-document=- --user=${user} --password=${password} --post-data="lan_ip_address=192.168.1.1&lan_sub_mask=255.255.255.0&dhcp_server_on=on&dhcp_start_ip2=${dhcp_start}&dhcp_end_ip2=${dhcp_end}&dhcp_server_start_ip=192.168.1.${dhcp_start}&dhcp_server_end_ip=192.168.1.${dhcp_end}&dhcp_server_start_ip_prev=192.168.1.&dhcp_server_end_ip_prev=192.168.1.&apply_pass=+Apply+&dhcp_on=1" http://${host}/lan_setup.cgi

# NAT config
# 6 - TCP
# 17 - UDP
# max. of 16 entries accepted
# delete all entries first
wget --output-document=- --user=guest --password=${password} http://router/virtual.htm 2>/dev/null | sed -n '/del_list_item/s/.*del_list_item('\''\([^'\'']*\).*/\1/p' | while read -r i; do
        wget --output-document=- --user=guest --password=${password} --post-data="virtual_del_rulename=${i}" http://router/virtual_service_list_del.cgi
        done
# and populate new ones
(cat << EOF
ssh104   104 6 5522 22
wakeonlan105    105 17 105 9
# this line's ignored
EOF
) | grep -v ^# | while read -r rule_name virtual_ip_addr proto_select port_ext_a port_int_a 
        do
        wget --output-document=- --user=${user} --password=${password} --post-data="rule_name=${rule_name}&virtual_ip_addr=${virtual_ip_addr}&proto_select=${proto_select}&port_ext_a=${port_ext_a}&port_int_a=${port_int_a}&virtual_ip2=192.168.1.&virtual_ip=192.168.1.${virtual_ip_addr}&virtual_add=++Add++" http://${host}/virtual_service_add.cgi
        done
# DHCP reservations
(cat << EOF
00-00-00-00-00-00 104
11-11-11-11-11-11 105
EOF
) | while read lan_mac_address lan_ip_adds 
        do
        wget --output-document=- --user=${user} --password=${password} --post-data="lan_mac_address=${lan_mac_address}&host_mac_address=${host_mac_address}&lan_ip_adds=${lan_ip_adds}&lan_ip_addre=192.168.1.&lanipaddre=192.168.1.${lan_ip_adds}&host_ip_address=&add_dhcp_entry=++Add++" http://${host}/dhcp_ip_reserving_add.cgi
        done
# save changes
wget --output-document=- --user=${user} --password=${password} http://${host}/save.htm
exit 0
update: fixed router name
update2: change password if set to default
update3: delete old nat entries before populating new ones
update4: set dhcp ip range        

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

4.5.2010 11:56 still | skóre: 2
Rozbalit Rozbalit vše Re: Liek na čiastočnú amnéziu routera
Odpovědět | Sbalit | Link | Blokovat | Admin
neskusal si update firmwaru? mozno je tam ten problem porieseny...inak je to stara sunka, fakt nevie WPA/WPA2? :-)

http://www.canyon-tech.com/archive/connectivity/wireless/CN-WF514#pr-switcher
jose17 avatar 4.5.2010 12:36 jose17 | skóre: 44 | blog: Joseho_blog | Bratislava
Rozbalit Rozbalit vše Re: Liek na čiastočnú amnéziu routera
je to tento model: http://www.canyon-tech.com/archive/connectivity/routers/CNP-WF514. a novsi firmware neexistuje..
Ja vim, on vi, ty nano!
Michal Fecko avatar 4.5.2010 21:10 Michal Fecko | skóre: 31 | blog: Poznámkový blog
Rozbalit Rozbalit vše Re: Liek na čiastočnú amnéziu routera
Odpovědět | Sbalit | Link | Blokovat | Admin
Typický liek - nerieši príčinu ale následok- kebyže si urobil UPS dobijanu fotovoltaikou tak nepoviem, ale toto... ;-)
4.5.2010 21:34 Jary | skóre: 30 | blog: Jary má blog | Dům
Rozbalit Rozbalit vše Re: Liek na čiastočnú amnéziu routera
Stačí jako příčinu problému definovat vymazanou RAM routeru, jako následek nefunkčnost Netu nebo čehosi, pak skriptík řeší příčinu (:
.sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky. GitHub
Michal Fecko avatar 4.5.2010 21:43 Michal Fecko | skóre: 31 | blog: Poznámkový blog
Rozbalit Rozbalit vše Re: Liek na čiastočnú amnéziu routera
To uz je druhotna pricina tej prvotnej a to ze vypadok netu sposobuje prerusenie dodavky el. energie. :)
jose17 avatar 4.5.2010 21:45 jose17 | skóre: 44 | blog: Joseho_blog | Bratislava
Rozbalit Rozbalit vše Re: Liek na čiastočnú amnéziu routera
ako som spomenul, pri obcasnom zamrznuti musim routeru "pomoct" i sam.. takze ups by nezabralo
Ja vim, on vi, ty nano!

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.