V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Buges  ›  全部回复第 25 页 / 共 90 页
回复总数  1787
1 ... 21  22  23  24  25  26  27  28  29  30 ... 90  
2022-05-17 16:51:23 +08:00
回复了 wenjie0032 创建的主题 程序员 撸了一个 Clash 的 GUI, 自带规则开箱即用
@ysc3839 这样的特例很少见,大部分用社区的白名单就都覆盖了,而且偶尔出错就错吧,流量大再加白。
软件实现用 coredns 写个插件还是挺方便的。
2022-05-17 16:29:51 +08:00
回复了 wenjie0032 创建的主题 程序员 撸了一个 Clash 的 GUI, 自带规则开箱即用
@ysc3839 这个方案还同时配合 china ip + geosite:cn 双白名单,凡是解析出 cn ip 的直连,凡是在 cn 域名列表的,直连解析。
既支持全球 CDN 又不支持 ecs 的网站不多吧,有少数的可以手动加白。
2022-05-17 14:02:13 +08:00
回复了 wenjie0032 创建的主题 程序员 撸了一个 Clash 的 GUI, 自带规则开箱即用
@AoEiuV020CN 国内直连的网站都请求国内 dns 服务器啊,没有任何访问境外网站的记录。上面看来绝对是妥妥的良民(当然仔细查肯定还是能发现使用代理)。
2022-05-17 14:00:38 +08:00
回复了 wenjie0032 创建的主题 程序员 撸了一个 Clash 的 GUI, 自带规则开箱即用
@ysc3839 你说的这种方案,用 ecs 可以近似达成。DNS A 设为 8888/9999 等支持 ecs 的 doh/dot 解析器,并指定 ecs 的 ip 为 china ip list 中随便选一个确保属于大陆 IP 的段。DNS B 设为 1111 的 doh/dot 解析器(没有 ecs )。DNS C 为普通国内 DNS 服务器。DNS A 和 B 都是全部走代理的,DNS C 直连。
解析一个域名走以下流程:
1. 并发向 DNS A 和 DNS B 发出解析请求。
2. 判断 DNS A 的返回结果是否为大陆 IP ,如果是忽视结果并向 DNS C 再次请求并将结果加入 ipset/nft set 中。如果不是则返回 DNS B 的结果。

这套方案有以下好处:
1. 所有非在大陆无 CDN 的域名全部通过境外 dot/doh 解析,防止暴露给任何大陆实体,甚至不会暴露给代理服务提供商(如果代理提供商没有进行 tls sniffing 或启用 ech 的话)。
2. 所有正常支持 esc 的大陆域名( dnspod 等)都可以智能直连。
3. DNS A 和 DNS B 并发请求,耗时接近。DNS C 直连速度很快,虽然请求三次但总体对网络响应时间影响较小。
2022-05-17 08:00:05 +08:00
回复了 qtoq126 创建的主题 程序员 这个异步操作应该怎么写?
@qtoq126 返回只是结束你这个请求的 handler 函数啊,主程序和后面的线程池都是一直在运行的。除非你是 php 那样用 cgi 一个请求起一个进程。
具体实现很直接啊,第一个接口请求后 Task.Run 把耗时计算 spawn 到后台(不要 await ),并生成一个 UUID ,把这个 UUID 作为 key 和上面返回的 Task 存到一个共享的 ConcurrentDictionary 里面,并把这个 UUID 作为额外的字段加到 json 里返回给前端。
第二个接口前端拿这个 UUID 作为参数请求,拿到后通过这个 UUID 取得上面存的 Task 并检查 Task.Status 是否已经完成,未完成就返回 pending ,完成就返回结果(和释放资源)。

