我的 Linux Server在墙外,在伟大的墙力作用下。速度经常伤不起。微信的5秒限制实在是远远不够。没办法只好想办法在墙内的 Windows Server 下设立 sshd Server来作微信调试!

这真是TMD一个蛋疼菊紧的过程!windows 在桌面可能略胜于 linux,但在Server方向 linux 绝对可以甩 windows 几条街。Linux 下几条命令甚至不用命令都可以搞定的情况下 Windows 搞掉了我一整天的时间!当初选型 .NET 是因为它可以作 WinApp 和 WebApp ,对国内大多数 win 用户来讲,文档格式各方面处理应该容易点。只不过科技日新月异,当下智能设备流行的今天。这个优势已经逐渐边缘化了。总而言之,如果现在选型,.NET 平台绝对不要优先考虑。

回到主题上,经过 google 和 baidu 的重重搜索,windows 上的 sshd 软件也是不少的。可惜的是,几乎很多都不更新,用不了了。比如说 opensshd freesshd 。这两个试过了,完全不行。最后试了 Bitvise 的 WinSSHD,这个是可以用,可惜商用要授权。个人版的功能也可以了,但属不属于商业应用。。。管不了那么多了……

下载 WinSSHD http://www.bitvise.com/ssh-server-download

按 Personal 的方式安装。安装过程就不废话了,完成后 start server 就可以了。

然后要记得配置 windows 防火墙 允许入站规则,允许 22  TCP 端口入站。

完成后就可以通过 ssh 客户进行连接了。如果有安装 git-bash,直接在 git-bash 打以下命令

1
ssh -R 8110:127.0.0.1:8080 [email protected]

8110是我们在Server上的端口,127.0.0.1:8080 就是本地的端口。 administrator 是Server上的帐号,test.com 就是Server的域名了。当然输入后会提示输入密码(Server上用户密码)。这样就建立了一个Server上8110到本地8080的映射。所有到 test.com:8110 的连接会转发到本机上的 8080 。(PS,如果要转发到别的机器/域名、端口则替换 127.0.01:8080 这部份就行了。

首先要确定本机的 127.0.0.1:8080 能正常工作,然后再在Server上尝试访问 8110 端口看到不到正常显示本机的输出内容。这两部完成说明OK了。

接下来就要处理微信只能处理80端口的URL问题了。我们的目的是要把 http://test.com/weixin 这个URL 的请求转发到我们本机的 http://localhost:8080 上面来处理。这需要 IIS (我的是  7.5 的版本),安装2个插件:

接下来点击 test.com 网站,同样是 IIS 节找到  URL重写 ,添加规则。模式:^weixin(/.*)?   注意前面不要加/,一开始我加了/结果老是匹配不了。坑啊!操作选重写,重写URL就是 http://localhost:8110/{R:0} ,言下之意就是把匹配规则的请求重写到Server的 8110 上,而Server的 8110 已经映射到本机的 8080 端口上,这里 localhost 是代表Server。完成后按应用这时一切应该都正常工作了。

Windows Server 实在太麻烦了,太 tmd 不好用了。Visual Studio 虽然好用,但 .NET 启动太坑爹,综合效率其实也不太理想。