Ukraine will not allow Russian men aged 16-60 into the country following the imposition of martial law, Kiev says.
An exception would be made for “humanitarian cases” such as those travelling to funerals. Russia says it is not planning retaliatory measures.
Martial law has been imposed in 10 Ukrainian regions 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 last Sunday.
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.
The restrictions were announced after President Petro Poroshenko met the country’s top security officials, including border guard chiefs, in Kiev.
The president 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.
Mr Poroshenko also said registration criteria would be tightened for Russian citizens in the regions under martial law.
On Tuesday, he warned there was a threat of “full-scale war” with Russia.
“The number of [Russian] tanks at bases located along our border has grown three times,” the president said.
Five of the 10 regions border Russia while two are adjacent to Moldova’s breakaway Trans-Dniester region, where Russian troops are stationed. The other three regions border the Black Sea or Sea of Azov close to Crimea.