Skip to content

Latest commit

 

History

History
28 lines (15 loc) · 1.29 KB

File metadata and controls

28 lines (15 loc) · 1.29 KB

本文档只是一个随手写的新手攻略,融合了助教们去年和前年的感受杂合而成。

配置环境后

  • 阅读go tour了解Go语言的基本语法
  • 并发与锁并不会在之后的编程有强制的需求,但仍然建议了解
  • 了解一些网络相关的基本常识,如ipv4/ipv6,tcp/udp,http等
  • 强烈建议先去了解net包,binary包的相关接口的使用,之后会用到
  • 阅读常用高代码质量网络工具的源码,从中了解 go 语言网络编程的基本思路和方法

什么是客户端,什么是服务端?

客户端

客户端需要能够捕获本地的正常网络请求,使用代理协议将其包装(套壳),然后发向特定的服务器。

服务端

服务端需要接受由协议包装过的请求,然后将其解包为正常的流量,代替客户端去做出网络请求。

举例来讲,socks5协议中服务器监听一个地址和端口,每次有新的连接时(称为连接1),根据协议进行握手,然后向外发起网络请求(称为连接2),之后在连接1和连接2之间转发数据。

WSL 网络环境

如果你对 WSL 的网络行为感到困惑,建议参考微软英文官方文档