Mr Cameron faces as a rebellion from around 50 Tory MPs on the Immigration Bill this week, despite efforts by ministers to woo rebels.

The numbers of migrants coming to Britain from Bulgaria and Romania since January has so far been "reasonable", the PM said, after fears that high numbers would come from those countries to look for work.

The Immigration Bill will curb the ability of deported migrants to “endlessly” appeal against their removal from Britain, and restrict access to the NHS and housing from people who do not have a legal right to be in Britain.

But the rebels, led by Nigel Mills MP, want to go further, and have tabled amendments that would ban Romanian and Bulgarian migrants coming to Britain without work permits until 2019. Ministers have tried to woo the rebels with one-to-one meetings, it was reported this weekend, without success.

Transitional controls were lifted on the new EU members Romania and Bulgaria on January 1, meaning their people have the legal right to work in Britain. From April 1 they will be able to claim benefits, after controls put in place by Downing Street expire.

Mr Cameron said he sympathises with the rebels, and said if any more countries join the EU he would wish to see migration blocked until those countries become wealthier – a position likely to be fiercely resisted by those in Brussels who regard free movement a fundamental principle of the bloc.

“I completely understand and in many ways share the frustrations of colleagues who would like us to go further. But on the issue of Romania and Bulgaria, when I became the Prime Minister, we extended the transitional controls from five years to seven years. Those seven years are now up and we’re not allowed under the current rules to extend them further,” he said.

He said he would like to see migration come down further, and insisted the controls in the Bill were “very sensible”. Net migration to the UK last year increased to 182,000, thanks to fewer people leaving the country and an increase in visitors from EU states such as Spain.

Mr Cameron said he could understand why people vote for Ukip, which some polls suggest is likely to finish ahead of the Tories in May’s European elections.

Asked whether he still regarded the party as “fruitcakes”, he said: “When some of your own supporters have gone to support another party you need to win them back, and I’m determined to win them back.

“We’ll do that by demonstrating the long-term plan we have is by dealing with welfare, immigration and a proper settlement in Europe. These are not side issues. They are absolutely core to our whole plan of getting our country to rise, helping our people to rise.”

He said support for Ukip was driven by the recession and “frustration” at broken promises by successive Prime Ministers on immigration.

“There are issues like the immigration issue that many people in our country feel think that politician after politician, Prime Minister after Prime Minister, has not dealt with properly.

“There are policy issues, there’s a frustration at the ability of our political system to deliver and a sense sometimes that politicians haven’t been listening to people.”

Mr Cameron rebuked Nicky Morgan, a Treasury minister who said the Tories talk too much about the things they “hate”. He pointed to “immensely positive” policies such as the National Citizen Service, the Green Investment Bank and aid to Syria.

But he added: “We don’t do anyone any favours by pretending problems with our welfare, immigration or the European Union don’t exist. I believe in confronting these things and dealing with them very robustly.”