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

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

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

    我的网络图如下 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  
       75 天前 via iPhone
    路走窄了,你这个要求最简单的方式是内网设备添加 123.1 的白名单

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

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

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