The 39-year-old former Tottenham and Arsenal defender, who won 79 international caps, including three as captain, said the Football Association and football fans are averse to the idea of a black or mixed-race captain for the full national side.
"I believe if I was white, I would have been England captain for more than 10 years. It's as simple as that," said Campbell in his authorised biography, which is serialised in the Sunday Times.
"I think the FA wished I was white. I had the credibility, performance-wise, to be captain.
"I was consistently in the heart of the defence and I was club captain early on in my career.
"I don't think it will change because they don't want it to, and probably the majority of fans don't want it, either.
"It's all right to have black captains and mixed-race in the under-18s and under-21s but not for the full national side.
"There is a ceiling and although no one has ever said it, I believe it's made of glass."
Campbell also criticised the decision to select striker Michael Owen as captain ahead of him during his England career, which ran from 1996 to 2007 and saw him play in three World Cup and two European Championship finals.
"Michael Owen was made captain ahead of me. I thought, 'What is going on here?' I think the FA didn't want me to have a voice," continued Campbell.
"Owen was a fantastic forward but nowhere near being a captain. It was embarrassing.
"I've asked myself many times why I wasn't (named captain). I keep coming up with the same answer. It was the colour of my skin.
"What's the point of having a bridge you can't access? I say, burn it, and build a new one so you can cross over. If I'm wrong, then I'm listening."
Campbell's three games as captain came in three friendly matches - against Belgium and the Czech Republic in 1998 under manager Glenn Hoddle, and against the United States in 2005 under Sven-Goran Eriksson.
He retired from football in May 2012 after being released by Newcastle a year before.