Πίσω στο blog

English  ·  Ελληνικά

Cisco / IOS  ·  Tutorial  ·  Ιουλιος 2026

Cisco IOS
Backup & Restore

Το config ενός router είναι μόνο τόσο ασφαλές όσο το τελευταίο του backup. Αποθήκευσε σε startup, κάνε export εκτός συσκευής σε TFTP ή SCP, αυτοματοποίησέ το με το archive feature και το kron, κάνε rollback σε μια κακή αλλαγή με configure replace, και ανάκτησε μια συσκευή που κανείς δεν έχει τον κωδικό της.

Cisco IOS Backup TFTP Archive Config Replace Recovery CCNA

running-config RAM · ζωντανό τώρα startup-config NVRAM · επιβιώνει το reboot TFTP / SCP εκτός συσκευής · επιβιώνει τον θάνατο copy run start copy … tftp: Η αποθήκευση σε startup επιβιώνει ένα reboot. Μόνο ένα αντίγραφο εκτός συσκευής επιβιώνει ένα νεκρό switch, μια κλοπή, ή ένα λανθασμένο erase.

Υπάρχουν τρία μέρη όπου μπορεί να ζει ένα config Cisco, με αυξανόμενη σειρά ασφάλειας. Το running-config (RAM) είναι αυτό που είναι ζωντανό τώρα και πεθαίνει στο reboot. Το startup-config (NVRAM) είναι αυτό που κάνει boot και επιβιώνει μια διακοπή ρεύματος. Και ένα αντίγραφο εκτός συσκευής — σε έναν server TFTP/SCP ή σε ένα git repo — είναι το μόνο πράγμα που επιβιώνει τον θάνατο της ίδιας της συσκευής, μια κλοπή, ή ένα σβήσιμο από λάθος εντολή.

Οι περισσότερες διακοπές που προκαλούνται από «χάσαμε το config» είναι στην πραγματικότητα «αποθηκεύσαμε μόνο σε startup». Αυτό το tutorial καλύπτει και τα τρία επίπεδα, μετά τα κομμάτια που ξεχωρίζουν έναν τεχνικό από έναν επαγγελματία: αυτοματοποίηση backups ώστε να γίνονται χωρίς εσένα, rollback μιας κακής αλλαγής με μία εντολή με configure replace, και ανάκτηση μιας συσκευής όταν ο κωδικός έχει χαθεί εδώ και καιρό.

Προαπαιτουμενα

01

Επιπεδο 1 — Αποθηκευση σε Startup

Το πρώτο και πιο ξεχασμένο βήμα. Οι αλλαγές σου είναι ζωντανές αλλά ασταθείς μέχρι να αντιγράψεις το running-config στο startup-config. Αυτή είναι η συνήθεια «γράψε wr μετά από κάθε αλλαγή».

IOS — αποθηκευσε το running config
# Η ρητή μορφή
R1# copy running-config startup-config
Destination filename [startup-config]? ← πάτα Enter
Building configuration...
[OK]

# Η συντόμευση που γράφουν όλοι — ίδιο αποτέλεσμα
R1# write memory       # ή απλώς:  wr

# Άλλαξε κάτι από την τελευταία αποθήκευση; Σύγκρινε τα δύο.
R1# show archive config differences nvram:startup-config system:running-config
# Κενό output = το running και το startup ταιριάζουν. Μη κενό = μη αποθηκευμένες αλλαγές.

02

Επιπεδο 2 — Export Εκτος Συσκευης (TFTP / SCP)

Η NVRAM πεθαίνει με τη συσκευή. Ένα αντίγραφο εκτός συσκευής είναι το πραγματικό backup. Το TFTP είναι το κλασικό (και ανασφαλές) transport· το SCP είναι η ίδια ιδέα πάνω από SSH και αυτό πρέπει να χρησιμοποιείς σε production.

IOS — αντεγραψε το config σε server TFTP
R1# copy running-config tftp:
Address or name of remote host []? 192.168.1.50
Destination filename [r1-confg]? R1-2026-07-10.cfg
!!
1846 bytes copied in 0.4 secs

