挂代理与不挂代理如何做到无缝切换(非 http)

2021-10-15 17:13:23 +08:00
 devliu1

比如我有 ssh 服务,内网是 10.0.0.1:22,通过域名 example.com 访问。 我希望在外网的时候 也可以通过域名 example.com 访问到。 路由器自己解析是可以的,但是外网访问端口和内网端口必须保持一致,有点麻烦,有什么好的类似 PAC 的本地全局代理吗?

4886 次点击
所在节点    程序员
21 条回复
dcty
2021-10-15 17:19:09 +08:00
如果你用的是 Mac,那么用 surge 可以解决。dns 解析可以用脚本实现,判断当前网络来返回域名对应的 IP 。
wweir
2021-10-15 18:11:15 +08:00
写个 hosts 文件不好么
IvanLi127
2021-10-15 18:41:46 +08:00
只要你有公网 ip 端口没被阻断,好像只要网关把所有端口转发给你的内网服务就好了?内网再开个 dns 服务,网关再设其为默认 dns 服务器,应该能满足吧?
starsky007
2021-10-15 18:57:26 +08:00
Tailscale
z7356995
2021-10-15 19:09:04 +08:00
ipv6 内外网都一样
cweijan
2021-10-15 19:36:33 +08:00
就是异地组网嘛, 想快速体验可以用国产的蒲公英, 其他免费的有 Tailscale 、zerotier, 自建则可用 WireGuard
devliu1
2021-10-15 19:36:42 +08:00
@dcty 我觉得是正解,能完美解决需求,我要的应该是 programmable 全局代理工具

@wweir hosts 与我自建 dns 没区别呀

@IvanLi127 问题就是公网被阻断了,(所以端口不够用,这才是主要问题!!!)不然网关侧就可以解决这个问题。

@starsky007 这个看着是类似 zerotier 的服务吗?我研究一下

@z7356995 学习了,但是公网没有 v6
devliu1
2021-10-15 19:44:03 +08:00
@cweijan 对,其实就是想要一个可以自动适应网络环境的 VPN,如果已经在内网就走内网流量
Xusually
2021-10-15 23:31:28 +08:00
Surge
mMartin
2021-10-16 10:56:31 +08:00
软路由可以设置 dns 代理 比如爱快的 dns 反向代理功能
cache
2021-10-16 11:57:35 +08:00
@devliu1 Tailscale 就是你要的自动适应网络环境的 VPN,内网时直连,外网如果打洞成功也能直连,否则走中转。
缺点是 Tailscale 的服务器在国外,中转会很慢。

你如果只是端口不够,其实还有一个简单的解决方案:直接复用已经映射好的端口,如 443.

你要编程实现的话,每条新来的连接检测一下第一个包的起始几个字节,如果是 ssh 转内网的 ssh 服务器,如果是 tls 包,转原来的 https 服务。
devliu1
2021-10-16 16:20:16 +08:00
@cache 测试了一下 Tailscale 还是慢了,自己编程实现感觉可以设置全局的 socks 代理,然后代理逻辑自己魔改一下?

@mMartin 主要还是端口不够用,本地 DNS 解析是好做的,想在 4 层做自定义的转发
devliu1
2021-10-16 16:25:14 +08:00
好像最方便的方式还是多买一个公网 IP 。
每个服务占用一个 IP 的固定端口,在本地 DNS 把公网域名解析到本地。

如果是 https 还可以通过 host 转发给不同的服务。
zhfish
2021-10-16 22:03:12 +08:00
这么麻烦? 内网上一个软路由,dns 里面 10.0.0.1 example.com 不就行了。。
连上内网走路由 dns, 外网走公网 dns
zhfish
2021-10-16 22:04:11 +08:00
端口一致为什么麻烦,这个没太理解
devliu1
2021-10-17 10:30:56 +08:00
@zhfish 举个反例,内网两个 ssh 192.168.1.1:22 、192.168.1.2:22 。但只有一个公网 ip,可以映射 1.1.1.1:22 -> 192.168.1.1:22,但是要映射 192.168.1.2:22 的时候,端口不够了,本质还是公网 ip 少了。
orancho
2021-10-17 16:13:02 +08:00
你要找的是不是 MAAS 或者 ActiveDirectory 的 DNS ?
FakNoCNName
2021-10-18 10:29:39 +08:00
你这个需求弄个跳板机最简单,路由器 22 断口映射到跳板机上,其它的全部通过跳板机转发
yhan
2021-10-18 13:46:10 +08:00
试试 proxifier
devliu1
2021-10-18 14:13:08 +08:00
@FakNoCNName 是这样的,似乎懂了,我要的就是跳板机能自适应网络环境,按照我之前的方案,这样一个端口就行。
@orancho 没懂

@yhan 好像也可以,感谢

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

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

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

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

© 2021 V2EX