Under terms of the deal announced Monday, Ryan will make $1.43 million this season.
Ryan, 30, had career bests with 11 goals, 18 assists and 29 points for Carolina in 2016-17. He was originally signed by the Hurricanes as a free agent in 2015 and made $600,000 last season.
General manager Ron Francis said in a statement that Ryan "proved he belongs in the NHL last season."
Ryan would have been a free agent on July 1.
Carolina also reached a deal with pending restricted free-agent defenseman Trevor Carrick to a one-year, two-way deal worth $670,000 in the NHL or $77,500 in the minors. Carrick has skated in two career games with the Hurricanes.