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

请教 wg 回家遇到的问题

  •  
  •   EyebrowsWhite · 2023-11-21 09:20:48 +08:00 via iPhone · 2205 次点击
    这是一个创建于 374 天前的主题,其中的信息可能已经有所发展或是发生改变。
    先介绍一下网络的情况,本人家里有公网 IP ,路由器是 Mikrotik ,拨号的同时作为 wireguard 的一个 peer ,平时就在外边就用代理软件分个流然后可以无缝访问内网。家里内网还有一台 nuc ,装的 debian ,搭建了一些服务,Home Assistant 之类的。

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

    我怀疑是不是运营商阻断了呢?如果是的话这是怎么做到的?如果不是还有可能是什么原因呢
    第 1 条附言  ·  2023-11-21 21:19:59 +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

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

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

    第 2 条附言  ·  2023-11-21 22:08:12 +08:00
    又研究了一波,找到了根本原因,原来是因为 nuc 的网关设置有问题,因为要富强所以设置成了我的旁路由,这次搞清楚了,在 nuc 上直接加个静态路由不用伪装也可以了😄
    13 条回复    2023-11-21 21:20:17 +08:00
    maybeonly
        1
    maybeonly  
       2023-11-21 09:32:19 +08:00
    如果“其他设备都是通的”,盲猜一个 nuc 设置了“只允许局域网访问”,然后你的 wg 不在同一个局域网网段
    但是有一个问题,除了路由器和 nuc 以外的其他设备呢?如果其他设备也不通,那可能是路由设置错误,比如没有回程路由,和 wg 的 allowedip 没有添加内网网段之类的。
    如果仍然解决不了,抓包看看。
    wg 是加密的 vpn ,运营商做不到只阻断里边特定的连接。
    niukuo
        2
    niukuo  
       2023-11-21 09:43:42 +08:00 via iPhone
    盲猜 nuc 子网掩码设置有问题
    yukinomiu
        3
    yukinomiu  
       2023-11-21 09:57:29 +08:00
    wg 先回家, 然后通过其他机器作为跳板, 看看能不能连上这个 nuc; 再或者在 mikrotik 里 ping 下 nuc 的 IP, 看看能否通
    mcluyu
        4
    mcluyu  
       2023-11-21 10:00:44 +08:00
    NUC 时 win 系统吗? 检查下 NUC 的的网络设置是不是自动变为 公用网络 了防火墙变了局域网就访问不到了, 改为专用网络应该就可以了
    Senorsen
        5
    Senorsen  
       2023-11-21 10:01:59 +08:00
    对比一下 wg 网段和 nuc 的路由表
    hahasong
        6
    hahasong  
       2023-11-21 10:35:05 +08:00
    太麻烦了 不如 ss+分流规则
    EyebrowsWhite
        7
    EyebrowsWhite  
    OP
       2023-11-21 10:37:36 +08:00
    @maybeonly 上面还提到了一点,在昨天之前都是没问题的,而且我很多天没折腾那台 nuc 了,所以我感觉 nuc 应该设置没问题的

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

    @mcluyu 用的是 debian
    Senorsen
        9
    Senorsen  
       2023-11-21 10:45:09 +08:00
    另外没深度用过 RouterOS 不清楚能不能开 tcpdump ,可以在 wg interface 上抓包看看是哪一步开始出问题的(外网到 nuc 的包/nuc 回包等)
    EyebrowsWhite
        10
    EyebrowsWhite  
    OP
       2023-11-21 10:46:43 +08:00
    @Senorsen 我对 ROS 也用的不深,不过我查资料试试看,目前好像只有抓包才能搞明白怎么回事了
    ztelliot
        11
    ztelliot  
       2023-11-21 14:49:31 +08:00
    @EyebrowsWhite 可以用 /tool/sniffer 抓包
    surfwave
        12
    surfwave  
       2023-11-21 15:20:46 +08:00
    先 traceroute 看看哪里卡住了。建议看看主机的路由表,如果装了 docker ,docker 容器多了之后,某个容器自动生成的子网搞不好跟某台主机的 IP 会冲突。
    EyebrowsWhite
        13
    EyebrowsWhite  
    OP
       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`

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

    另外也附一张抓包的截图吧,虽然我啥都没看出来
    ![]( )
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3609 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:32 · PVG 18:32 · LAX 02:32 · JFK 05:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.