内网两台机器之间,是否需要修改/etc/hosts 文件来达到更快的访问速度?

2019-11-02 04:02:04 +08:00
 ericgui
A 机器用 B 机器的 restful api,但由于某些原因,不是用 IP 直接访问,而是用域名,比如 A 机器的 app 请求 B 机器的 api,可以这样设置:

1.2.3.4 (B 机器的内网 ip) https://b-api.example.com

这样做可以吗?谢谢
2787 次点击
所在节点    问与答
17 条回复
Laforet
2019-11-02 05:42:39 +08:00
可以但是没必要,DNS 是有缓存的
ericgui
2019-11-02 06:01:21 +08:00
@Laforet 哦,谢谢啦,有缓存就好
maemual
2019-11-02 09:33:58 +08:00
虽然有缓存,但是感觉还是会从公网网关走一遍。如果公网入口外面还有高防、负载均衡之类的话,可能还是会有不少公网开销成本的。
Acoffice
2019-11-02 10:13:32 +08:00
@maemual #3 审题,,,内网两台机器之间。。。。。。走毛公网。
netnr
2019-11-02 10:20:55 +08:00
域名解析是需要走公网的;如果本地不怎么变动,建议加上 hosts
ungrown
2019-11-02 10:21:50 +08:00
@Acoffice
用的公网 DNS 的记录啊,域名解析出来是公网 IP 啊,要么从公网绕要么无法访问(如果此机无公网访问权限)

楼主可以试试我家里的方案,我家里网络 DHCP 配置了自建的 DNS,就是个简单的 dnsmasq 中继,绝大部分记录都从外网获取,但是跟家里服务器有关的记录全部自定义为内网 IP。这样在外网访问家用服务器就走外网,回家设备连上自建 DNS 后访问家用服务器就用内网 IP。

其实改 hosts 更简单,只要能满足你需求,毕竟服务器又不会像笔记本手机一样家里家外不停变动。
Acoffice
2019-11-02 10:29:40 +08:00
@ungrown #6 既然在内网大概率两台机器互通,何必从公网绕一圈呢,不是没事儿找事儿么。
如果内网没 dns,写 host 肯定访问速度最快。
CEBBCAT
2019-11-02 10:49:42 +08:00
快不到哪去,发往目的地的包一到公网网关就直接发给 B 了,不会出现先发到省交换中心再逐级下发这样的情况
GM
2019-11-02 11:21:19 +08:00
如果是套路云,可以使用私有 zone 功能,把各个服务器内网地址和内网域名绑定,新增一台服务器只需添加一条记录即可,其他所有机器能自动解析,服务器内部无需修改任何配置,非常方便。
mrdemonson
2019-11-02 11:23:39 +08:00
ericgui
2019-11-02 12:18:57 +08:00
@GM 感谢。我研究一下。
herozzm
2019-11-02 12:30:01 +08:00
建议在路由器上直接增加 dns 将域名解析成内网 ip
AngryPanda
2019-11-02 12:55:07 +08:00
内网解析即可。绑定 hosts 太麻烦
villivateur
2019-11-02 13:03:05 +08:00
提醒一下,你的 hosts 文件写错了,不是写 URL,是写域名
CallMeReznov
2019-11-02 13:30:07 +08:00
内网同步交互可以单独起个网卡
当然了 也可以用 HOST 改,但怕是有别的坑,具体看你们实际业务需求了。
ysc3839
2019-11-02 13:57:40 +08:00
有内网 DNS 的话,可以考虑修改 DNS 服务所在服务器的 hosts。
ericgui
2019-11-03 00:24:46 +08:00
@ysc3839 感谢大佬。

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

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

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

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

© 2021 V2EX