One protester was killed and at least three others are in critical condition after police in Bangladesh opened fire on a violent protest against coronavirus restrictions, officials said.

The incident took place Monday in the central town of Saltha in Faridpur district, where rumours had spread that a man at a market was injured while police were enforcing Covid-19 controls as cases spike nationwide.

Thousands of people took to the streets in anger.

One group hurled bricks at a police station, vandalised government offices and torched an officer's home and two government cars, police said.

A police spokesman said officers opened fire "in self-defence" after the station was attacked.

A 20-year-old Islamic student was killed and at least seven people injured, including three police, according to Suminur Rahman, Faridpur deputy chief of police.

Staff at state-run Faridpur Medical College Hospital said three people with gunshot wounds are in critical condition.

"One of them was hit in his buttocks, another in his chest and the third person was shot in both legs," Abdul Matin, a doctor at the emergency ward, told AFP.

Police said supporters of the hardline Hefazat-e-Islam group had joined the attack.

Hefazat members were involved in deadly clashes during demonstrations against a visit by Indian Prime Minister Narendra Modi last month.

Bangladesh on Monday instituted a seven-day nationwide lockdown after 7,087 people tested positive for coronavirus on Sunday, the highest daily total recorded in the South Asian nation.

All domestic buses, ferries, trains and flights have been suspended, and shops and malls have been shut. A nighttime curfew is also in effect.

Hundreds of shopkeepers in the capital, Dhaka, protested the lockdown, saying it would hurt their businesses.