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

179 天前
 chunkingName

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

2520 次点击
所在节点    宽带症候群
21 条回复
povsister
179 天前
路走窄了,你这个要求最简单的方式是内网设备添加 123.1 的白名单

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

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

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1052161

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX