How can I distinguish different yet similar sounds when listening?
This is a very good question, which I also run into while I was learning English. 

My approach to this is to learn 最小的语言单位 (I defined it as a Minimum Language Unit, MLU). I invented that term here, lol. MLU is a minimum language unit that can express something in practice. For example, the single character 向 xiang 4 doesn't mean anything and it's only valid in the phrase like 方向. Put it in a sentence: 我找不到方向. Here I treat 我, 找不到，方向 as MLUs, because each denotes the minimum meaning of the language.

When you read/listen, try not to focus on each single character, but on MLUs, because a single character might be meaningless for comprehension. 

This is also the way I do for English. For example, I'll catch you later, make sure you won't be ripped off, where I'll, catch you later, make sure, you won't be, ripped off are all considered as my MLUs. In this way, my reading level and my listening level are almost the same and they are much better than my writing. When I listen, I try to catch those MLUs instead of word for word. This also helps the speed for comprehension. When you hear something spoken out in your second language, usually you might have to take some time to digest internally. The shorter time you consume, the better listening you will have. 

Another point, which is also very important, is the cadence. When you hear a native speaker speaks, he/she  always follows some kind of rhythm and along with some tone emphasis(I am not sure how to describe it correctly, but hopefully it'll be clear). You should learn to capture that cadence as well. It would take you some time, but it wouldn't be very hard I think. 

I personally had been very successful with this approach. My foreign colleagues, who are American native speakers, feel that they are free to communicate with me and easy to get their thoughts come through when we discuss technical issues. They don't have to slow down when they talk to me. I hope this approach could help you as well! 

Good luck!