# Φέρ' το πίσω με τον ίδιο τρόπο (προσοχή — δες την παγίδα merge στην ενότητα 03)
R1# copy tftp: running-config
IOS — η ασφαλης εκδοση μεσω SCP (SSH)
# Μία γραμμή: πηγή, μετά το πλήρες URL προορισμού scp://
R1# copy running-config scp://backup@192.168.1.50/R1-2026-07-10.cfg
Address or name of remote host [192.168.1.50]? 
Password: 
1846 bytes copied in 0.5 secs

# Για να αφήσεις τη συσκευή να ΔΕΧΕΤΑΙ pushes scp, ενεργοποίησε την πλευρά server:
R1(config)# ip scp server enable
# (απαιτεί SSH + έναν τοπικό χρήστη AAA — δες την ενότητα SSH του "First Contact")
💡 Pro Tip — Το TFTP Ειναι σε Καθαρο Κειμενο· Μην το Χρησιμοποιεις σε Μη Εμπιστα Links

Το TFTP δεν έχει καμία authentication και καμία κρυπτογράφηση — ολόκληρο το config σου, μαζί με τα (αδύναμα) κρυπτογραφημένα hashes κωδικών, διασχίζει το καλώδιο σε καθαρό κείμενο. Είναι εντάξει σε ένα απομονωμένο segment διαχείρισης για μια γρήγορη αντιγραφή, αλλά για οτιδήποτε διασχίζει πραγματικό δίκτυο χρησιμοποίησε SCP. Ίδια muscle memory, τυλιγμένη σε SSH. Αν ένα config αξίζει να το κάνεις backup, αξίζει να μην το κάνεις broadcast.

03

Επαναφορα — Η Παγιδα του Merge

Η πιο επικίνδυνη παρανόηση στα backup της Cisco. Η αντιγραφή ενός config ΜΕΣΑ στο running-config δεν το αντικαθιστά — το κάνει merge. Αυτό ξαφνιάζει όλους μία φορά, συνήθως οδυνηρά.

⚠ Παγιδα — Το copy … running-config Κανει MERGE, Δεν Αντικαθιστα

Όταν κάνεις copy tftp: running-config, το IOS εφαρμόζει το backup πάνω σε ό,τι ήδη τρέχει. Εντολές που υπάρχουν αντικαθίστανται· εντολές στο ζωντανό config που δεν είναι στο backup μένουν εκεί. Οπότε η επαναφορά ενός παλιού backup δεν επιστρέφει τη συσκευή σε εκείνη την παλιά κατάσταση — παίρνεις ένα τέρας merge και των δύο. Για να αντικαταστήσεις πραγματικά το running config, είτε αντίγραψε στο startup και κάνε reload, είτε χρησιμοποίησε configure replace (ενότητα 04).

IOS — οι δυο ειλικρινεις τροποι επαναφορας
# Επιλογή Α — επαναφορά στο STARTUP, μετά reboot σε καθαρή κατάσταση
R1# copy tftp: startup-config
R1# reload
# Η συσκευή κάνει boot εξ ολοκλήρου από το επαναφερμένο αρχείο. Καθαρό, αλλά ένα reboot.

# Επιλογή Β — αντικατάστησε το RUNNING config ζωντανά, χωρίς reboot (ενότητα 04)
R1# configure replace tftp://192.168.1.50/R1-good.cfg

04

Το Archive Feature & Rollback με Μια Εντολη

Το IOS μπορεί να κρατάει αυτόματα versioned snapshots του config και να κάνει rollback σε οποιοδήποτε ζωντανά — χωρίς reboot, χωρίς merge. Αυτό είναι το επαγγελματικό δίχτυ ασφαλείας για ριψοκίνδυνες αλλαγές.

IOS — ενεργοποιηση archiving config
R1(config)# archive
R1(config-archive)# path flash:/archive/R1-config
R1(config-archive)# maximum 14          # κράτα 14 εκδόσεις
R1(config-archive)# time-period 1440     # auto-snapshot κάθε 1440 λεπτά (καθημερινά)
R1(config-archive)# write-memory         # κάνε snapshot και σε κάθε "wr"
R1(config-archive)# end

