WireGuard部署及NAT打洞

主要参考文档:

wireguard文档
相关中文翻译
– https://blog.51cto.com/u_15077562/4574884
– https://icloudnative.io/posts/wireguard-docs-theory/
nat穿透
相关中文翻译
– https://xie.infoq.cn/article/3f68cde0163b359b13fa1a8f0
– https://icloudnative.io/posts/wireguard-endpoint-discovery-nat-traversal/

总结

  • nat穿透的时候需要NAT后的节点共同连到一个有公网IP的节点上
  • 在nat背后的两个节点相连的时候需要至少一个是全椎形NAT,或者双方都为限制椎形
  • coredns部署在具有公网IP的节点上
  • wgsd_client需要在nat背后的节点上定时运行,可以5分钟或10分钟一次
  • wgsd的代码可以自己编译,尤其在windows上只能自己编译,在对应目录中运行go build就可以了
  • nat状态表的过期时间一般为2分钟,所以keepalive周期最好在1分钟以内
  • nat后节点不需要与公网节点能正常通信,只需要能向公网节点发起连接就行,所以coredns最好在公网开放端口,这样在不能与公网节点通信时也能用
  • 运营商级NAT都不是全椎形
  • nat类型探测工具
    https://github.com/HMBSbige/NatTypeTester
  • nat类型介绍
    https://support.huawei.com/hedex/hdx.do?docid=EDOC1100331440&id=ZH-CN_CONCEPT_0183792552
    https://zhuanlan.zhihu.com/p/657998085

发表回复