V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Jiajin
V2EX  ›  问与答

我有一个域名,在互联网的 dns 上指向一个公网 IP,请问有什么简单的方法能让它在家指向局域网的某个 IP

  •  
  •   Jiajin · 2023-06-28 19:14:56 +08:00 · 1234 次点击
    这是一个创建于 517 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这样在家能直接享受局域网的网速,多好

    第 1 条附言  ·  2023-07-01 13:56:06 +08:00

    最终解决方案:

    1. 我先是尝试通过apple script定时检测网络是否是当前家里的Wi-Fi ssid,根据这个动态修改/etc/hosts该域名的解释。这样就能最简单实现标题里的问题了。
    2. 但是该场景不适合我,因为我的nas访问域名是群晖配置的反向代理,无论如何都会被指向同一个IP,除非访问的域名不一样,所以并不行。我后来是关闭群晖的反向代理,通过本机安装nginx,然后根据上面的逻辑,动态修改nginx配置文件。
    on run
    	repeat
    		delay 30 -- 延迟30秒
    		set ssidName to (do shell script "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | awk '/ SSID:/ {print substr($0, index($0, $2))}'")
    		if ssidName is equal to "YOUR_WIFI_SSID_NAME" then -- 如果命中家庭Wi-Fi
    			do shell script "/bin/bash -c 'sed -i -E \"s/IP_A/IP_B/g\" /opt/homebrew/etc/nginx/servers/YOUR_NGINX.conf'"
    			do shell script "/bin/bash -c '/opt/homebrew/opt/nginx/bin/nginx -s reload'"
    		end if
    		if ssidName is not equal to "YOUR_WIFI_SSID_NAME" then -- 没有命中家庭Wi-Fi
    			do shell script "/bin/bash -c 'sed -i -E \"s/IP_B/IP_A/g\" /opt/homebrew/etc/nginx/servers/YOUR_NGINX.conf'"
    			do shell script "/bin/bash -c '/opt/homebrew/opt/nginx/bin/nginx -s reload'"
    		end if
    	end repeat
    end run
    
    9 条回复    2023-07-03 17:06:24 +08:00
    ClarkAbe
        1
    ClarkAbe  
       2023-06-28 19:16:18 +08:00 via Android
    路由器或者在本机 HOSTS, 设备太多嫌麻烦可以起个 DNS 服务然后重写
    msg7086
        2
    msg7086  
       2023-06-28 19:25:26 +08:00
    路由器 DNS 服务做 override domain 或者 host 。
    wingerwwang
        3
    wingerwwang  
       2023-06-28 19:40:44 +08:00 via iPhone
    如果你的域名指向的就是你家网络的公网 IP ,那应该不用设置就能自动走内网吧?
    pcxys
        4
    pcxys  
       2023-06-28 19:52:18 +08:00
    你如果在家,想使用域名访问局域网主机的 IP ,你可以试试直接将解析地址设置成局域网的 IP 。
    但是这样外网就无法进行有效访问了,或着你修改你本机的 hosts 文件,也可以实现,域名解析的时候,还正常设置就行。
    第一行的方法,是我无意中试出来的,有效。
    第二行修改 hosts 是否可以达到效果,我不确定,因为有的浏览器自己有自己的解析服务,是不是会先使用本机的 hosts 我不确定。
    SenLief
        5
    SenLief  
       2023-06-28 19:56:37 +08:00
    自建 dns 服务器
    直接修改路由器的 hosts
    Jirajine
        6
    Jirajine  
       2023-06-28 20:05:20 +08:00
    知道 DNS 污染吧?你可以在自家局域网里做同样的事情。
    gdfsjunjun
        7
    gdfsjunjun  
       2023-06-28 20:43:47 +08:00
    小米路由可以直接修改 Hosts ,这样所有设备都自动生效
    Jiajin
        8
    Jiajin  
    OP
       2023-07-01 14:00:45 +08:00
    @pcxys
    @wingerwwang
    @msg7086
    @SenLief
    @gdfsjunjun 我的需求描述有误,应该是 nas 服务,在家里和在外面用同一个域名访问。
    pcxys
        9
    pcxys  
       2023-07-03 17:06:24 +08:00
    @Jiajin 那就给路由器或着局域网电脑设置一个 DNS 解析,然后外网解析就用 DDNS 解析到域名就行了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4359 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 04:07 · PVG 12:07 · LAX 20:07 · JFK 23:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.