Germany on Monday introduced border controls with Austria, Denmark, France, Luxembourg and Switzerland in a bid to stem the coronavirus outbreak.
Only those with a valid reason for travel, like cross-border commuters and delivery drivers, are allowed through, officials said. The measures started at 0700 GMT, AFP reporters said.
At the border between Germany's Kiefersfelden and Austria's Kufstein, police let trucks through but stopped all passenger cars to question drivers, an AFP photographer saw. By 0730 GMT, some 10 cars had been turned back.
German citizens and people with a residency permit will still be allowed to return to the country, Interior Minister Horst Seehofer said on Sunday when he announced the temporary border checks.
It is the latest drastic step taken by German authorities to halt the pandemic.
From Monday, schools and daycare centres in most German states will remain closed, with some exceptions made for parents in critical jobs who have not yet found alternative child care arrangements.
Germany has also banned large gatherings, and states are increasingly asking restaurants, bars, sports clubs and other public places to shut their doors as well.
Germany's islands in the North and Baltic Seas also closed themselves to tourists from Monday.
And Bavaria planned to declare a disaster situation to allow the state's authorities to push through new restrictions faster, including possibly asking the army for assistance.
German President Frank-Walter Steinmeier urged citizens to limit their social contacts.
"Restrictions on our lives today can save lives tomorrow," he told the news site t-online.de.
"We will conquer this virus," he added.
Germany has so far recorded 4,838 confirmed infections and 12 confirmed deaths.
Other neighbouring countries like Poland and the Czech Republic have also closed their borders or introduced severe restrictions.