标签归档:Windows

Windows简易TCP端口转发

由于某些特殊的原因,我临时需要在一个windows的机器上做一个tcp转发。网上各种奇奇怪怪的软件要下载下来还需要额外担心一下是不是有病毒什么的。不过经过一番搜索,我找到windows自带端口转发的功能,是netsh命令的一部分。

微软有一个相关的说明文档,里面有具体的说明。根据网上搜索得到的结果来看,是从windows vista的年代开始内置,不需要额外的软件。

使用方法也很简单:

#新建一个转发,监听到192.168.1.111:4422,所有进来的流量,转发到192.168.0.33:80
netsh interface portproxy add v4tov4 listenport=4422 listenaddress=192.168.1.111 connectport=80 connectaddress=192.168.0.33
#列出当前所有转发
netsh interface portproxy show all
侦听 ipv4:                 连接到 ipv4:

地址            端口        地址            端口
--------------- ----------  --------------- ----------
192.168.1.111   4422        192.168.0.33    80
#删除转发
netsh interface portproxy delete v4tov4 listenport=4422 listenaddress=192.168.1.111

网上还有控制这个端口转发的图形界面软件,可以免除手动输入命令的功夫。

另外,这个转发收到防火墙的保护,意味着你打开端口需要手动调整防火墙。所以流程就是以下的二选一

  • 增加转发->打开防火墙->重启电脑->生效;
  • 打开防火墙->增加转发->生效;

所以建议先操作防火墙。

为RDP启用显卡加速,提升远程桌面效果

参考:https://www.orgleaf.com/3771.html

在为虚拟机添加了虚拟显卡之后,虚拟机的图形性能大大提升,但是远程桌面似乎没什么两样。稍作一番Google之后,找到打开RDP调用显卡的教程:

RDP启用显卡加速

打开电脑的组策略管理器(运行gpedit.msc

按顺序打开文件夹 “计算机配置->管理模板->Windows组件->远程桌面服务->远程桌面会话主机->远程会话环境”。在文件夹目录内能看到一个叫“将硬件图形适配器应用于所有远程桌面服务会话“的设置。从”未配置“改为”已启用“。

提升传输帧率

这一步需要修改注册表,在[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations]新增一个DWORD项,名称为“DWMFRAMEINTERVAL”,值为0000000f(16进制)或者15(10进制)。可以参照教程从regedit.exe进去一步一步添加,或者是直接用.reg修改。

.reg的内容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations]
"DWMFRAMEINTERVAL"=dword:0000000f

复制内容,用笔记本文档保存为一个.reg文件,双击导入即可。

完毕后重启生效。

调整后远程桌面的效果显著提升,就算是跑点小黄油之类的也不会觉得画面卡卡的了。

windows无法解析域名

参考:https://answers.microsoft.com/en-us/windows/forum/windows_7-networking/windows-7-browsers-unable-to-resolve-domain-names/77e1f86d-618d-4d37-b693-8c37bed3b28d

今天不幸办公的PC炸了,不得不重置win10,在重置之后出现了一个非常诡异的问题,浪费了我一整个下午。

这个故障的特征是windows不会向DNS服务器查询域名,手动用nslookup是可以正常获取到解析结果,但是除了nslookup以外,ping之类的工具、浏览器都会直接返回一个无法解析地址的错误。在整个过程中,用wireshark抓包会发现系统根本没有向dns服务器发起解析的请求。

经过一番google(垃圾百度),找到一个问题,就在上面的参考,里面有位Lakusus的老哥给出了一个答案,就是电脑的计算机名丢了,一检查,果然如此,在重新设置上计算机名并重启就正常了。

顺便一说,我在设置的时候不能在win10的“设置”程序里面修改,只能去控制面板-系统那里修改。

希望能对某位不幸的朋友提供一些帮助。

在OpenWrt的WiFi上使用非英文字符作为SSID和密码

最近又给同学刷了一只路由,在设置wifi的时候突然来了兴致,不如用中文来做SSID吧~然后就干了,在luci上使用中文写了SSID,然后应用之后,发现luci的页面上能够正确的显示中文,但还到了windows上就变成了一串英文,然后用手机一搜,哟~中文哎。

显然是字符编码的问题了。

总所周知,windows使用的是GB的字符编码,而Linux一般使用的是UTF-8,除非你手动改成了GB。用Linux做底层的Android果然跟随了Linux的步伐,编码使用了UTF-8,而Openwrt的Luci也用的是UTF-8的编码,如此一来,便解释得通了。

用notepad++打开/etc/config/wireless,编码切换到GB,将SSID改成了中文,保存,然后重启WiFi,然后一搜:

中文SSID

果了个然,于是中文的SSID就出来了,别人看到都觉得很惊奇。这时候就可以给你的WiFi一个有趣的SSID,比如之前看到的“网络无法连接”,估计可以让相当一部分的人放弃连接你家WiFi的念头。

另外一件很有趣的事情就是,虽然使用了GB编码的SSID,但是Ubuntu却表示我能够正确的认出中文的SSID,并显示出来。UTF-8编码的中文SSID,Ubuntu同样能够正确地显示中文,这实在太不可思议了。

===========================接下来就是把密码给玩坏===============================

最初的时候,就尝试直接使用GB的编码来写中文密码。ok,windows说他能连上。但是Linux表示我们 UTF-8的编码没法通过密码验证。

问题就来了,怎么办呢?

把密码换成UTF-8如何?

然后Ubuntu就表示,嗯,我们没问题!

中文WiFi密码

啧……这可难办了,难道就没有两者都能兼容的办法么?

然后在来回切换编码的时候,我发现了一个问题,UTF-8转成GB之后是乱码,但是看起来却都是正确的中文字符……要不旧直接用这个乱码来试试连接吧……Windows说:没问题!然后就连上了。

GB编码下的SSID和密码

GB编码下的SSID和密码

UTF-8编码下的SSID和密码

UTF-8编码下的SSID和密码

乱码密码

乱码密码

看来连接是没有问题呢~

也就是说使用GB编码的SSID和UTF-8编码的中文密码是最优的组合~无论linux和windows都可以连接到。

最后就是客人的问题……

移动设备的话估计没什么问题,但是捧着运行着Windows的电脑过来的孩子……有的麻烦了呢……

==============================追加移动设备的研究================================

很可惜的是,android和IOS都可以认出UTF-8编码的SSID,但是无法认出GB编码的SSID,只能看到一串乱码,这个实在是太糟糕了。微软你赶紧投奔UTF-8的怀抱吧。

与此同时,测试了UTF-8编码的密码,Android和IOS都能够使用中文密码来连接,但是IOS在输入密码的时候,只能输入英文字符,所以,需要使用复制粘贴的方法,来完成密码的填写。Android的话,可以强制切换键盘来输入中文。

另外的就是,即使使用中文字符,也必遵循WPA2密码最少8个字符的原则,所以最短密码是八个中文字,而不是4个中文字。

等我以后能装OSX的之后再补上MAC的研究报告。