I installed the app on 2 iPhones. The first iPhone successfully connects to my PC, the second one does not show RCV indicator. I pinged from both side and made sure the network is reachable. (Sometimes iPhone does not respond to ARP packets which can be fixed by a bidirectional ping.) However the RCV indicator still didn't light up.

I realized that the second iPhone is a China market model. Due to enormous customer complaints, Apple now requires the user to explicitly grant network permissions for both Wi-Fi and cellular on China models, at the time when the app first tries to connect to the Internet. Since VBAN only passively listens on a UDP socket, and never actively connects, iOS didn't pop up a window for me to grant that permission, making VBAN Receptor totally unusable on that machine.

The solution might be simple: try to initiate any connection when the app starts. I don't know whether a low-level connect() would work, but preferably an HTTP request or a DNS request would work. I searched over Apple's development documents but found nothing useful, I will update this post when I have more idea.