Casco Bay Lines, run by the Casco Bay Island Transit District, sails from Portland to the islands of Casco Bay. The Maine State Ferry Service (MSFS), part of the Maine Department of Transportation, runs car and passenger ferries from Rockland, Lincolnville and Bass Harbor to Vinalhaven, North Haven, Matinicus, Islesboro, Swan's Island and Frenchboro.
Casco Bay Lines ferries from Portland
Portland–Peaks Island ferry
The Portland–Peaks Island ferry crosses in about 15 minutes, and its car ferry runs carry vehicles to Peaks Island.
Casco Bay islands ferry
The Casco Bay islands ferry runs from Portland to Little Diamond Island, Great Diamond Island, Diamond Cove, Long Island, Chebeague Island and Cliff Island.
Both leave from the Casco Bay Lines terminal at 56 Commercial Street in Portland, which has no long-term parking.
Maine State Ferry Service routes
Rockland–Vinalhaven ferry
The Rockland–Vinalhaven ferry crosses 15 miles from the Rockland ferry terminal to Vinalhaven.
Rockland–North Haven ferry
The Rockland–North Haven ferry crosses 12.5 miles from the Rockland ferry terminal to North Haven.
Rockland–Matinicus ferry
The Rockland–Matinicus ferry sails from Rockland to Matinicus Isle on scheduled dates only, by reservation.
Lincolnville–Islesboro ferry
The Lincolnville–Islesboro ferry crosses 3 miles from Lincolnville to Islesboro.
Swan's Island and Frenchboro ferry
The Swan's Island and Frenchboro ferry sails from Bass Harbor to Swan's Island and to Frenchboro.
Rockland ferry terminal
The Vinalhaven, North Haven and Matinicus ferries all leave from the Rockland ferry terminal at 517A Main Street (Route 1), Rockland, ME 04841. MSFS runs no ferry between its islands, for riders or vehicles, so each trip starts or ends on the mainland.