家里有公网 ip ,目前路由器映射了一个端口给内网的一台服务器 A 上的 shadowsocks 入站(sing-box, 看文档是默认支持 udp 的),在家外面的终端(比如手机 B 用移动流量,使用 surge 代理回家), 通过公网访问局域网的地址192.168.10.0/24都使用 direct 作为出站。一直这样访问家里的各项服务没发现什么问题。

最近开了另一台服务器 C ,windows 系统,部署了 sunshine (开启了 upnp),在局域网内使用 moonlight 连接 B 的桌面环境没什么问题。但是当我在外网访问时,虽然能发现/唤醒设备桌面,rtsp 握手也成功了,但是会在后面提示

"control stream establishment failed with error 35, check your firewall and port forwarding rules for ports(s): UDP47999 )的错误。

我之后尝试使用 tailscale 内网穿透,是能正常远程桌面。但我比较想弄清楚之前的方式是哪里出了问题,处于好奇。

(也尝试专门专门在路由做了 47999 端口的 udp 转发到 C ,但是没有什么效果)

有没有哪位老哥能看出来可能哪里出了问题?或者怎么排查这个问题呢?

(如果老哥帮忙解决了,可以送个 FOLLOW 邀请码,一杯咖啡奶茶什么的聊表心意 m(_ _)m 。


附录:

家里的代理服务端 singbox 的入站配置(根据官网文档,应该是默认启用 udp 支持的,虽然我不知道怎么验证)

{
	"inbounds":[
    {
      "type": "shadowsocks",
      "tag": "ss-in",
      "method": "aes-128-gcm",
      "password": "xxxx",
      "listen": "0.0.0.0",
      "listen_port": 12345,
      "multiplex": {}
    },
    ]
    ...
    "route": {
    	"rules": [
            {
        	 "ip_cidr": [
          		"192.168.10.0/24"
        	 ],
        	"outbound": "direct"
      		},
        ]
     }

回家的代理客户端( surge)

[Proxy]
GoHomeByA  = ss, ss.example.com,  12345, encrypt-method=aes-128-gcm, password=xxxx, udp-relay=true

[Rule]
IP-CIDR,192.168.10.1/24, GoHomeByA
举报· 12 次点击
登录 注册 站外分享
快来抢沙发
0 条回复  
返回顶部