Я пытаюсь подключиться к роутеру R1 в GNS3 с помощью скрипта на Python
import getpass import sys import telnetlib HOST = "192.168.1.1" user = raw_input("Enter your remote account: ") password = getpass.getpass() tn = telnetlib.Telnet(HOST) tn.read_until(b"Username: ") tn.write(user + "\n") if password: tn.read_until("Password: ") tn.write(password + "\n") tn.write("enable\n") tn.write("cisco\n") tn.write("conf t\n") tn.write("exit\n") tn.write("exit\n") print(tn.read_all().decode('ascii'))
Но строчка tn = telnetlib.Telnet(HOST)не работает (терминал замораживается), то есть не получается подключение к роутеру, хотя и telnet-соединение с терминала R1 работает нормально.
Добрый день,
А скрипт Вы запускаете с администраторскими правами?
В терминале я проверила состояние port 23 с помощью команды nmap, ее состояние closed. Я использую Mac OS, и не знаю как это разрешить
Покажите пожалуйста вывод
show run | sec line
c R1.
R1#show run | sec line line con 0 exec-timeout 0 0 privilege level 15 logging synchronous stopbits 1 line aux 0 exec-timeout 0 0 privilege level 15 logging synchronous stopbits 1 line vty 0 4 login local transport input all
Так, минуточку... А какая у Вас топология подключения? Вы пытаетесь со своего Mac подключиться на маршрутизатор, который у Вас на нём же работает в GNS3?
Да, из терминала Mac OS, я подключаюсь с помощью telnet к роутеру из топологии в GNS3
А как связана Ваша виртуальная сеть с Вашей физической?
Я поменяла кое-что, теперь если я из своего терминала внешнего делаю
telnet localhost:5000
у меня получается подключиться к роутеру. Попробую скрипт скажу !
В таком случае Вам нужно подключаться к localhost и на порт 5000. Но я бы рекомендовал вместо прямого доступа с Вашего Мака использоват в топологии контейнер Docker с Linux и подключаться оттуда.
И ещё - у Вас отсутствует "b" в строке, где Вы ожидаете Password.
tn.read_until("Password: ")
Должно быть
tn.read_until(b"Password: ")