mirror of
https://github.com/fatedier/frp.git
synced 2026-05-15 08:05:49 -06:00
[GH-ISSUE #793] 希望能在HTTP/Socks5的代理里增加独立的DNS设置 #619
Labels
No labels
In Progress
WIP
WaitingForInfo
bug
doc
duplicate
easy
enhancement
future
help wanted
invalid
lifecycle/stale
need-issue-template
need-usage-help
no plan
proposal
pull-request
question
todo
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/frp#619
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @ChenWenBrian on GitHub (May 25, 2018).
Original GitHub issue: https://github.com/fatedier/frp/issues/793
目前在frpc里可以设置整体的DNS server,但是该设置也会同时影响到其他端口的服务,例如HTTP和Socks5的代理。
遇到的问题:
frps的服务器地址是通过公网的动态域名解析的,公司内网的网关DNS虽然也能解析,但是每次更换IP后内网DNS会缓存很久之前的解析结果(约半小时);而公网如223.6.6.6(阿里的)、8.8.8.8往往只缓存10分钟,可以保证frpc更快的连接到新IP。
于是我在frpc上设置了dns_server,但是发现这样做后,HTTP代理都不能正常解析内网域名了,因为所有的域名解析都是公网的DNS在做,而公网DNS没法知道内网的域名情况。
希望能有如下的DNS独立设置项:
@fatedier commented on GitHub (May 25, 2018):
不太可能会考虑这样的问题,设置 DNS server 也不推荐使用,原本只是为了解决在 android 上遇到的不使用操作系统默认 DNS 的问题,之后会将这个配置注释以让大多人不需要感知。
我个人不推荐在程序里加入过多和项目本身无关的功能,能够通过其他工具或者方式解决的问题就不要全都放在一起。你如果有对 DNS 解析的特殊需求可以考虑借助于其他工具解决。
@ChenWenBrian commented on GitHub (May 26, 2018):
那可否考虑将目前的DNS_SERVER的设置作为仅与frps端连接前的域名解析使用?
@fatedier commented on GitHub (May 26, 2018):
这样的修改是一件很奇怪的事情,我建议还是不要使用这个功能,直接使用操作系统的 DNS 解析。
@xiaoyell commented on GitHub (May 27, 2018):
@ChenWenBrian 你不妨把你的网络环境具体的说下,看看大家有什么好办法了
@ChenWenBrian commented on GitHub (May 30, 2018):
Hi @xiaoyell,抱歉回复的晚了,这几天一直再尝试各种解决方案,虽然问题有解决,还是期望FRP本身能支持。
网络环境可以见上图。
目前主要的问题就是阿里的DDNS解析和公司内网的DNS问题。阿里的DDNS最低TTL是600,也就是10分钟才会更新,而公司的DNS更变态,要缓存半小时。而从公司内网FRPC去连接家里的FRPS,需要用到DDNS解析。当家里路由器的IP变更时,FRPC会重新连接,我希望这个时间尽可能的短。如果我指定DNS为阿里的,则10分钟内必然连接成功,但是问题是内网的http_proxy和socks_proxy的解析就全部出错;如果我指定DNS为内网的,则每次耗时在30分钟左右,好处是可以解析内网域名。
我个人想到的几种方案:
个人比较倾向第三种方案,增强FRPC的扩展能力,这样大家再遇到类似需求的时候,可以由用户自行扩展一些简单的功能,希望各位大神能考虑下,谢谢。
@ChenWenBrian commented on GitHub (Jun 4, 2018):
写了个脚本动态监控阿里的域名解析变化,并更新本地hosts文件。然后frpc直接使用动态域名去连接家里的服务器就可以了,无需再设置dns服务器。
脚本放github了,供有同样需求的同学参考
AliDDNS