Neil, 24, helped the Wearsiders gain promotion to the Premier League via the play-offs last season, making 47 league appearances and scoring two goals.
Advertisement
He has failed to maintain a regular place in the top flight this season, playing just three games as a substitute, and will leave Sunderland this summer when his contract expires.
South Shields-born Neil has made a total of 201 appearances for the Black Cats since his debut in September 2020 and scored 12 goals.
“I’ve been at Sunderland for a long time and it was an incredible chapter in my life and career, but now I’m ready for the next chapter,” Neil told the Ipswich club website.
“After a lot of thought, it became clear that Ipswich would be the perfect fit for that.
Advertisement
“The way the coach wants to play football and the way I like to play are basically the same.”
Sunderland sporting director Kristjaan Speakman added that Neil had left a legacy at his hometown club.
“He always stood up during tough times and rose to the challenge, strived to be a top player and then used his influence positively to drive standards on and off the field, culminating in him captaining his boyhood club and returning to the Premier League,” Speakman said.
Ipswich sit third in the table following Saturday’s defeat to Sheffield United, having won their previous four matches, as they seek an immediate return to the top flight following last season’s relegation.
Neil is Town’s second signing in the transfer market following the arrival of former Bristol City winger Anis Mehmeti last week.