求问是否存在这样一个现成的方案

297 天前
 firejoke

环境:

  1. 代理服务器反向代理,客户端只知道代理服务器地址。
  2. 代理服务器有出口带宽限制。
  3. 资源服务器出口带宽比代理服务器出口带宽大。
  4. 资源服务器没有固定 ip 。
  5. 代理服务器通过跨网段的 VLAN (打洞)访问资源服务器。

需求:

  1. 通过代理服务器拿到资源服务器的当前地址,以便直接访问资源服务器。
  2. 在资源服务器的访问地址变更时,能自动从代理服务器获得新的资源服务器地址。

场景:

  1. 通过有公网 ip 的云服务器直接访问被代理的家宽资资源主机,避免云服务器的公网带宽限制。
1392 次点击
所在节点    程序员
9 条回复
hamsterbase
297 天前
tailscale

只要在设备上都安装 tailscale , 就可以用一个固定的内网 IP 相互访问。

tailscale 会自动打动。 可以 免费 用 tailscale 的服务,也可以自己部署开源替代品。
sofukwird
297 天前
DNS srv record 最接近你要的效果
http3 没试过
shalingye
297 天前
如果你不愿意在客户端上安装相应的软件,那这个需求基本上是满足不了的。
initObject
297 天前
我的情况好像有些许类似
给一下我的解决方案吧
环境:
家庭宽带下一台组装机装了 pve+一台 macmini +n1 家庭宽带公网 ipv6
云环境下两台 oracle 免费 linux 主机 有公网 ipv4+公网 ipv6

解决方案:
这些机器使用 zerotier 组二层打洞内网 组 k3s 集群
普通访问域名解析都解析到云主机
当客户端以 ipv4 访问域名时只能通过云主机 ipv4 来访问(家宽未申请到公网 ipv4 )
ipv6 访问时会跳转到解析到家宽 ipv6 的域名加指定端口(家宽封禁 80 443 等常用端口)
ysc3839
297 天前
大概没有现成的,但是写一个也不麻烦,很多语言都能实现。
客户端 WebSocket 连接代理服务器,当资源服务器 IP 改变后提交给代理服务器,代理服务器下发资源服务器 IP 给客户端。
xuanbg
297 天前
资源服务器使用动态域名,通过域名直接访问资源服务器
firejoke
297 天前
@hamsterbase @ysc3839 主要就是客户端可能无法安装软件。

@initObject 我这边家宽的 ipv6 不如你的稳定。

@sofukwird 我研究下 DNS 这个,谢谢,铜币给你。
ysc3839
297 天前
@firejoke 定义一下什么是“无法安装”?浏览器也不给装?如果什么都不给装的话,楼上提到的 DNS 方案就更不可行了,需要一个程序去解析 DNS ,但这个程序没法安装上去。
sofukwird
296 天前
@ysc3839 doh(DNS over https)可以在浏览器中使用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/957226

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX