The 25-year-old – son of former Canaries number one Bryan, who went on to manage the club – started his youth career with Norwich before moving to Manchester City, and then had a season back with the Carrow Road outfit on loan in 2017-18
He signed for Southampton in the summer of 2018, and last season spent time on loan at Stoke.
Gunn, who was called up to the England squad in 2017 but did not play, said on Norwich’s official website: “It was a few years ago since I was here on loan, and it was an unbelievable feeling then.
“Getting the deal done feels the same, if not better, because it’s more of a permanent thing. I’m really looking forward to it.
“It’s the club that I grew up supporting and the strides that it has made over the last few years show it’s a club still on the up.”
Boss Daniel Farke said: “We got the feeling that Angus will be the perfect fit to our goalkeeping group.
“We’ve got two very experienced goalkeepers in Tim Krul and Michael McGovern and a young goalkeeper in Daniel Barden. Angus fits perfectly into this goalkeeping team.
“He’s in a perfect age and is full of potential. He’s proven that he can play on the top level and was fantastic for us three seasons ago.
“He played almost each and every second for us and of course he has a huge identification and connection with the football club through his father.
“He has had a call-up to the England national team and there was a big money move to Southampton. That says a lot about his potential.
“After he was our number one goalkeeper three years ago we got the feeling that we helped give him the perfect platform.
“We needed a strong addition to our goalkeeping squad and for the short, medium and long term we believe that Angus is the perfect fit.”
Norwich, preparing for their Premier League return after winning the Championship last season, signed winger Milot Rashica from Werder Bremen earlier this week. Midfielder Emi Buendia has departed to join Aston Villa.