Родился 24 декабря 1978 г. в Ленинграде (ныне - Санкт-Петербург). Его родители работали в Лесотехнической академии (ныне Санкт-Петербургского государственного лесотехнического университета) им. С. М. Кирова. Отец - Игорь Николаевич Рыбаков (1946--2015), заведовал лабораторией лесных машин, мать - Елена Дмитриевна (род. 1956) - научный сотрудник.
В 1993 г. Николай Рыбаков окончил экономическую школу Санкт-Петербургского университета экономики и финансов, в 1995 г. - бизнес-колледж Санкт-Петербургского государственного университета. В 2000 г. получил диплом (с отличием) Санкт-Петербургского государственного университета путей сообщения, кафедра "Экономика строительного производства".
В 1995 г. вступил в Санкт-Петербургский молодежный союз "Яблоко", в 1997 г. вошел в состав центрального совета союза, в 1999-2000 гг. был его председателем. Принимал участие в избирательных кампаниях "Яблока", был агитатором, распространителем листовок и пр.
В 1997-2000 гг. - помощник депутата Законодательного собрания Санкт-Петербурга Михаила Амосова. Руководил его избирательным штабом в ходе выборов в Заксобрание Петербурга.
В 1999 г. работал в предвыборном штабе экс-премьер-министра РФ Сергея Степашина, который баллотировался в Госдуму от объединения "Яблоко" по Санкт-Петербургу.
В 2000 г. избран членом политсовета петербургского отделения Общероссийского общественного объединения "Яблоко" (с 2001 г. - партия), руководителем Выборгской районной организации "Яблока". С 2005 г. - член бюро регионального совета Санкт-Петербургского отделения партии.
В 2000-2001 гг. - главный специалист Фонда экономических и политических исследований "ЭПИЦентр Санкт-Петербург" (глава - Игорь Артемьев, ныне руководитель Федеральной антимонопольной службы). Курировал вопросы молодежной политики и образования.
В 2000-2004 гг. - депутат, председатель комиссии по бюджету, финансам и имуществу муниципального образования "Светлановское" Санкт-Петербурга.
Одновременно в 2001-2003 гг. преподавал основы права в школе-интернате для слабослышащих детей (Выборгский район).
С 2002 по 2003 г. был помощником депутата Государственной думы РФ Сергея Митрохина (фракция "Яблоко"), руководителем его предвыборного штаба.
В 2004-2006 гг. - депутат муниципального совета "Гражданка", председатель комиссии по бюджетным, правовым и информационным вопросам. Член редакционной коллегии одноименной муниципальной газеты.
С 2006 по 2008 г. - глава администрации муниципального образования "Гражданка".
С 2005 по 2009 г. - редактор издания партии "Яблоко" - бюллетеня "Демократ".
В 2008-2015 гг. занимал пост исполнительного директора Экологического правозащитного центра "Беллона". Одновременно в 2010-2015 гг. - главный редактор издания "Беллона.ру", в 2014-2015 гг. - главный редактор журнала "Экология и право".
С 2008 г. - член федерального бюро партии "Яблоко".
С 2009 г. - заместитель председателя Санкт-Петербургского отделения партии, с 2011 г. был помощником руководителя партийной фракции в Законодательном собрании Санкт-Петербурга Григория Явлинского.
В 2012-2014 гг. представлял "Яблоко" в коалиции "Демократический Петербург".
19 декабря 2015 г. принимал участие в выборах председателя партии "Яблоко". Занял третье место (19 голосов), уступив депутату Заксобрания Карелии Эмилии Слабуновой (74) и председателю псковского отделения партии Льву Шлосбергу (38; признан иноагентом). Во втором туре голосования председателем партии была избрана Слабунова (91 голос).
20 декабря 2015 г. Николай Рыбаков занял пост заместителя председателя партии "Яблоко".
В 2017 г. - руководитель единого избирательного штаба партии. В 2018 г. по инициативе Рыбакова "Яблоко" провело первые в своей истории праймериз перед выдвижением кандидата на пост мэра Москвы на выборы 9 сентября 2018 г. Член внутрипартийной фракции "Зеленая Россия". Заместитель руководителя проекта Концептуальной стратегии развития мегаполиса "Большой Петербург. XXI век" (руководитель - Григорий Явлинский).
Дважды - в 2012 и 2017 гг. - возглавлял предвыборный штаб кандидата на пост президента РФ Григория Явлинского.
Участвовал в выборах в Законодательное собрание Санкт-Петербурга в 2002, 2007 (список "Яблока" был снят с выборов), 2011 и 2016 гг., однако мандат не получил. Баллотировался также в Государственную думу РФ V, VI и VII созывов от партии "Яблоко" (в 2007, 2011 и 2016 гг.), но избран не был.
15 декабря 2019 г. в Москве на съезде Российской объединенной демократической партии "Яблоко" Рыбаков был избран ее председателем. За него было подано 69 голосов делегатов съезда. 9 декабря 2023 г. Николай Рыбаков был переизбран председателем партии на ее съезде.
Член Правозащитного совета Санкт-Петербурга и Общественной наблюдательной комиссии по контролю за обеспечением прав человека в местах принудительного содержания и содействия лицам, находящимся в местах принудительного содержания (с 2011 г.). Входит в состав Центра антикоррупционных исследований и инициатив "Транспенерси интернешнл - Россия", консультативного совета при уполномоченном по правам человека в Санкт-Петербурге.
Автор просветительского проекта "Помни Соловки" (2005) для образовательных учреждений Санкт-Петербурга. Один из организаторов митингов протеста против строительства небоскреба "Охта-центр" в историческом центре Петербурга, акций памяти журналистов Анны Политковской, Натальи Эстемировой и др.
Председатель оргкомитета ежегодной Всероссийской конференции экологических активистов. Редактор общественного доклада о нарушении экологических прав граждан РФ (с 2010 г.).
Увлекается фотографией. В разные годы состоялись несколько персональных выставок Николая Рыбакова в России и Германии.
Автор книг "История сада у Серебряного пруда", "Ленинградская блокада. 61 год спустя", "Помни Соловки. Книга впечатлений", документального фильма "Алды. Без срока давности" (2010; в соавторстве с Екатериной Сокирянской и Еленой Виленской).