By train. Shanhaiguan railway station, on the original Beijing–Shenyang line, is a five-minute walk from the south gate of the old town. High-speed CRH trains from Beijing South take about two hours; slower D-class and K-trains take three to four. Trains continue north-east into Liaoning and toward the North Korean border.
From Beidaihe and Qinhuangdao. Shanhaiguan is now a district of the larger Qinhuangdao prefecture-level city. From the main Qinhuangdao high-speed station, a local train or taxi takes about 30 minutes. The popular beach resort of Beidaihe, 25 km south, is connected by frequent local trains and a constant flow of taxis.
By air. Qinhuangdao Shanhaiguan Airport (BPE) is just outside town with limited domestic flights; most visitors arrive via the train or fly into Beijing and take the train onward.
By road. The G1 Beijing–Harbin expressway passes Shanhaiguan; private hire from Beijing takes about three hours. Long-distance buses from Beijing run several times a day.