V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chunkingName
V2EX  ›  宽带症候群

openwrt 开启动态 IP 伪装后,所有外网 IP 全部被识别为网关 IP 怎么办

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

    我的网络图如下 pksCHte.png 将两个路由器串联后,为了使一级路由能访问二级路由,给一级路由加了一个静态路由,一级路由和二级路由都开启了动态 IP 伪装(不开启二级路由无法上网) 但是开启了动态伪装后,外部 IP 爆破攻击流量全部被识别为 192.168.123.1 ,导致我的 windows 远程和群晖登录封锁都被处罚,把 192.168.123.1 给封锁了。有什么办法能准确识别外部 IP ,不要封锁 192.168.123.1 么?

    21 条回复    2024-09-08 04:13:49 +08:00
    povsister
        1
    povsister  
       99 天前 via iPhone
    路走窄了,你这个要求最简单的方式是内网设备添加 123.1 的白名单

    而且你用 123.1 做拨号,所以 NAT 是必须的,然后你下挂路由又做一层 nat… 属于没救的那种,把二级路由拆了用交换机吧
    wuruxu
        2
    wuruxu  
       99 天前
    开启动态 IP ,为什么会有这样的需求
    chunkingName
        3
    chunkingName  
    OP
       98 天前
    @povsister 我现在就是添加了白名单,但是添加白名单后,一直有爆破攻击试图登录群晖 SSH 、和我的 windos 远程。虽然密码不是弱密码,但这样一直被爆破,会有什么问题吗?
    kaedeair
        4
    kaedeair  
       98 天前
    用 vpn 连回来就完事了
    povsister
        5
    povsister  
       98 天前
    @chunkingName
    你的需求本质是网段划分,结果你做成了两层 NAT ,还叠上 Port Forawrding 的 buff ,所以导致丢失了外部原始 IP 。

    弄清楚自己的需求,别去乱开一些自己不了解的东西。

    如果你非要保持两级 NAT ,那么确保你自己只开 IP masquerade ,同时停用 Port forwarding ,改用 DSTNAT
    zreyu
        6
    zreyu  
       98 天前 via Android
    有的楼层说到点子上了,但都没有解决实际问题。防火墙→nat 规则→自动重写源 ip
    chunkingName
        7
    chunkingName  
    OP
       97 天前
    @povsister 我的需求是 前后两个路由器 前面的路由器负责拨号和端口转发,后面的路由器负责代理。前面路由器的 wifi 给家里人用,后面的路由器我自己可以随便折腾不会影响前面的 wifi 。 我之所以开启动态 IP 伪装是因为群晖 docker 独立 IP 需要开启动态 IP 伪装才能端口转发到,增加静态路由是因为,默认情况下连接一级路由的设备(家里的电视要连接群晖的 jellyfin ),访问不到连接二级路由的设备( NAS ) 所以我折腾了半天折腾出现在的方案,导致了目前的问题.
    htfcuddles
        8
    htfcuddles  
       97 天前
    大哥,你是双重 NAT ,组网大忌。要么路由 2 开 AP 模式二层转发,要么路由 12 都加静态路由三层转发。Masquerading 千万别开。
    chunkingName
        9
    chunkingName  
    OP
       97 天前
    @htfcuddles 组网大忌是指会造成什么严重后果吗
    chunkingName
        10
    chunkingName  
    OP
       97 天前
    @zreyu 好奇怪,按照你的设置了后,之前群晖每几分钟就有日志显示有人尝试用 root 用户登录,开了之后没有了。但也没有提示有别的 IP 爆破攻击。
    htfcuddles
        11
    htfcuddles  
       97 天前
    @chunkingName #9 1. P2P 开洞失效,影响包括不限于 BT 、游戏等 2. 你遇到的端口转发问题 3. 引入额外延迟 https://kb.netgear.com/30186/What-is-double-NAT-and-why-is-it-bad
    htfcuddles
        12
    htfcuddles  
       97 天前
    @chunkingName #7 路由表能解决的问题非要折腾 NAT ,你看企业内网那么多网段,有哪家会用 NAT 的么。。
    chunkingName
        13
    chunkingName  
    OP
       97 天前
    @htfcuddles 哈哈哈谢谢解答 我对网络不太会,搜出来的教程东拼西凑呈现在这样了,确实一堆问题。
    zreyu
        14
    zreyu  
       97 天前
    @chunkingName 看你的网络结构结合其他网友的建议,2 级路由为什么不和主路由在 1 个网段
    这个不难设置
    chunkingName
        15
    chunkingName  
    OP
       96 天前
    @zreyu 可以在一个网段么 我就想在一个网段的 一个网段的话,还能同时开启 wifi 么,怎么设置
    chunkingName
        16
    chunkingName  
    OP
       96 天前
    @zreyu 我是希望第一个路由器负责拨号,动态 DDNS ,端口转发,第二个路由器开代理。这样家人可以用第一个路由器的 wifi ,不会受第二个路由器影响,第二个路由器连接 NAS 和电脑,开启具有代理的 wifi (给电视用)
    htfcuddles
        17
    htfcuddles  
       95 天前
    @chunkingName #16 路由 2 折腾科学上网的话两个方案:a )一个网段,路由 1 开 DHCP ,不翻设备设 DHCP ,翻的设备手动网关指向路由 2 ,或者干脆直接在 DHCP 服务里按 MAC 设置。这个方案的去程回程路由不一样,可能引起奇怪的问题,包括路由重定向,需要对抓包分析内核调参等比较熟 b)两个网段,路由 1 和 2 分别添加静态路由,路由 1 开 DNAT 到需要公网访问设备。这个方案问题最少,但是由于广播域不同投屏等功能会受限,需要的话要折腾转发方案。
    zreyu
        18
    zreyu  
       94 天前
    @chunkingName 旁网关呀,很简单,你的需求和我一样的。硬路由拨号,旁路由其他功能,硬路由 DHCP ,自定义网关 IP 是旁路由,旁路由和硬路由一个网段,硬 168.1 ;旁 168.2 ,网上搜
    zreyu
        19
    zreyu  
       94 天前
    旁网关关闭 DHCP ,并设置 DHCP 通告,3 ,168.1 ,告诉局域网设备,如果我挂了,就 168.1 顶上,
    MiKing233
        20
    MiKing233  
       24 天前
    我跟你一樣, 剛折騰完解決這個問題, 遇到的問題就是 IP 動態僞裝要勾選, 不勾選網路就不通(當然因爲 NAT 問題), 不過勾選之後經過轉發外網訪問的 IP 地址就變成了 OpenWrt 自身, 看不到真實地址, 解決方案如下:

    版本 OpenWrt 18.06-k5.4 AArch64 5.4.203

    在"防火墙 - 区域设置"中, 確保 lan:lan:以太网适配器: "eth1" ⇒ vpn wan 中的"IP 动态伪装"勾選
    在"防火墙 - 自定义规则"中, 添加以下 iptables 規則:
    iptables -t nat -A POSTROUTING -o br-lan -j MASQUERADE ! -i 10.128.0.0/16
    iptables -t nat -A POSTROUTING -s 10.128.0.0/16 -o eth1 -j MASQUERADE
    iptables -t nat -A POSTROUTING -d 10.128.0.0/16 -o br-lan -j ACCEPT

    其中網段根據你的網路環境修改, 第二條中的 eth1 也根據實際情況修改

    在這種 OP 只有一個 LAN 連接上級 Gateway 作爲旁路 Gateway 存在的情況下, 關鍵問題在於 NAT 處理哪一段的數據, 如果是處理整個 br-lan 中的數據包, 那麽端口轉發后到達目標設備的 IP 地址必然會變成 OP 自己, 在這三條規則中, 第一條折騰過的肯定不陌生, 重要是下面兩條, 首先是對整個 eth1 出去的數據包進行 NAT 處理, 但要再加上一條通過接口 br-lan 時跳過 NAT 處理, 這樣就可以讓端口轉發后到達目標設備的 IP 地址為外部源地址, 但又不影響其他需要正常被 NAT 的數據, 從而完美解決這個問題, 看了一圈似乎都沒有對這方面的回答, 希望能幫到各位
    MiKing233
        21
    MiKing233  
       24 天前
    補充一點, 如果這臺 OP 旁路由運行著某些代理服務例如 passwall, 并且勾選了本机代理, 那麽上面的規則會使得 OP 本機代理失效, 需要補充一條規則排除掉這臺機器自身

    iptables -t nat -A POSTROUTING -o br-lan -j MASQUERADE ! -i 10.128.0.0/16
    iptables -t nat -A POSTROUTING -s 10.128.0.0/16 -o eth1 -j MASQUERADE
    iptables -t nat -A POSTROUTING -d 10.128.0.0/16 -o br-lan -j ACCEPT
    iptables -t nat -A POSTROUTING -s 10.128.20.2 -j ACCEPT

    其中 10.128.20.2 為 OpenWrt 旁路由, 根據自身情況修改
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   759 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:47 · PVG 05:47 · LAX 14:47 · JFK 17:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.