A1 、B1 主机均处于端口限制锥形 NAT 网络下,A2 、B2 为固定外网地址,NAT 映射端口有规律,会把本地的源端口直接映射为外部访问端口。但 A1 只能访问 tcp/udp 53 端口的出站地址。经过实验,A1 、B1 间通过 netcat 打洞成功,过程为:
1 、A1:53 访问 B2:10086 ,发送 hello 敲门请求,此条信息被 B2 拦截,但在 A2 上打开了通向 A1 的 53 端口
2 、A1 监听 53 端口
3 、B1:10086 访问 A2:53 ,打洞成功
打洞成功后在 A1:53 端口通过 gost 开启 socks 代理,需要发起 B1:10086 通往 A2:53 的访问。该部分在 netcat 上通过指定-p 参数实验成功,但不知道在 gost 中如何发起指定源端口的转发请求。 另外,想在 A1 上写个脚本,定期(如每 2 分钟)向 B2 发起敲门请求,然后转用 gost 监听 53 端口,等待 B1 的访问,关于这种情形下的打洞有没有更优雅的实现方法。
1
flynaj 2023-09-13 07:14:50 +08:00 via Android
需要 nat1 才能成功打洞,其它的不用考虑,用这个 natmap .
https://github.com/heiher/natmap/wiki/ |