Around 12,000 people attended a rally in Berlin, local radio reported, while Munich and Leipzig also saw protests called for by charity organisations including German-based Lifeline, whose rescue boats were recently prevented from entering Italian waters.
The Lifeline vessel, with more than 230 migrants aboard, was ultimately forced to dock in Malta where it was impounded last month.
Some demonstrators on Saturday donned rescue vests and held up slogans including “humanity is not a political opinion” and “human rights don’t stop at the Mediterranean”.
German Interior Minister Horst Seehofer, who backs a hard line on reining in migration, was accused of “exploiting the distress of those at sea” for political reasons, while protesters also vented their ire at Austrian leader Sebastian Kurz and Italian Interior Minister Matteo Salvini.
“They are flouting human rights, it is not acceptable and is repugnant,” rally organisers said beforehand.
More than 1,400 people have drowned attempting to cross the Mediterranean so far this year according to the International Organization for Migration, the UN’s migration agency.
EU member states last week reached a controversial plan to deal with migrant and refugees arrivals from Africa and the Middle East.
The deal includes the creation of secure centres for migrants in the bloc, “disembarkation platforms” outside the bloc and sharing out refugees among member states.
The accord came after Italy’s new populist government pushed the issue to the forefront of the EU agenda by refusing to open the country’s ports to migrant rescue ships operating in the Mediterranean.