Родился 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 голосов делегатов съезда. Второе место занял глава псковского отделения партии Лев Шлосберг (40 голосов), третье - Эмилия Слабунова (19 голосов), занимавшая пост председателя "Яблока" с 2015 г.
Член Правозащитного совета Санкт-Петербурга и Общественной наблюдательной комиссии по контролю за обеспечением прав человека в местах принудительного содержания и содействия лицам, находящимся в местах принудительного содержания (с 2011 г.). Входит в состав Центра антикоррупционных исследований и инициатив "Транспенерси интернешнл - Россия", консультативного совета при уполномоченном по правам человека в Санкт-Петербурге.
Автор просветительского проекта "Помни Соловки" (2005) для образовательных учреждений Санкт-Петербурга. Один из организаторов митингов протеста против строительства небоскреба "Охта-центр" в историческом центре Петербурга, акций памяти журналистов Анны Политковской, Натальи Эстемировой и др.
Председатель оргкомитета ежегодной Всероссийской конференции экологических активистов. Редактор общественного доклада о нарушении экологических прав граждан РФ (с 2010 г.).
Увлекается фотографией. В разные годы состоялись несколько персональных выставок Николая Рыбакова в России и Германии.
Автор книг "История сада у Серебряного пруда", "Ленинградская блокада. 61 год спустя", "Помни Соловки. Книга впечатлений", документального фильма "Алды. Без срока давности" (2010; в соавторстве с Екатериной Сокирянской и Еленой Виленской).