Canada's senate has voted to legalise recreational cannabis, clearing a major hurdle that puts the country on track to become the first G7 nation to permit national use of the drug.

The upper chamber senate voted 56-30 in favour of the legislation, but included amendments that the House of Commons will need to decide on before the law can be passed.

While there is not yet a definite date for when cannabis will be available for sale, the senate was one of the last significant obstacles standing in the way of legalisation as a number of Conservative senators oppose the bill.

Health Minister Ginette Petitpas Taylor said earlier this year that cannabis would only go on sale a few months after it was legalised because the new retail system needed time to start working properly.

The amendments proposed by the senate include tighter advertising restrictions and giving the provinces say over whether Canadians can grow cannabis at home.

The government's legislation would allow Canadians to grow up to four plants at home for personal use.

Although legalisation has already been delayed from the government's initially planned July launch, some provinces and police forces have argued they need more time.

The provinces have been left in charge establishing how and where marijuana will be sold.

The Liberals, which made legalising recreational use part of their successful 2015 election campaign, say the new law would keep cannabis out of the hands of underage users and reduce related crime.

Canadian marijuana companies such as Canopy Growth Corp, Aphria Inc, Horizons Marijuana Life Sciences ETF and Aurora Cannabis Inc have been at the centre of investor frenzy surrounding attempts to legalise marijuana for recreational use nationwide.