I developed a tunnel proxy program in Rust and deployed it on a cloud server located in Hong Kong. Oh,I’m in China. With this proxy, I can access websites within China, such as Baidu and Bilibili, without any issues. It also allows access to Twitter; however, I cannot connect to Google or YouTube.
The cloud server itself can access Google directly via OpenSSL or Netcat (nc). I used tcpdump to capture packets and discovered that, when my program on cloud server attempts to connect to Google, it sends a FIN packet to terminate the connection immediately after the TCP three-way handshake is completed.
Another attempt, I originally thought that the traffic was being intercepted by the GFW (Great Firewall). Based on this assumption, I encrypted the traffic on the client side and then decrypted it on the server side, similar to how v2ray works. However, after making these modifications, I couldn’t even connect to websites like Baidu and Bilibili anymore.
Can anyone explain why this happens?
song xiao is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.