通过WebSocket隧道,尝试将ASP.NET网站空间当作VPS来使用

作者:V君 发布于:2021-1-17 11:50 Sunday 分类:折腾手记

先上 PoC源代码 再开始扯,这次不是着重解决某个问题,而是尝试确定某种可能性。

以前使用过 C9.io 提供的免费在线开发环境来搞各种事情,包括正常上网,无非是利用 Web Sockets 建立隧道,然后配合客户端连接到在上面运行各种应用程序。
现在C9已经被收购且停止免费了,那就公开来说吧w

这次也不例外,只不过花了点钱搞了个支持 ASP.NET 4.5+ 的网站空间,然后在上面搞类似的事情。

基础设施 -- WebSocket 转 TCP 模块

首先要使用 WebSocket 来建立一条隧道,要求网站空间支持且启用 WebSocket,不然没法整。这里有个未经优化,但还能凑合着用的例子,只要挂在 HttpModule 中 HttpApplication 的 PostMapRequestHandler 事件,填好参数就能吃。

折腾1 -- SSH 终端

略去寻找绿色 SSH 服务端的辛酸过程,时间直接转到发现 FxSsh 这个纯托管实现的服务端。这里要分成两个部分来扯,分别是使用基于 ConPTY 的 MiniTerm 和兼容低版本 Windows 的简单兼容实现。由于 FxSsh 主要实现的是 SSH 协议通道,服务端的终端并没有适配,尽管源代码中带了个名为 MiniTerm 的 DEMO 来适配到较新系统的 ConPTY。

第一部分:基于 MiniTerm 的实现。原版的 MiniTerm 虽然导入了 ResizePseudoConsole 这个 API 但并没有使用。而且由于 NuGet 上的 FxSsh 不是最新版,没有窗口大小变更事件的支持。 因此我把他们全都拷贝到自己的项目中并注明来源了。在此之上再加以修改 MiniTerm 使窗口大小变更事件适配到 MiniTerm 的实现。目前并没有发现太多问题。有点小遗憾的是 MiniTerm 使用的 ConPTY 功能是 Windows 10 近些年的更新才引入的,因此许多网站空间的系统都不支持,会报「在 kernel32 中找不到 CreatePseudoConsole 入口」的错误,因此我准备了另一个方案,见接下来的第二部分。

第二部分:另行实现一个兼容低版本 Windows 的控制台进程适配。在项目中起名为 EasyTerminal。起初简单将控制台进程的标准输入输出还有错误输出重定向到 SSH 通道,然鹅,回车键不起作用,而且不回显。将回车键拦截下来,改成 StandardInput.WriteLine 调用,总算是能满足最基本的需求。尽管还是没有实时回显,得按下回车键之后才显示出来,功能按键和窗口大小什么的更无从说起。目前仍在使用零碎的时间持续摸索(咕XD)…

折腾2 -- 正常上网 将网站空间当作 V2 服务端使用

编译部署这个项目,然后将 V2 的两个 exe 和配置文件丢进 App_Data 目录,然后使用 WS 隧道连接到监听的 URL,最后在 V2 客户端指向 WS 隧道客户端,这时候就能吃了。分配了较大的缓冲区大小,这应该能有效减少损耗,如果网速慢,你需要测一下空间到你的网速。

不水。

标签: 软件开发 个人服务器 C# HTTP Web技术 传输协议 Windows .NET IIS WebSocket

评论(0) 引用(0) 浏览(401)

【弃疗】2.5G双口PCI-E独立网卡导致断电?

作者:V君 发布于:2020-11-21 21:26 Saturday 分类:折腾手记

TL;DR
品牌:GRIS
型号:PCI-E RTL8125 双口
症状:导致电脑断电,如同长按主机电源按钮
规律:双口同时为2.5G时,1到5秒内断电
使用情况:单2.5G速率使用两个多月,双2.5G速率使用不到一个月
缓解方法:在网卡高级设置中暂时将其中一个口的速率设置到1Gbps

听我扯扯:

自从上一篇文章以来,其实这张双口网卡还没有以双口都的2.5G速率运行太久,要么第二台无盘机不开,要么只连接了千兆的机器。

最近凑了一台主板集成了2.5G的机器,就把他接到双口网卡上了。之后不久这台机开始出现无规律的断电现象,起初频度较低,猜可能是供电不稳定。直到今天出现可重现的开机后断电的现象,那就不得不想办法了。

这台主机里面挂着不少东西,起初以为是电源老化,就换了个相同型号的电源,然而症状依旧。经过不断排查,终于将范围缩小到这张网卡上。 把这张网卡插到另一台机器也能复现相同的症状。

已经联系卖家,但现在是周末,得等到星期一才能获得技术支持。看他们怎么处理吧。

换了个一摸一样的也能重现同样故障,不知道是这型号有毛病还是兼容问题了,全都退掉了!

标签: 硬件故障

评论(0) 引用(0) 浏览(649)

做了个节奏光剑实时状态挂件

作者:V君 发布于:2020-10-28 22:38 Wednesday 分类:折腾手记

点击查看原图

TL;DR [ 源代码 ] [ 本体 ]


效果:在游戏画面前叠加一层,用于显示分数、歌曲、性能信息和图表
安装:使用 ModAssistant 安装 HTTPStatus 和 YUR 后将 dll 丢进 Plugins 目录然后运行exe
  若找插件管理器找不到 YUR,去官方 discord 找
  HTTPStatus 插件可以去 GitHub 找 release 若是没有 release 就自己编译吧!
配置:无需任何配置
扯扯:

