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