netchx / netch

A simple proxy client
GNU General Public License v3.0
16.29k stars 2.7k forks source link

Socks5下UDP不能使用 #813

Closed fengwusheng closed 2 years ago

fengwusheng commented 2 years ago

错误描述

直接指定Socks5服务器,且服务器支持 UDP 转发,使用 [3] Bypass LAN 模式,启动后,一直显示 NAT: 正在测试 NAT 类型,NATTypeTester 测试为 UdpBlocked。同样的Socks5服务器在 SSTAP 下 NATTypeTester 测试为 Symmetric。

复现步骤

使用 1.9.5 版本,指定支持UDP转发的 Socks5 服务器,选择 [3] Bypass LAN 模式,启动

日志

[2022-03-27 21:12:46][Information] Netch Version: NetchX/Netch@1.9.5 [2022-03-27 21:12:46][Information] OS: Microsoft Windows NT 10.0.19043.0 [2022-03-27 21:12:48][Information] Github latest release: 1.9.2 [2022-03-27 21:12:48][Information] Already the latest version [2022-03-27 21:12:48][Information] SHA256: 1dfe88318e200facfe9b20177ff966465b4c2ddc121e354666f17cba5a71560a [2022-03-27 21:12:48][Information] System Language: zh-CN [2022-03-27 21:12:48][Debug] Running Processes: C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe C:\Program Files (x86)\Microsoft\EdgeUpdate\MicrosoftEdgeUpdate.exe C:\Program Files\AMD\CNext\CNext\amdow.exe C:\Program Files\AMD\CNext\CNext\AMDRSServ.exe C:\Program Files\AMD\CNext\CNext\AMDRSSrcExt.exe C:\Program Files\AMD\CNext\CNext\cncmd.exe C:\Program Files\AMD\CNext\CNext\Radeonsoftware.exe D:\Programs\Netch195\Netch.exe [2022-03-27 21:12:49][Debug] Third-party Drivers: AMD Crash Defender Driver [AMD Crash Defender Driver](Copyright (C) 2021 Advanced Micro Devices, Inc.) C:\Windows\system32\drivers\amdfendr.sys AMD Crash Defender Manager Driver [AMD Crash Defender Manager Driver](Copyright (C) 2021 Advanced Micro Devices, Inc.) C:\Windows\system32\drivers\amdfendrmgr.sys AMD PCI Root Bus Lower Filter [AMD PCI Root Bus Lower Filter](Copyright (C) 2011 Advanced Micro Devices, Inc.) C:\Windows\system32\drivers\amdkmpfd.sys AMDSAFD [AMDSAFD](© Advanced Micro Devices. All rights reserved.) C:\Windows\system32\DriverStore\FileRepository\amdsafd.inf_amd64_8e2568524f674315\amdsafd.sys amdwddmg [amdwddmg](Copyright (C) 1998-2012 Advanced Micro Devices, Inc.) C:\Windows\system32\DriverStore\FileRepository\u0368925.inf_amd64_05ef22929fd9ebfc\B368707\amdkmdag.sys AMD Link Controller Emulation [AMD Link Controller Emulation](Copyright (C) 2020 Advanced Micro Devices, Inc.) C:\Windows\system32\drivers\amdxe.sys AMD Function Driver for HD Audio Service [AMD Function Driver for HD Audio Service](© Advanced Micro Devices. All rights reserved.) C:\Windows\system32\drivers\AtihdWT6.sys CimFS [CimFS]() C:\Windows\system32\drivers\CimFS.sys netfilter2 [netfilter2](Copyright © NetFilterSDK.com) C:\Windows\system32\drivers\netfilter2.sys Steam Streaming Microphone [Steam Streaming Microphone]() C:\Windows\system32\drivers\SteamStreamingMicrophone.sys Steam Streaming Speakers [Steam Streaming Speakers]() C:\Windows\system32\drivers\SteamStreamingSpeakers.sys [2022-03-27 21:14:17][Information] Start MainController: Socks5 [2]Bypass LAN [2022-03-27 21:14:17][Information] Built-in wintun.dll Hash: 8a0581991caf829cd92b27aabcb2bab618cc8fbc887d8f86a533c95d2e3f17d4 [2022-03-27 21:14:17][Information] Installed wintun.dll Hash: 8a0581991caf829cd92b27aabcb2bab618cc8fbc887d8f86a533c95d2e3f17d4 [2022-03-27 21:14:25][Information] Net traffic processes: (1236)Netch

操作环境

Win10_x64
Netch_1.9.5

额外信息

No response

fengwusheng commented 2 years ago

netch 原来可以上传图片,上面就是问题的截图。

网络环境 公网 v 192.168.199.1=路由一 v 192.168.199.?=路由二 192.168.2.1 v 192.168.199.211=Socks5Server 支持 UDP 转发 192.168.2.?=Netch_v1.9.5

运行环境,Netch和Socks5不在同一局域网,即使把Netch网上提一层到 192.168.199.x 下现象还是一样的,一直 正在测试 NAT 类型 以及 UdpBlocked。

fengwusheng commented 2 years ago

再补充说明,同样的网络环境,不是用这个Socks5而用VLESS服务器就可以得到 PortRestrictedCone

fengwusheng commented 2 years ago

已经修复,注释下面的行即可,可参考: MainController.cs //if (Server is Socks5Server socks5 && (!socks5.Auth() || ModeFeatures.HasFlag(ModeFeature.SupportSocks5Auth))) //{ // Socks5Server = socks5; //} //else Socks5Controller.cs //var server = (Socks5Server)s; //if (!server.Auth()) // throw new ArgumentException();

bleach1520 commented 2 years ago

已经修复,注释下面的行即可,可参考: MainController.cs //if (Server is Socks5Server socks5 && (!socks5.Auth() || ModeFeatures.HasFlag(ModeFeature.SupportSocks5Auth))) //{ // Socks5Server = socks5; //} //else Socks5Controller.cs //var server = (Socks5Server)s; //if (!server.Auth()) // throw new ArgumentException();

弱弱问一句..修改好了要怎么打包

ayanamist commented 8 months ago

不用尝试自己编译了,上面注释掉的代码,实际就是强制启用了netch自带的一个本地socks5代理(v2ray提供),根因还是netch只能支持本地的socks5,在这里的issue里能搜到很多反馈。

所以不想折腾的,两个办法:

  1. 自己在本地启动个v2ray把outbound指到你需要的socks5,然后netch配到这个本地的v2ray上,效果是一样的。
  2. 如果要用的socks server在控制范围内,那就给配个用户名密码,netch在看到有用户名密码,也会启动这个本地的v2ray,上面注释掉的代码其实也就是判断这个。 貌似没用
MCsonger commented 8 months ago

请问 您制作好的包能分享一份吗 我们这边不太会用vs 编译老是出问题