# Πάρε ένα snapshot κατά παραγγελία, και δες τι είναι αποθηκευμένο (ασφαλές)
R1# archive config
R1# show archive
 The maximum archive configurations allowed is 14.
 Archive #  Name
   1        flash:/archive/R1-config-1
   2        flash:/archive/R1-config-2  <- Πιο Προσφατο
IOS — κανε rollback σε μια κακη αλλαγη με μια εντολη
# Έκανες μια αλλαγή, κάτι έσπασε. Γύρνα το RUNNING config πίσω σε
# ένα γνωστά-καλό snapshot — ζωντανά, χωρίς reboot, πραγματική αντικατάσταση (όχι merge).
R1# configure replace flash:/archive/R1-config-1
This will apply all necessary additions and deletions
to replace the current running configuration with the
contents of the specified configuration file, which is
assumed to be a complete configuration, not a partial
configuration. Enter Y if you are sure you want to proceed. ? [no]: y
Total number of passes: 1
Rollback Done

# Ακόμα πιο ασφαλές για απομακρυσμένες αλλαγές: auto-rollback αν χάσεις το session
R1# configure terminal revert timer 5
# Κάνε τις αλλαγές σου· αν δεν κάνεις "configure confirm" μέσα σε 5 λεπτά,
# το IOS επαναφέρει αυτόματα. Το αλεξίπτωτό σου για απομακρυσμένη δουλειά config.
💡 Pro Tip — Το reload in 5 Ειναι το Φτωχικο Auto-Rollback

Κανένα archive ρυθμισμένο και πας να κάνεις μια τρομακτική αλλαγή σε απομακρυσμένη συσκευή; Γράψε reload in 5 πριν ξεκινήσεις. Αν η αλλαγή σου σε κλειδώσει έξω, η συσκευή κάνει reboot σε 5 λεπτά πίσω στο τελευταίο αποθηκευμένο startup-config. Αν όλα είναι εντάξει, ακύρωσέ το με reload cancel. Είναι πρωτόγονο — κοστίζει ένα reboot και επαναφέρει μόνο στο startup — αλλά έχει σώσει αμέτρητους admin κολλημένους 300 χλμ. μακριά από το rack.

05

Αυτοματοποιηση Backup με kron

Ένα backup που πρέπει να θυμάσαι να τρέξεις είναι ένα backup που δεν θα έχεις. Το IOS έχει ενσωματωμένο scheduler — το kron — που μπορεί να στέλνει το config εκτός συσκευής σε χρονοπρογραμματισμό, χωρίς εξωτερικά εργαλεία.

IOS — προγραμματισμενο νυχτερινο export config
# 1. Όρισε ΤΙ να τρέξει — μια πολιτική που αντιγράφει το running-config σε SCP
R1(config)# kron policy-list NIGHTLY-BACKUP
R1(config-kron-policy)# cli copy running-config scp://backup@192.168.1.50/R1-nightly.cfg
R1(config-kron-policy)# exit

# 2. Όρισε ΠΟΤΕ — κάθε μέρα στις 02:00, επαναλαμβανόμενο
R1(config)# kron occurrence NIGHTLY at 2:00 recurring
R1(config-kron-occurrence)# policy-list NIGHTLY-BACKUP
R1(config-kron-occurrence)# end

# Επαλήθευσε το χρονοδιάγραμμα (ασφαλές)
R1# show kron schedule
Kron Occurrence Schedule
  NIGHTLY inactive, will run again in 0 days 13:41:22
⚠ Παγιδα — Το kron Τρεχει Εντολες απο Privileged EXEC, Μη Διαδραστικα

Το Kron εκτελεί κάθε γραμμή cli σαν να πληκτρολογήθηκε στο prompt # — αλλά δεν υπάρχει άνθρωπος να απαντήσει σε prompts. Εντολές που κάνουν ερώτηση (όπως ένα διαδραστικό copy που ζητάει filename) μπορούν να κολλήσουν. Χρησιμοποίησε πλήρως-ορισμένες μορφές μιας γραμμής με τον προορισμό ενσωματωμένο στο URL, όπως παραπάνω, ώστε τίποτα να μη χρειάζεται απάντηση. Δοκίμασε την ακριβή εντολή στο χέρι μία φορά πριν εμπιστευτείς το χρονοδιάγραμμα.

