Around 85 migrants were rescued off the Libyan coast, east of Tripoli, on Saturday after their rubber boat started sinking.
But up to 40 others crammed onboard, including pregnant women and at least seven children are missing.
More than 2,000 migrants have died trying to reach Europe by sea from Libya this year alone.
Fishermen raised the alarm and took part in the rescue along with Libyan coastguards.
One unnamed survivor from Niger said he would advise relatives thinking of making the journey to stay at home rather than risk their lives trying to get to Italy.
He said it was terrible to see humans dying and not be able to save them.
Those rescued, about 10 km north-west of the town of Garabulli, were said to be largely from Nigeria, Senegal, Cameroon, Ivory Coast and Ghana.
Garabulli is a common departure point for migrants trying to reach Europe. Smugglers usually cram the migrants into flimsy rubber boats with homemade wooden bases.
Around 85,000 migrants have reached Italy so far in 2017.
International Organization for Migration
Those stopped by the Libyan coastguard at sea are detained in centres, some official ones nominally run by the government and others run by an array of armed groups.
Those running the centres raise money by making migrants or their families pay for their release, selling them back to smugglers or hiring them out for labour, migrants say.
Sexual abuse is common, according to a former member of staff at one of the Tripoli centres.
In unofficial centres and holding houses in western and southern Libya, run by militias or even by smugglers themselves, conditions are said to be far worse.
Migrants say video or audio of them being tortured is relayed to their families to extort cash transfer payments.