When I join the Ethereum network, I ask for block header data from neighboring nodes. How can I guarantee the reality of data？What if the neighbors conspired to give me bogus data？
This is an attack vector and is called an eclipse attack.
This paper deals with “eclipse attacks” enabling a malicious actor to isolate a system user by taking control of all outgoing connections. Although being known from practical blockchain applications, eclipse attacks, so far, are hard to be detected.
While this does not appear to play out often in Ethereum, you could resolve the issue by spinning up two+ different nodes in two+ physical locations and confirming that they are in sync.