In most cities, the ticket reservation system is based in local train station(s), not linked to other cities. So you can only buy a ticket for a journey starting at local city. However in major cities such as Beijing, Shanghai, Guangzhou you can buy ticket for your return journey and for trains starting at other cities on some routes.
In some big train stations, there are ticketing offices for foreigners where English service is available, but this is not always guaranteed. It's a good idea to write down your train number, departure date, class and destination and ticket quantity you need in Chinese. Then if no English service available, you could also buy ticekts from normal wickets.
Usually reservations for Z trains and D trains open 10 - 21 days before departure, for other trains only 7 - 10 days before departure. In peak season such as Spring Festival holidays, the reservations may open only 5 days before departure. Outside peak season you should have no trouble to get a ticket a few days in advance. During summer soft sleeper tickets are usually possible to obtain but hard sleeper tickets can be very difficult to come by because it's the summer holiday for collage students. During public holidays, and especially during Spring Festival, it’s very difficult to find any tickets. Queues can be unbelievably long and slow-moving and it’s best to fly during these periods.
ticket hall during Spring Festival holidays / ticket vendoring machines for D train
Instead of train station, you can also buy tickets from offical agency near you. They provide the same service as train station wickets except 5 yuan per tickets handling charges. We have a agency list at right side of this page and it may help you if you are in one of these cities.
offcial ticket agency
If you are outside China and want to book a train ticket in advance, you have to find an agency or travel company. Someone offer train booking service online. Alternatively, you also can ask your hotel if they can booking train ticket for you, they often have a lower fare service then travel company, however usually can only arrange train ticekts starting at the local city.