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

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

  •  
  •   Jiajin · 307 天前 · 995 次点击
    这是一个创建于 307 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言  ·  305 天前

    最终解决方案:

    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  
       307 天前 via Android
    路由器或者在本机 HOSTS, 设备太多嫌麻烦可以起个 DNS 服务然后重写
    msg7086
        2
    msg7086  
       307 天前
    路由器 DNS 服务做 override domain 或者 host 。
    wingerwwang
        3
    wingerwwang  
       307 天前 via iPhone
    如果你的域名指向的就是你家网络的公网 IP ,那应该不用设置就能自动走内网吧?
    pcxys
        4
    pcxys  
       307 天前
    你如果在家,想使用域名访问局域网主机的 IP ,你可以试试直接将解析地址设置成局域网的 IP 。
    但是这样外网就无法进行有效访问了,或着你修改你本机的 hosts 文件,也可以实现,域名解析的时候,还正常设置就行。
    第一行的方法,是我无意中试出来的,有效。
    第二行修改 hosts 是否可以达到效果,我不确定,因为有的浏览器自己有自己的解析服务,是不是会先使用本机的 hosts 我不确定。
    SenLief
        5
    SenLief  
       307 天前
    自建 dns 服务器
    直接修改路由器的 hosts
    Jirajine
        6
    Jirajine  
       307 天前
    知道 DNS 污染吧?你可以在自家局域网里做同样的事情。
    gdfsjunjun
        7
    gdfsjunjun  
       307 天前
    小米路由可以直接修改 Hosts ,这样所有设备都自动生效
    Jiajin
        8
    Jiajin  
    OP
       305 天前
    @pcxys
    @wingerwwang
    @msg7086
    @SenLief
    @gdfsjunjun 我的需求描述有误,应该是 nas 服务,在家里和在外面用同一个域名访问。
    pcxys
        9
    pcxys  
       302 天前
    @Jiajin 那就给路由器或着局域网电脑设置一个 DNS 解析,然后外网解析就用 DDNS 解析到域名就行了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2313 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:40 · PVG 16:40 · LAX 01:40 · JFK 04:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.