The 38-year-old spinner skippered the side to the Division Two title in 2015.
"We've got a very special set of players at the moment and it's a great honour to be able to lead them onto the field," he told the club website.
"Promotion last season was just the start of what we can achieve. I look forward to playing my part in our continued development."
Batty is currently in his second spell at The Oval, having played for Surrey between 1998 and 2001 before returning to south London ahead of the 2010 campaign.
He was appointed captain at the start of this year and took 40 first-class wickets at an average of 28.17 last season as Surrey won promotion to Division One.
"Batts is playing an incredibly important part of what we're trying to achieve at Surrey," director of cricket Alec Stewart said.
"He has shown real leadership qualities on and off the field and his all-round contribution in the progress we are making should not be underestimated."
Surrey captain Gareth Batty has signed a new contract which will keep him at the club until the end of 2017.