The ban was put in place after a new more infectious coronavirus strain appeared in the countries.
“The transport ban covers passenger traffic by train, bus, ship and flights directly from these countries,” the Health Ministry said in a statement.
“The order covers the period from December 22nd, 2020 until January 6th, 2021.”
It added that people who have valid residency permits for Germany could return from January 1st.
The ministry said that travellers who arrived from the affected countries or who spent time there in the last 10 days would be required to be tested for the coronavirus.
“Existing quarantine rules for arrivals from risk areas continue to apply,” it added.
Health Minister Jens Spahn said that “as long as it is possible”, Germany aimed to prevent “potentially dangerous virus mutations from spreading in continental Europe”.
“The entry ban from Britain, Northern Ireland and South Africa is a precautionary measure until we know more about the reported coronavirus mutations” in those countries, he said.
A string of nations around the continent on Sunday began suspending travel links with Britain to prevent the spread of the new strain of the coronavirus.
EU ambassadors were to meet Tuesday to try to thrash out a unified approach and work out how to eventually lift the border restrictions with Britain – including by imposing a requirement for tests on all arrivals.