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 as Ukraine’s president expressed fears of a Russian invasion after Russian forces seized three Ukrainian boats and 24 sailors.
Ukraine said Sunday’s incident in the Black Sea 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 peninsula from Ukraine in March 2014.
Why Ukraine-Russia sea clash is fraught with risk
Who controls the waters?
Russia-Ukraine sea clash in 300 words
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.
The BBC’s Jonah Fisher in Kiev says the ban could have a devastating impact on cross-border travel as the holiday period approaches. Many Russians have relatives living in Ukraine.
Reacting to the Ukrainian ban, Russian Foreign Ministry spokeswoman Maria Zakharova said Moscow was not planning “mirror” measures as this “could result in full madness”.
Russia earlier said the 30-day martial law in Ukraine had been declared in order to potentially suspend presidential elections set for 31 March.
It said President Poroshenko – whose approval ratings have plummeted – would then be the main beneficiary.
Mr Poroshenko denies the claim, saying the polls will be held as scheduled.
Details of how the ban will be enforced have not been published, but stricter checks are now expected at border crossings.
Although the ban applies to all points of entry into Ukraine, the main focus is likely to be on the nearly 2,000km (1243 miles) Ukrainian-Russian land border.
Soon after the conflict began in 2014, Ukraine started building a “wall” – a system of fortifications along the border. However, the project is still unfinished due to lack of funds.
To further complicate the matter, hundreds of kilometres of Ukraine’s border are de facto controlled by Russia and pro-Russian separatists in the east.
Meanwhile, checkpoints have been set up between Ukraine and Russian-annexed Crimea in the south and also on the line of separation between Ukraine and two self-proclaimed rebel republics in the east.
And even before Friday’s ban, Ukraine had already put restrictions on Russian nationals who want to visit Ukraine. A number of them have been deported for failing to explain the purpose of their visit, Ukraine says.
Russian nationals – as well as other foreigners – are routinely denied entry into Ukraine if they have visited Crimea or the self-proclaimed republics not via Ukrainian-controlled points of entry.
Kiev has also stopped direct flights between Ukraine and Russia.
Last year, 1.5 million Russian nationals visited Ukraine, Unian news agency quoted the country’s statistics office as saying earlier this year.