Trains from all over China arrive at Guilin (South), Guilin North, Yangshuo (Xingping) and Gongcheng train stations. Guilin North station is probably the most inconvinient out of all these train stations as it is the furthest one from Yangshuo, but it is also where most trains terminate. Yangshuo (Xingping) and Gongcheng are nearer but not many trains stop at these stations. There are public transport options from each of these stations or you could have your hotel send a car to meet you on arrival at any of these train stations.
Also known as Guilin South train station, is located in the downtown area of Guilin.
From the station forecourt, there are regular local buses to Yangshuo. The current price is 25 Yuan per person. The drive takes around an hour and a half and the final stop is Yangshuo's North bus staion.
Guilin North Station
Located in the north of Guilin, you would need to get to Guilin's bus station in order to catch a bus to Yangshuo. You can take a taxi to the bus station or bus 99 (2 Yuan per person). Express buses leave the bus station on a regular basis and cost 25 Yuan per person. These buses terminate at Yangshuo's North bus station.
You could also go to Guilin's 'south' train station from where you can get a local bus to Yangshuo.
Yangshuo (Xingping) Train Station
Regular express buses depart from the train station and arrive into Yangshuo about an hour later. Cost is 20 Yuan per person. The bus terminates at it's own special 'bus station' in the southern part of Yangshuo. Taxis are a little bit rare at this station. You can take local bus #12 from here which goes into Yangshuo's downtown. The cost is 1 Yuan per person, exact money only.
There are no direct buses from Gongcheng's train station to Yangshuo. You would need to take a taxi into Gongcheng and then take a local bus to Yangshuo. Cost is 20 Yuan per person.