Ukraine will not allow Russian men aged 16-60 into the country during martial law, the president has said.
An exception would be made for “humanitarian cases” such as those travelling to funerals.
Martial law has been imposed in 10 regions including those bordering Russia until 26 December.
The move came amid fears of a Russian invasion after Russian forces seized three Ukrainian vessels and 24 sailors in the Black Sea at the weekend.
Ukraine said the incident was a flagrant violation of international law, while Russia says the vessels violated its territorial waters.
It is the most dangerous clash at sea off Crimea since Russia annexed the Ukrainian peninsula in March 2014.
President Petro Poroshenko tweeted (in Ukrainian) that the ban was designed to prevent the formation of “private armies” in Ukraine.
He was referring to Russian-backed separatists who formed units in April 2014 to fight Ukrainian government forces in eastern Ukraine.
The BBC’s Jonah Fisher in Kiev says the ban could have a devastating impact on cross-border travel as the holiday period approaches and could trigger reciprocal measures from Russia.
Ukraine bars Russian men from entering country