前端请求先第一个接口拿到 json 和 UUID 先渲染,然后等待一段时间在用 UUID 请求第二个接口,如果为 pending 那就等待一段时间重试直到拿到结果。
2022-05-17 04:39:41 +08:00
回复了 lackar 创建的主题 程序员 独立开发者们,我可以帮你看看设计提提建议
楼主的网站应该是静态的,开启 HTTPS 最简单的方法用 caddy
下载 caddy https://caddyserver.com/download
然后在网站服务器上执行:
./caddy file-server --domain lackar.com --root <网站所在路径>
2022-05-17 01:10:43 +08:00
回复了 qtoq126 创建的主题 程序员 这个异步操作应该怎么写?
所有接口都应该不要阻塞,尽快返回。前端无论如何都不应做“耗时”的请求,即使在后台。
2022-05-17 01:08:48 +08:00
回复了 qtoq126 创建的主题 程序员 这个异步操作应该怎么写?
@qtoq126 那就 spawn 到后台执行的同时返回一个 task id ,前端等待一段时间再用这个 id 请求第二个接口结果,如果尚未完成返回 pending 让前端等待一段时间再次请求。注意第二个接口只返回状态和结果而不要调用执行。
不单单拆接口,所有的接口处理函数中都不要同步等待结果维持连接。你想想你等待的时候连接超时了、中断了,或者用户刷新了重新发送。
2022-05-16 22:54:18 +08:00
回复了 qtoq126 创建的主题 程序员 这个异步操作应该怎么写?
你的意思是接口返回的数据不需要等待计算完成,计算的结果不需要返回给前端?
那直接 spawn task 就好了。
2022-05-16 22:50:46 +08:00
回复了 bugprogrammer 创建的主题 宽带症候群 关于光猫桥接限速以及 dhcp 鉴权的请教
openwrt 的 dhcp 用的是 dnsmasq ,dnsmasq 支持的就都支持。
2022-05-16 22:47:58 +08:00
回复了 isSamle 创建的主题 程序员 万表归一靠谱吗?
你说的是 MongoDB 吗
2022-05-16 22:45:31 +08:00
回复了 willx12123 创建的主题 程序员 如何使用 Windows 愉快的编程?
@cmdOptionKana 这个项目只是 Windows 上踩坑的一种体现。你要说错也没什么错的,哪个程序不支持 Windows 或在 Windows 上有 bug 也不能怪 Windows 啊。
2022-05-16 22:20:32 +08:00
回复了 willx12123 创建的主题 程序员 如何使用 Windows 愉快的编程?
2022-05-16 21:43:59 +08:00
回复了 erquren 创建的主题 问与答 Powershell 和 cmd 有什么区别?
@Tumblr 舒服个毛,PowerShell 就是典型的步子迈的太大扯到蛋。看看 elvish/nushell 传统操作系统上的现代 shell 是什么样子的。PowerShell 这么一个 DotNetScript 除非运行在一个完全基于 dotnet 平台构建的操作系统才能名副其实叫 shell 。
2022-05-16 20:59:10 +08:00
回复了 IndexOutOfBounds 创建的主题 Linux 哪个 Linux 发行版的 终端 开箱即用
fish 开箱即用
2022-05-16 20:27:30 +08:00
回复了 amoy 创建的主题 问与答 除了 ssh 还有什么方式可以远程登录?
telnet 、rlogin 、web shell 、Powershell Remote
当然前提是有服务
2022-05-16 18:57:21 +08:00
回复了 ck65 创建的主题 问与答 有办法用 Go 输出与 C++ 的 reinterpret_cast<char*> 一致的结果吗?
你这样要求内存表示完全相同啊,不知道 go 能不能声明 repr(C)的结构体。最稳妥的方式还是序列化。
2022-05-16 18:36:33 +08:00
回复了 opentrade 创建的主题 程序员 Rust 桌面程序选 Flutter 还是 Tauri?
@opentrade @zengxs
tauri 就是封装了系统 webview 的 API ,在上面提供了一些工具链(构建、打包、自动更新等)和类 electron 方便开发的 js 调用系统原生功能的 API ,不用这些就和自己调用 webview 没啥区别。所谓不成熟也只是指这部分不成熟,webview 哪有不成熟之说,webview 最大的坑就是各平台版本和实现不统一导致的不一致性。然而 Web 早就是成熟广泛的标准了,只要把网站兼容性的标准向正常网页(适配各种浏览器)看齐,那就不用担心不一致性的问题。

反观 flutter 自己渲染,这其中坑才多着呢,冷门平台上输入法、光标、accessibility 和各种犄角旮旯的东西总有你想不到的地方。
2022-05-16 17:59:39 +08:00
回复了 opentrade 创建的主题 程序员 Rust 桌面程序选 Flutter 还是 Tauri?
你可以看上面发的那个 tauri 和 electron 功能对比,很多都是桌面集成特性,就是让你 js 端直接调用系统原生的功能,这些其实都是可以没必要的,前端只做 UI 就可以了,应用内需要什么平台原生的功能用 rust 自己封装出接口,实现上更简单,只是对 js 开发者来说可能没那么方便罢了。
1 ... 21  22  23  24  25  26  27  28  29  30 ... 90  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2832 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 44ms · UTC 14:27 · PVG 22:27 · LAX 07:27 · JFK 10:27
Developed with CodeLauncher
♥ Do have faith in what you're doing.