tyhunter
V2EX  ›  问与答

Openwrt 有办法将域名劫持到内网 IP:端口吗

  •  
  •   tyhunter · Nov 2, 2019 · 13716 views
    This topic created in 2560 days ago, the information mentioned may be changed or developed.
    在内网用 PVE 部署了一台黑裙,IP 地址是 192.168.1.12:5000,同时在 openwrt 上配置了 frp,域名为:dsm.xxxx.com ( nginx 反代二级域名到 5000 端口),现在想在家时访问 dsm.xxxx.com 自动跳转到 192.168.1.12:5000 避免 frp 还要消耗一波流量,但是搜了下好像只能用 hosts 的方法劫持域名到 IP,没法劫持域名到 IP:端口的形式,请教下大佬,该怎么操作
    15 replies  •  2022-12-25 23:09:22 +08:00
    IsA26hN4DcQDS7Z9
    IsA26hN4DcQDS7Z9
    Nov 2, 2019
    1
    ddns+端口转发
    natsji
    natsji
    Nov 2, 2019 via Android
    2
    用 dns
    Chauncey09
    Chauncey09
    Nov 2, 2019 via Android
    3
    我在家都是直接用内网地址访问的。。
    mt7620
    mt7620
    Nov 2, 2019
    4
    dsm.xxxx.com 域名指定到路由器 ip,然后路由器上做个端口转发 80 -> 192.168.1.12:5000。
    tyhunter
    tyhunter
    OP
    Nov 2, 2019
    5
    @Raynard 没有公网 IP...只能用 frp 了
    @Chauncey09 我还要兼顾外网访问,相当于要收藏两个地址
    @mt7620 感谢,我先去试试这个思路
    ochatokori
    ochatokori
    Nov 2, 2019 via Android
    6
    dsm.xxxx.com 解析到 192.168.1.12
    用 nginx 做反代(80 反到 500 )就行了啊
    ysc3839
    ysc3839
    Nov 2, 2019 via Android❤️1
    7
    劫持到 192.168.255.233 这种一般不会用到的网段,再到防火墙设置里加个端口转发的规则。
    tyhunter
    tyhunter
    OP
    Nov 3, 2019
    8
    @ysc3839 请教下大佬,如何才能用 iptables 做端口转发?
    我现在内网还在群晖上跑了个 emby,端口是 8096,已经在 openwrt 的 hosts 里将 emby.xxxx.com 劫持到 192.168.1.222
    我用下面的自定义防火强规则,但是貌似没起作用
    iptables -t nat -A PREROUTING -d 192.168.1.222 -p tcp -m tcp--dport 80 -j DNAT --to-destination 192.168.1.12:8096
    iptables -t nat -A POSTROUTING -d 192.168.1.12 -p tcp -m tcp--dport 8096 -j SNAT --to-source 192.168.1.222
    ysc3839
    ysc3839
    Nov 3, 2019
    9
    @tyhunter 不能用同一网段的,这样的话会走以太网协议直接发到目标设备。
    另外建议使用 OpenWrt 自带的防火墙设置端口转发。
    luci 里面这样设置:

    ysc3839
    ysc3839
    Nov 3, 2019
    10
    另外,最好能在目标设备上配置,因为少了一层转发。如果是不同的 HTTP 服务需要使用相同端口 (80, 443),也可以使用 nginx。
    tyhunter
    tyhunter
    OP
    Nov 3, 2019
    11
    @ysc3839 我在折腾下,谢谢大佬解答
    Osk
    Osk
    Nov 3, 2019
    12
    我觉得可以这样:

    openwrt 上 dnsmasq 内网劫持 dsm.xxx.com dns 到内网另一个 ip 上。
    然后该内网服务器上 nginx/light httpd 什么的 80 端口的做个静态页面。
    页面中通过 js 判断 window.location.host 的域名,如果是 dsm.xxx.com ,js 就来个跳转。

    相当于该页面帮你完成跳转。。。
    MonoLogueChi
    MonoLogueChi
    Nov 3, 2019 via Android
    13
    openwrt 里面应该可以自己设定 DNS,我用的 koolshare 编译的固件,有 DHCP/DNS 设定,可以自己定义 hosts。至于端口转发,在防火墙选项里可以设置。

    其实没必要做端口转发的在群晖里面搞个 Nginx 反向代理也是可以的
    duoguo
    duoguo
    Nov 3, 2019
    14
    dnsmasq 将域名指向 ip。
    群晖如果你没开启网站和相册这类的应用的话,访问 IP:80 端口自动跳到 ip:5000 端口。至少我的黑群晖是这样
    如果 80 端口备用了,自己做个跳转就好了
    feimeizhan
    feimeizhan
    Dec 25, 2022
    15
    請問你最後是使用了什麼的方式呢?能分享一下嗎?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2589 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 00:28 · PVG 08:28 · LAX 16:28 · JFK 19:28
    ♥ Do have faith in what you're doing.