绪言
很多年以前,水月就建起过个人网站。那时节互联网上遍地都是免费的资源,只要一个电子邮箱就能弄到免费的网页空间、免费的域名和免费的数据库服务器。当然免费的午餐吃多了也就不消化了。渐渐地免费成了收费,这也是资本逐利的本性所趋,无可厚非。所以很多个人站点或是被资本收编,或是销声匿迹了。一个物种的多样性一旦丧失,最终就会灭绝。其中某种力量又以大家都懂的之理由推波助澜,以监管之名助资本之力,消灭那些不被资本看好的个人网站。好吧,人在矮檐下,怎能不低头?你要收费,我就乖乖交费,行了吧?不行!还得交上你的个人信息balabala……算了,花钱买台NAS,用自己的机器总可以吧?不行!电信把个人用户的80端口(in)给封锁了。好吧,至少还有443端口可用。我去申请证书,然后开https可以吧?不行!前几天电信又把这个端口也给封了。难道个人网站只能带着个端口号的小尾巴走进“新时代”吗?
道高一尺,魔高一丈。那么来吧,你有高墙,我有梯子,你有封锁,我来挖洞。利用隧道技术,割掉网站的小尾巴!
(在坛子中找了不少教程,研究了一阵子,发现有些教程所传授的方法在DSM6.1已经失效,或者是太过简略,不适合我等小白,所以就根据自己的步骤来写一个说明吧。)
准备工具
WinSCP(winscp.net)
主角登场
这里的主页上列出了一大堆需要用到的程序,根据不同设备和系统自行挑选。我一开始用了PHP版本,但没成功。老老实实选了Linux64bit版本(我的NAS是群晖DS416play),下载下来是个名叫sunny的文件。
既然已经来到了这里,就注册或者登录。进入之后,选择隧道管理-开通隧道。这里当然是选免费的。注意,免费的http隧道每个用户只能申请一条。
名称可以随便填,前置域名要想好,申请了就不能改,若你有自己的域名也就无所谓了,以后可以改成自己域名。本地端口就填NAS所在的局域网IP:80(貌似不能远程开隧道的)。验证用户名和密码可以不填,谁看你的网站还需要密码?
一路下来成功之后到隧道管理中就可以看到开通的隧道,记住哪个ID,后面有大用。
接下来就是把sunny客户端弄到NAS上并且开启
1. 打开NAS的SSH功能
进入DSM中打开控制面板,在终端机标签下把“启动SSH功能”打上勾。
2. 用PuTTY获取NAS的root权限(这是DSM6以后多出来的步骤,DSM5.2中admin可以直接操作root)。
打开PuTTY,填入NAS的IP连接上去。
在命令行界面中输入用户名和密码,也就是NAS管理员的用户名和密码。进入后再输:
[color=rgb(51, 51, 51) !important]复制代码
这是为了获取权限,之后还得再输入一次密码。接着修改root的密码,命令为:
- synouser --setpw root XXXXXXXXX(这里是你想要的密码)
[color=rgb(51, 51, 51) !important]复制代码
3. 用WinSCP上传客户端文件
WinSCP如同以前的FTP文件管理器一样,用两个界面很直观地进行文件管理。在登录界面中输入NAS的IP,用root用户名和刚才设置的密码进入,找到NAS的root目录,把本地的sunny文件拖入即可。拖入后别忘了用右键修改文件属性为0755!
4. 在DSM中开启服务
现在回到DSM的界面中,还是打开控制面板,在计划任务中新增一个“触发的任务”。这里是DSM6.1以后出现的新功能,6.0是找不到的,而5.2则可以通过其他两种方法来实现,步骤繁琐,以前的一些教程中写到过了,我就不再赘述。
任务名称随便填,用户就是root了,事件是开机,然后到任务设置标签中写脚本。注意别写错了ID(图中XXXXXX部分),也别忘了最后那个&。写完,保存。然后右键运行。
现在,在浏览器的地址中输入“前置域名”.free.ngrok.cc,NAS上运行的主页就展现在你眼前了!
总结一下,使用这个方法的最大好处就是突破了电信对网站端口的封锁,使得个人网站不需要再带累赘的端口号了。另外附加了一个好处,就是在局域网中访问wordpress不会出现排版问题了,因为这个域名可以在局域网中访问,不需要像动态域名那样只能到外网去访问。free.ngrok.cc还支持使用自己的域名进行解析,只需要把你的域名CNAME解析到free.ngrok.cc即可。