06

Backup της Εικονας IOS

Το config δεν είναι το μόνο πράγμα που αξίζει να σωθεί. Μια κατεστραμμένη ή διαγραμμένη εικόνα IOS μετατρέπει ένα switch σε πρες-παπιέ. Κράτα κι ένα αντίγραφο του .bin εκτός συσκευής.

IOS — τι εχει η flash, και αντιγραφη της εικονας
# Δες τα αρχεία εικόνας και τον ελεύθερο χώρο (ασφαλές)
R1# show flash:
-#- --length-- -----date/time------ path
  1   45088768 Jul 10 2026 09:14:02 c2900-universalk9-mz.SPA.157-3.M9.bin
  2       1846 Jul 10 2026 10:02:11 R1-2026-07-10.cfg

# Αντίγραψε την εικόνα στον server σου (σημείωσε το ακριβές filename από πάνω)
R1# copy flash:c2900-universalk9-mz.SPA.157-3.M9.bin tftp:
Address or name of remote host []? 192.168.1.50
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
45088768 bytes copied in 78.2 secs

# Επιβεβαίωσε την ακεραιότητα έναντι του δημοσιευμένου hash της Cisco
R1# verify /md5 flash:c2900-universalk9-mz.SPA.157-3.M9.bin

07

Ανακτηση Κωδικου Απαιτειται Console

Κληρονόμησες μια συσκευή που κανείς δεν έχει τον κωδικό της; Δεν τη σβήνεις. Κάνεις boot γύρω από το startup-config χρησιμοποιώντας το configuration register, ανακτάς το config, και επαναφέρεις τους κωδικούς. Η φυσική πρόσβαση από console είναι υποχρεωτική — γι' αυτό ακριβώς έχει σημασία η ασφάλεια του console.

IOS — ανακτηση κωδικου router (μεσω ROMMON)
# 1. Μπες από console, κάνε power-cycle, και στείλε ένα BREAK κατά το boot για να φτάσεις στο ROMMON
rommon 1 > confreg 0x2142   # πες του να ΑΓΝΟΗΣΕΙ το startup-config στο επόμενο boot
rommon 2 > reset

# 2. Κάνει boot με κενό running-config (setup wizard) — απάντησε όχι. Μετά
#    φόρτωσε το ΠΡΑΓΜΑΤΙΚΟ config από τη NVRAM στο running ΧΩΡΙΣ να ενεργοποιηθούν οι κωδικοί του:
Router> enable
Router# copy startup-config running-config   # το config σου γύρισε, και είσαι ήδη privileged

# 3. Όρισε νέο κωδικό και βεβαιώσου ότι τα interfaces που χρειάζεσαι δεν είναι shut
Router# configure terminal
Router(config)# enable secret NewStr0ng!Pass

# 4. ΚΡΙΣΙΜΟ: επανάφερε το config register ώστε να κάνει boot κανονικά την επόμενη φορά
Router(config)# config-register 0x2102
Router(config)# end

# 5. Αποθήκευσε και κάνε reboot
Router# write memory
Router# reload
⚠ Παγιδα — Μην Ξεχασεις το Βημα 4

Αν παραλείψεις το config-register 0x2102, η συσκευή συνεχίζει να αγνοεί το startup-config της σε κάθε μελλοντικό boot — θα ανεβαίνει κενή κάθε φορά και θα νομίζεις ότι η ανάκτηση απέτυχε. Επιβεβαίωσε με show version (η τελευταία γραμμή δείχνει το configuration register). Τα switch χρησιμοποιούν ελαφρώς διαφορετική διαδικασία (κράτα πατημένο το κουμπί MODE κατά το boot, μετά flash_init / rename flash:config.text) αλλά η ιδέα είναι η ίδια: κάνε boot γύρω από το config, ανάκτησέ το, επανάφερε τον κωδικό, επανέφερε κανονικό boot.

08

Αναφορα Εντολων

