
嗯...在公司内网某个机子部署了个服务,现在在内网访问时通过 10.0.38.123 这样的地址访问,外网访问是跑了个 FRP 穿透服务,通过 abc.com:8088 这样访问的。
因为是给办公室几十个人用的,请问有办法让用户在内网访问时,也能输入域名走局域网流量么。 这样不用让用户区分好几个地址,内外网使用时速度也能更高效..
ps.我们公司上网是得手动设置 ip dns 这些。所以是不是我没法再自己再部署 DNS 了
1 alvin666 Jan 21, 2019 via Android |
2 29EtwXn6t5wgM3fD Jan 21, 2019 via iPhone 自建 dns 吧 转发 dns 解析到现在使用的 dns |
3 fetich Jan 21, 2019 NAT Loopback |
4 jiaxin1121 Jan 21, 2019 修改 host |
5 vyronlee Jan 21, 2019 via iPhone zerotier |
6 dengshuang Jan 21, 2019 via Android dns 欺骗 |
7 iriddle911 OP |
8 BOYPT Jan 21, 2019 域名指向个外网网页,载入时候 jQuery 尝试加载内网地址,超时就跳转你的业务外网地址,加载成功就跳转业务内网地址。 |
9 CallMeReznov Jan 21, 2019 内网机器全部 DNS 指向你的路由器 然后在路由器上写一条你自定义的 DNS 指向你的 IP 即可 |
10 iriddle911 OP @CallMeReznov 老哥 您是说自己做 DNS 设置么。我目前暂时没有权限动公司的 DNS 服务器.... |
11 chinvo Jan 21, 2019 via iPhone 公司内部部署 DNS 服务器,全公司机器统一设置内网 DNS (比如通过加域 |
12 iriddle911 OP @BOYPT 嗯嗯嗯 老哥您这也是个很好的解决办法了。不过我还有移动端.....移动端是填写服务地址进入 app 的,这样就不好搞了吧 |
13 CallMeReznov Jan 21, 2019 @iriddle911 #10 私架个 WIFI 然后在 WIFI 里的自定义 DNS 里添加一个记录指向你的 IP |
14 iriddle911 OP 再给大家说下 公司 DNS 我暂时没法动。网管也不给改....... |
15 iriddle911 OP @CallMeReznov emm 那台式机是不是就没办法了 |
16 shuang Jan 21, 2019 dns 动不了,那就搞个 http 代理吧,通过代理改映射。每个人在自己的终端上设置下代理 ip 及端口 |
17 35korea Jan 21, 2019 via Android 启动时。用户自己选,内网,还是外网 |
18 35korea Jan 21, 2019 via Android 有个 cdn 软件 fikker 解析时有个轮询功能,不知道能否利用 |
19 wweir Jan 21, 2019 via Android 出个损招,首页加串代码,尝试内网地址地址。 成功就来个 302,不成功就 pass。 缺点是域名始终没法统一 |
20 C2G Jan 21, 2019 via Android 手动设置 IP 和你手动设置 dns 有什么关系...找个路由器,搭建 dnsmasq,上层路由填你们公司原来那个,在 dnsmasq 里面设置 abc.com→内网地址,然后把电脑 dns 改成路由器 IP,这种方法即使你们公司只允许访问原有的 dns 也没有问题。 |
21 alvin666 Jan 21, 2019 via Android 楼上尝试的,timeout 至少要两三秒吧,或者自己手动 500ms 的 timeout ?那也难受 我建议就是反代服务器也开在 80,然后 dns 内网外网都设置上,浏览器会逐个尝试,选择能通的,亲测还挺快 |
22 aru Jan 21, 2019 web 服务器可以通过用户请求的 header 中的 X-Forwarded-For 和 X-Real-IP 来获取用户真实 IP。 如果你们公司的出口 IP 是固定地址,那么访问 abc.com:8088 直接跳转到内网访问地址即可( nginx 或应用中判断都行) |
23 Sylv Jan 21, 2019 via iPhone 可以通过内网路由配置 dnsmasq 实现: address=/abc.com/10.0.38.123 |
24 zwh2698 Jan 21, 2019 via Android 配置个路由简单方便 |
25 zwh2698 Jan 21, 2019 via Android 看错忽略上一条 |
26 wps353 Jan 21, 2019 内网路由器 DNS 劫持 |
27 zhouzm Jan 21, 2019 正好之前做过,说一下我的办法: 1. 公司 dns 服务器不让动,你可以在服务器上自己建一个,推荐 overture,用 docker 建的话很方便。hosts_sample 里直接加内网 ip 对外网域名就可以,上级 dns 服务器填公司 dns 服务器。办公室人员电脑 dns 设置为你建的服务器。 2. 在服务器上用 nginx 做反向代理,把 abc.com:8088 反代到 内网 ip:内网端口,另外配合三级域名,一个 8088 端口可以提供多个不同的服务。 这样就可以实现内外网都访问 abc.com:8088,外网走外网流量,内网走内网流量 |
28 oott123 Jan 21, 2019 via Android 有个比较离奇的办法:像 21 楼说的那样,你自己的域名内网、外网 ip 都解析(两条记录,同等优先级);同时在转发服务器上拦截来自内网 ip 的请求(防火墙,直接 drop 掉),这样也许好使… |
29 edsion996 Jan 21, 2019 做一个导航页挂在外网,然后一个外网入口、一个内网入口解决记好几个地址的困扰。 或者,公司的出口 IP 一般是固定的几个,在程序上判断,然后做个 301 跳转 |
30 iriddle911 OP |
31 dot2017 Jan 21, 2019 内网放个 2 级 dns 不就好了。。。简单的问题变复杂 |
32 aru Jan 21, 2019 |
33 mhycy Jan 21, 2019 FRP+Nginx 反代,域名解析到外网 IP 内网使用 ROS 之类的路由,劫持全网 DNS 请求,由 ROS 的 DNS 提供内网地址 |
34 defunct9 Jan 21, 2019 dnsmasq |
35 liuxyon Jan 21, 2019 我用 bgp,自己 ip 内部直连 |
36 hquu Jan 21, 2019 via iPhone 内网直接改 host 文件 或者改路由 iptables |
37 zhouyut001 Jan 21, 2019 内网 dnsmasq 指向内网 IP,外网直接访问 |
38 mingl0280 Jan 22, 2019 内网的 dns 服务器指向内网 ip 就行了,实在没有 dns 服务器访问权限的话改 hosts 也行,我用这个手段避免了批量部署下去的 Ubuntu 和 debian 的更新流量跑到外网去……内网上架了个 dns,架了个 apache2 的源服务器,更新直接请求内网服务器就行了。 |
39 hanbaobao2005 Jan 22, 2019 |
40 iriddle911 OP 结贴了~最终使用 nginx 根据访问 ip 分配不同 url 解决 谢谢各位的热心帮助~~~ |
41 haiyulee Apr 24, 2019 via Android 楼主,我也想做相同的操作,有几个问题不明白 不同的 url 具体是怎么写的? 服务器是只在内网环境有一台吧? 域名解析出来都是指向反代服务器吗? 还有很多具体的问题,能分享下 nginx 的配置文件吗? |
42 iriddle911 OP @haiyulee 1. 在 nginx 里配置,就是根据来源 ip 分配不同的域名,这个你搜索一下,网上挺多; 2. 这样操作需要有一台公网服务器,阿里云什么的; 3. 解析是这样,访问 www.abc.com ,此时解析至公网的反代服务器,然后这时由 nginx 判断,如果来源是内网,那么直接跳转内网地址,如果来源是非内网,那么就走跳转的服务。 |