看到一些视频有些叠加在前面的挂件,后来了解到原来是通过HTTP方式向外部提供来实现的。现有的实现大部分都是基于网页,然后用OBS之类的录屏软件做叠加处理。

我一直用 GeFore Experience 来录屏,懒得改用 OBS。那就自己撸一个吧,反正半透明的窗体也不难搞,于是这玩意儿就出来了。早期只有 HTTPStatus 的数据,后来想到可以把 YUR 的心率和燃烧率整合进来,又做了个插件去读YUR的数据(插件的插件……)。再后来,想知道为啥帧数很低,就把 OpenHardwareMonitor 集成进来读取 CPU 和 GPU 负载了(发现是 CPU 拖了后腿…),它自带有 sys 文件会释放到 exe 旁边,如果杀毒软件拦截,你就要做出选择是相信 OpenHardwareMonitor 还是相信你的杀毒软件了,我不背锅。

最后就是解释为啥这么迟才发表文章了。还不是因为游戏更新,而且YUR插件也没出来,就一直拖着一直到昨天去 YUR 的 discord 问了才知道,原来插件已经出来,但是还没有通过 BeatMods 的审核…(我想说我做的音量插件也一直处于 Pending 状态,别人家晚来的插件都通过了。。

标签: 软件开发 插件 C# Winform Unity VR游戏

评论(0) 引用(0) 浏览(794)

做了个节奏光剑SFX音量调整插件

作者:V君 发布于:2020-10-23 13:21 Friday 分类:折腾手记

TL;DR [ 源代码 ]


效果:将击中方块和 Miss 的效果音调整至最大
安装:将 dll 丢进 Plugins 目录
配置:无需任何配置
扯扯:

原味的游戏效果音太小了,打起来没感觉,尽管 Auros 桑的 Enhancements 插件有调整各种音量的功能,但好像又还没为游戏更新做好准备,那我就先自己撸个写死的吧。

标签: 软件开发 插件 C# VR游戏

评论(0) 引用(0) 浏览(808)

【成功】记一次Windows10无盘网卡PNP(仅限相同主板)

作者:V君 发布于:2020-9-10 22:54 Thursday 分类:折腾手记

TL;DR:Win 10 的无盘网卡 PNP 只需要装好驱动,确保网络连接中有以太网适配器就搞定。
不想听我扯的可以出去了(一脸元首x

那么就开始扯吧!

事情要从我发现了 2.5Gbps 这种有线网卡售价已经降到 100 块钱以下开始说起,我当时就一下子买了三张,奈何大于千兆的交换机都很贵,那就来个双口的搞桥接,把 2.5Gbps 的局域网中继下去。顺带一提,这双口网卡是用在有盘机器的,无盘启动的网卡不能搭网桥,要么无法启动,要么网桥不工作,至少目前我还没有办法搞定

东西到手之后当然就是先插到主机里,然后和预期的一样无盘启动不了,蓝屏了。将网线插回主板集成的千兆网卡,这当然能启动,关键是怎样把驱动打上,然后还要在 iSCSI 启动过程匹配上。

进入系统之后用包装里带的光碟安装驱动,还算顺利,设备管理器认出了,网络连接里面也有以太网适配器了,但适配器属性高级选项里面没有巨型帧之类的东西,不把巨型帧调整到9K的话,iSCSI 很难把局域网带宽用满。尝试手动打驱动又提示目录损坏无法读取,又是跑 chkdsk 又是跑 sfc 的,都没检测出问题。不管它,关机,把网线插到新网卡,开机。这时候的我认为大概还是会启动不了,凭经验,XP 和 Win7 的无盘 PNP,不知道麻烦到哪里去,打驱动还得换着姿势去打。谁知道 Win10 它居然自己匹配好网卡驱动,进入系统了!

然后还是没有巨型帧的选项,那就正面刚给用来开机的网卡打驱动吧,还居然能打上,提示重启之后才生效,巨型帧这些选项就出来了,调好巨型帧,透过 iSCSI 跑文件基准测试,数据还不错!

故事还没有结束,我对 Win10 的“智能网卡PNP”还有怀疑,因为这一次买的网卡全都是 Realtek 的螃蟹卡,甚至驱动都是同一个 sys 文件(这也可能是打不上的原因),若换另一种芯片的网卡,还能不能匹配上,然后顺利地从 iSCSI 启动呢?

又等了几天 ,Intel 的 I225-V 网卡到手了,这网卡是我见过的最奇葩的没有之一。在正常情况下插好它冷启动,它就会把其他网卡排挤掉(集成网卡和螃蟹卡,都插上了),无论是 BIOS 启动选项还是实际状况,反正只剩下它了,仿佛别的网卡都不存在了一样。然鹅一般的台式机似乎又不支持 PCI-E 热插,尝试了还好只是死机而没有烧主板。

我也不知道哪根筋抽了之后想出开机之后、显示 BIOS 的 LOGO、蜂鸣器发出响声之前,赶紧插上这张 Intel 的网卡,在蜂鸣声过后就全部的网卡的 ROM 都能执行了,看似和睦相处了的而样子,也能被系统认出来了(进 BIOS 能选择主板集成网卡 ROM,但重启就又没了)。带着这张网卡,用之前 PNP 好的螃蟹卡(或者集成网卡)启动,装好驱动、设置好巨型帧,然后关机把网线插过来。这时候 Win10 能仅靠装驱动就做到无盘网卡 PNP 的疑虑得到实锤。然而,用它进入系统之后,集成网卡不见了,设备管理器也找不到踪影……

扯完撒花~

评论(0) 引用(0) 浏览(1448)

Powered by emlog 去你妹的备案 sitemap