Οι εντολές backup και ανάκτησης που αξίζει να αποστηθίσεις.

ΕντοληΤι κανει
copy run start · wrΑποθήκευσε το running-config στη NVRAM (επιβιώνει το reboot).
copy run tftp: / scp:Κάνε export το config εκτός συσκευής. SCP για οτιδήποτε μη έμπιστο.
copy tftp: startup-configΕπαναφορά στο startup — μετά reload για καθαρή αντικατάσταση.
configure replace <file>Αντικατέστησε το running config ζωντανά — πραγματική αντικατάσταση, χωρίς reboot.
archive configΠάρε τώρα ένα versioned snapshot config.
show archiveΛίστα αποθηκευμένων εκδόσεων config.
show kron scheduleΔες προγραμματισμένες αυτοματοποιημένες δουλειές.
show flash: / dir flash:Λίστα αρχείων και ελεύθερου χώρου (config + εικόνα IOS).
reload in 5 / reload cancelΌπλισε / αφόπλισε ένα reboot ασφαλείας πριν από μια ριψοκίνδυνη αλλαγή.
config-register 0x2102Κανονικό boot (0x2142 = αγνόησε το startup, για ανάκτηση).

Συμπερασματα

  1. Τρία επίπεδα, αυξανόμενη ασφάλεια: running (RAM) → startup (NVRAM, wr) → εκτός συσκευής (TFTP/SCP/git). Μόνο το τρίτο επιβιώνει τον θάνατο της ίδιας της συσκευής. Οι περισσότερες διακοπές «χάσαμε το config» είναι στην πραγματικότητα «αποθηκεύσαμε μόνο σε startup».
  2. Η επαναφορά μέσα στο running-config κάνει MERGE, δεν αντικαθιστά. Για να επιστρέψεις πραγματικά σε μια παλιά κατάσταση, επανάφερε στο startup και κάνε reload, ή χρησιμοποίησε configure replace. Αυτή η παγίδα δαγκώνει τον καθένα ακριβώς μία φορά.
  3. Το archive feature είναι το ζωντανό rollback σου. Versioned snapshots συν configure replace αναιρούν μια κακή αλλαγή χωρίς reboot και χωρίς merge. Άναψέ το πριν το χρειαστείς.
  4. Αυτοματοποίησέ το αλλιώς δεν θα συμβεί. Το kron στέλνει το config εκτός συσκευής σε πρόγραμμα χωρίς εξωτερικά εργαλεία — χρησιμοποίησε πλήρως-ορισμένες εντολές μιας γραμμής ώστε τίποτα να μην κάνει prompt.
  5. Κάνε backup και την εικόνα IOS. Ένα .bin που λείπει ή είναι κατεστραμμένο μετατρέπει τη συσκευή σε άχρηστη πλάκα. Κράτα ένα αντίγραφο εκτός συσκευής και κάνε verify /md5.
  6. Όπλισε ένα αλεξίπτωτο για απομακρυσμένες αλλαγές. Το configure terminal revert timer ή ένα απλό reload in 5 σε ανακτά αυτόματα αν μια αλλαγή κόψει το ίδιο σου το session.
  7. Η ανάκτηση χρειάζεται το console. Μπορείς να επαναφέρεις κάθε κωδικό με φυσική πρόσβαση και το config register — γι' αυτό ακριβώς η θύρα console και η φυσική ασφάλεια είναι μέρος του μοντέλου απειλών σου, όχι ύστερη σκέψη.

Διαχειριζεσαι εξοπλισμο Cisco για γραφειο, ξενοδοχειο ή SMB στην Κρητη;

Ένα νεκρό switch πρέπει να σου κοστίσει είκοσι λεπτά, όχι ένα χαμένο Σαββατοκύριακο ξαναχτίζοντας ένα config από μνήμης. Στήνω αυτοματοποιημένα, εκτός-έδρας backups και διαδικασίες ανάκτησης για κάθε συσκευή που διαχειρίζομαι, και πραγματικά δοκιμάζω την επαναφορά — όχι μόνο τη δουλειά backup.

Κλεισε μια Discovery Call →