동경 127°34′, 북위 34°37′에 위치한다. 여수에서 서남쪽으로 26.2㎞, 화양반도(華陽半島)의 남쪽 3.6㎞ 지점에 있다. 인근에 적금도(積金島)·둔병도(屯兵島)·조발도(早發島)·상하화도(上下花島)·사도(沙島) 등이 있다. 면적은 5.33㎢이고, 해안선 길이는 19.50㎞이다. 섬 남단에는 남포등대가 있다. 섬의 형태가 여우를 닮았다고 하여 낭도라 부르게 되었다고 한다.
지질은 대부분 중성화산암류로 이루어져 있다. 낭도산(狼島山, 280.2m)이 위치한 섬 동쪽 지역을 제외하면 대부분 구릉지이다. 해안은 만(灣)과 곶(串)이 교대하여 이어지고 있어 해안선의 드나듦이 복잡하다. 만입부(灣入部)는 대부분 사빈해안(沙濱海岸)을 이루고 있으며, 파랑에 노출되는 남쪽에는 암석해안이 발달해 있다.
연평균기온은 14.4℃, 1월 평균기온은 2.1℃, 8월 평균기온은 24.1℃, 연강수량은 1,247㎜이다.
2009년 기준으로 인구는 346명(남 148명, 여 198명)이 거주하고 있으며, 세대수는 202세대이다. 취락은 섬 중앙의 만안(灣岸)에 집중되어 있다. 토지이용 현황은 논 0.17㎢, 밭 0.61㎢, 임야 3.13㎢이다. 주민의 반 이상이 농업에 종사하고 있다. 농산물로는 감자·고구마를 비롯하여 보리·쌀·무·마늘 등이 생산되고, 염소와 소 등의 가축이 사육되고 있다.
연근해에서 감숭어·멸치·장어 등이 주로 잡히며 김·굴·피조개 등의 양식도 행해지고 있다. 주변 해역은 봄과 여름에 제주난류가 북상하여 난류 어족이 많이 모여들어 좋은 어장을 형성한다. 근해 수산업의 중심지로서 수산가공업이 발달해 있다.
여수 백아도에서 정기여객선이 매일 운항된다. 여산초등학교는 2001년 3월에 안일초등학교 여산분교장이 되었다가 2012년에 폐교되었다. 중학교는 화양중학교 낭도분교장이 있다.