The Wellington-born scrum-half, who has earned 39 Test caps and scored eight international tries since making his debut in 2014, said it was an easy decision to remain in his hometown.
"The All Blacks will always be the goal and to be able to chase that dream for another four years here in New Zealand is a challenge I'm looking forward to," said Perenara.
"Being in Wellington and playing for the Hurricanes is a big driver for me. It's where I grew up, it's my home and it's where my family is. Family means a lot and being able to be close to them and be around them is important.
"To be honest I couldn't see myself playing for another franchise or province in New Zealand and the fact that they also want me around makes it even more special to me."
NEWS | @Tj_Perenara inks long-term deal with the #AllBlacks, @Hurricanesrugby & @WgtnRugby.
READ: https://t.co/Ai3YNVOp7y#TeamAllBlacks pic.twitter.com/qnNqjSVW4T
— All Blacks (@AllBlacks) October 26, 2017
All Blacks coach Steve Hansen hailed the development of Perenara, 25, who has tended to be used off the bench as a replacement for first-choice number nine Aaron Smith.
Hansen said: "TJ is a world-class player and a very important part of our team. He's an incredibly competitive athlete who has taken his game to another level in recent seasons and he has a great understanding of what it means to be a Test player with close to 40 Tests under his belt.
"He plays a key role for us both on and off the park and is continuing to look to develop his all-round skills - including his leadership skills - and, in fact, has now become one of the senior players in the squad. We all congratulate him on his decision which is fantastic for the future."
Photo Getty Images. Caption: TJ Perenara leads an All Black haka