关于同内网下服务器域名的疑惑 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
wujieyuan
V2EX    程序员

关于同内网下服务器域名的疑惑

  •  
  •   wujieyuan 2020-07-20 15:11:59 +08:00 3671 次点击
    这是一个创建于 1910 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在腾讯云同一个局域网下, 一台服务器部署业务, 一台服务器部署数据库, 两台服务器都有外网 ip, 数据库外网 ip 使用域名解析, 我直接在业务服务器上 ping 数据库的域名,延迟很低, 说明直接通过内网访问的. 所以我有个疑问, 业务系统中是否可以直接使用域名连接数据库, 不必区分内网 /外网地址, 这样开发部署的时候都很省事. 但是我发工单问腾讯云的客服, 他们说用外网域名 /ip 就走的外网,不会走内网, 有点搞不懂了.

    27 条回复    2020-07-23 22:43:31 +08:00
    Oktfolio
        1
    Oktfolio  
       2020-07-20 15:20:20 +08:00
    我直接在业务服务器上 ping 数据库的域名,延迟很低, 说明直接通过内网访问的

    延迟低怎么就得出“直接通过内网访问的”这个结论的?
    sha4yu
        2
    sha4yu  
       2020-07-20 15:27:11 +08:00
    可以用 traceroute 或者 besttrace 确认下网络路由路径
    wangritian
        3
    wangritian  
       2020-07-20 15:27:14 +08:00
    外网域名解析到外网 ip,实际访问一定走外网
    你提到“这样开发部署的时候都很省事”,难道你开发线上用的都是这台数据库?
    wujieyuan
        4
    wujieyuan  
    OP
       2020-07-20 15:30:01 +08:00
    @Oktfolio 测试出来的啊, 其他不在同一局域网下的域名延迟 10ms+, 但是同内网下是 1ms 以内, 基本可以确定
    wujieyuan
        5
    wujieyuan  
    OP
       2020-07-20 15:30:40 +08:00
    @wangritian 个人项目, 为了省事和省钱, 就一台数据库
    wujieyuan
        6
    wujieyuan  
    OP
       2020-07-20 15:31:20 +08:00
    @sha4yu 好的,谢谢, 我测试看看
    opengps
        7
    opengps  
       2020-07-20 15:33:08 +08:00
    “ping 数据库的域名,延迟很低, 说明直接通过内网访问的”。这个结论真的不准,最起码你 ping 一个大包才多少有点说服力
    我可以给你举个实际测试过的例子,同为联通线路,我在一楼的独立联通入户网络,ping 三楼的独立联通入户网络。ping 结果为 6ms
    monsterxx03
        8
    monsterxx03  
       2020-07-20 15:35:35 +08:00
    你 dig 下那个域名,看解析出来的是内网 ip 还是外网 ip 不就知道了..哪有用 ping 来判断的
    wujieyuan
        9
    wujieyuan  
    OP
       2020-07-20 15:38:48 +08:00
    @opengps 这个不用杠了, ping 我敢肯定是走内网的, 因为我测试的机器都是腾讯云的, 根据经验 1ms 内绝对是走的内网, 但是我不确定数据库连接是不是走的内网
    aihimmel
        10
    aihimmel  
       2020-07-20 15:40:55 +08:00 via Android
    楼上都说了叫你 traceroute 一下
    CodeCodeStudy
        11
    CodeCodeStudy  
       2020-07-20 15:41:47 +08:00   1
    修改业务服务器的 /etc/hosts,把数据库服务器的域名指向其内网 IP
    wujieyuan
        12
    wujieyuan  
    OP
       2020-07-20 15:43:17 +08:00
    @CodeCodeStudy 厉害了, 这个确实是个非常好的办法
    Astralis
        13
    Astralis  
       2020-07-20 15:45:51 +08:00
    https://s1.ax1x.com/2020/07/20/UhIh4A.png
    https://s1.ax1x.com/2020/07/20/UhIWAH.png
    https://s1.ax1x.com/2020/07/20/UhIfNd.png
    刚用腾讯云试了一下 ping 内网 ip 和外网 ip 延迟是有点区别的,ping 外网 ip 走的也不是内网 ip
    byzf
        14
    byzf  
       2020-07-20 16:00:16 +08:00   1
    我记得 go 里有个库, 要加一个 /etc/nsswitch.conf 才会去用 hosts... 我曾经被恶心过一次.

    总之 ping 的, dig 的, 你所使用的网络库最后解析出来的 ip, 都可能是不一样的...

    一般都会把内网域名加到 hosts 的. 或者你内网自己弄个 dns. 否则内网的 https 的 api, 没法用 ip 地址请求.
    opengps
        15
    opengps  
       2020-07-20 16:23:53 +08:00   2
    @wujieyuan 既然我这算杠,那我就不评论了,楼层里有人告诉你判断内外网的方法了
    XiaoxiaoPu
        16
    XiaoxiaoPu  
       2020-07-20 16:42:50 +08:00   1
    @opengps 哈哈,心疼。

    访问外网 IP,至少要走到机房的外网超级核心的,只不过从外网超级核心直接又走回到内网超级核心了,网络包没有出机房,当然 ping 的延迟很低。但是毕竟走了外网超核,外网带宽、外网流量肯定要算的。
    yelocat
        17
    yelocat  
       2020-07-20 16:47:13 +08:00
    /etc/host 解决问题
    hulushangxian
        18
    hulushangxian  
       2020-07-20 18:33:24 +08:00
    @opengps 心痛
    goodryb
        19
    goodryb  
       2020-07-20 18:54:59 +08:00
    所以没人提醒一下楼主,为何数据库会暴露在外网呢

    一般原则
    1 、应用与数据库部署在同一台机器上,数据库应该监听 127.0.0.1
    2 、应用与数据库分开独立部署的,数据库应该监听内网地址
    wujieyuan
        20
    wujieyuan  
    OP
       2020-07-20 21:29:00 +08:00
    @goodryb 个人项目, 省钱方便为主
    goodryb
        21
    goodryb  
       2020-07-20 22:32:10 +08:00
    @wujieyuan #20 恩。

    不过建议数据库还是不要暴露在外网,如果不加防火墙规则或者白名单,爆破是早晚的事
    Tink
        22
    Tink  
    PRO
       2020-07-21 04:48:22 +08:00 via iPhone
    延迟很低就是走内网?
    xmr68yahoo
        23
    xmr68yahoo  
       2020-07-21 06:50:33 +08:00 via iPhone   1
    直接改 hosts
    你这个情况标准的 端口回流
    小于 1ms 不代表不计费
    locoz
        24
    locoz  
       2020-07-21 09:18:26 +08:00 via Android   1
    所以你是为了使用域名同时在外网和内网访问对应的服务?各类云应该都有提供内网 DNS 功能吧,直接用那个内网 DNS 设置个内网 IP,顶掉原先的外网 IP 就好了。设置完之后内网设备走内网,外网设备走外网,没有任何影响。
    如果没有提供这种功能的话,就 hosts 或者自己用 dnsmasq 搭一个都可以,看你需不需要考虑后续的扩展性。

    访问外网 IP 是一定走的外网的,延迟低只能说明人家机房做了回流,也就是封包走到外层交换机之后,交换机发现是个内网设备,就又给你送回来了。
    wujieyuan
        25
    wujieyuan  
    OP
       2020-07-21 10:22:41 +08:00
    @locoz 嗯, 用 hosts 可以完美解决我的需求
    z5864703
        26
    z5864703  
       2020-07-21 12:02:08 +08:00
    楼主没有基本网络知识,路由和交换机怕是都不知道干嘛用的,还理直气壮怼人,厉害了
    楼上很多都说出答案了,ping 只能代表网络链路延迟,和是否内外网以及数据包路径没半毛钱关系
    wakzz
        27
    wakzz  
       2020-07-23 22:43:31 +08:00
    楼主用一下 traceroute 命令,看一下请求域名的报文经过的路由就知道有没有走公网了。像阿里云下的主机域名,被其他阿里云主机请求时,实际上并没有走公网,报文仅在阿里云内部网络传输。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1189 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 17:18 PVG 01:18 LAX 10:18 JFK 13:18
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86