请教 wg 回家遇到的问题

2023-11-21 09:20:48 +08:00
 EyebrowsWhite
先介绍一下网络的情况,本人家里有公网 IP ,路由器是 Mikrotik ,拨号的同时作为 wireguard 的一个 peer ,平时就在外边就用代理软件分个流然后可以无缝访问内网。家里内网还有一台 nuc ,装的 debian ,搭建了一些服务,Home Assistant 之类的。

现在遇到一个很奇葩的问题,在外边访问不通 nuc ,但其他的设备包括路由器管理页面等等都是通的,而且这是昨天晚上突然出现的,之前一直好好的,昨天尝试清空 iptables 规则、增加允许网段、更换 wg 端口,更换 nuc 的 ip 等等各种手段都没有见效,并且 nuc 看不到任何日志。

我怀疑是不是运营商阻断了呢?如果是的话这是怎么做到的?如果不是还有可能是什么原因呢
2195 次点击
所在节点    宽带症候群
13 条回复
maybeonly
2023-11-21 09:32:19 +08:00
如果“其他设备都是通的”,盲猜一个 nuc 设置了“只允许局域网访问”,然后你的 wg 不在同一个局域网网段
但是有一个问题,除了路由器和 nuc 以外的其他设备呢?如果其他设备也不通,那可能是路由设置错误,比如没有回程路由,和 wg 的 allowedip 没有添加内网网段之类的。
如果仍然解决不了,抓包看看。
wg 是加密的 vpn ,运营商做不到只阻断里边特定的连接。
niukuo
2023-11-21 09:43:42 +08:00
盲猜 nuc 子网掩码设置有问题
yukinomiu
2023-11-21 09:57:29 +08:00
wg 先回家, 然后通过其他机器作为跳板, 看看能不能连上这个 nuc; 再或者在 mikrotik 里 ping 下 nuc 的 IP, 看看能否通
mcluyu
2023-11-21 10:00:44 +08:00
NUC 时 win 系统吗? 检查下 NUC 的的网络设置是不是自动变为 公用网络 了防火墙变了局域网就访问不到了, 改为专用网络应该就可以了
Senorsen
2023-11-21 10:01:59 +08:00
对比一下 wg 网段和 nuc 的路由表
hahasong
2023-11-21 10:35:05 +08:00
太麻烦了 不如 ss+分流规则
EyebrowsWhite
2023-11-21 10:37:36 +08:00
@maybeonly 上面还提到了一点,在昨天之前都是没问题的,而且我很多天没折腾那台 nuc 了,所以我感觉 nuc 应该设置没问题的

@niukuo 子网掩码就是 255.255.255.0 ,wg 和内网都是,会有什么问题吗
EyebrowsWhite
2023-11-21 10:38:43 +08:00
@yukinomiu 用其他机器做跳板是可以的,路由器上 ping 也没有问题,nuc 本身没有挂掉

@mcluyu 用的是 debian
Senorsen
2023-11-21 10:45:09 +08:00
另外没深度用过 RouterOS 不清楚能不能开 tcpdump ,可以在 wg interface 上抓包看看是哪一步开始出问题的(外网到 nuc 的包/nuc 回包等)
EyebrowsWhite
2023-11-21 10:46:43 +08:00
@Senorsen 我对 ROS 也用的不深,不过我查资料试试看,目前好像只有抓包才能搞明白怎么回事了
ztelliot
2023-11-21 14:49:31 +08:00
@EyebrowsWhite 可以用 /tool/sniffer 抓包
surfwave
2023-11-21 15:20:46 +08:00
先 traceroute 看看哪里卡住了。建议看看主机的路由表,如果装了 docker ,docker 容器多了之后,某个容器自动生成的子网搞不好跟某台主机的 IP 会冲突。
EyebrowsWhite
2023-11-21 21:20:17 +08:00
更新一下进展,给后续有需要的人参考,目前问题算是解决了,只不过暂时不确定解决方案有没有什么风险。
解决方案是在 ROS 上增加一条 NAT 规则

`/ip firewall nat add chain=srcnat src-address=10.0.0.0/24 action=masquerade`

src-address 是 wg 的网段

在此之前我一直没有设置过这条规则,都用了一年多了,HA 的 nginx 日志显示的地址也一直是我的 wg 网段,然后今天发现在 wireguard 的设置教程里往往会设置

`PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE`

我感觉我之前一直是有问题的,运气好一直用着,正常就应该设置伪装的。

另外也附一张抓包的截图吧,虽然我啥都没看出来
![]( )

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

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

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

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

© 2021 V2EX