探索未知,记录点滴

Mac无人值守穿透小记&五一

Spread the love

和朋友约好了五一回家去看「复联4」,刚好最近在玩穿透,想试验下把电脑放在学校然后在家中访问。本次初步打算做三个部分:SSH远程访问、VNC以及Caddy搭建的本机文件服务器。下面就和大家分享一下过程,顺便记录今年的五一。

交流群:Newlearnerの水群

《Mac无人值守穿透小记&五一》

穿透小记

0x00 准备工作

  • 联网的Mac一台(Linux可类比)
  • 持续的电源
  • 穿透工具(以nps为例)
  • 其他(caddy、vnc等)

0x01 存在的问题

  • 校园网受学校控制,晚上会断
  • Mac因为自身休眠设置的问题,合盖情况下不能主动连接WiFi
  • 连接校园网需要在web页面登录(manual)
  • 外出期间Mac需要锁在抽屉,如何供电

0x02 解决方案&部署

  • 穿透部署

详见:NPS-轻量级内网穿透代理服务器

  • 校园网受学校控制,晚上会断

咱学校是晚上12点准时断网,早上7点学校WiFi开启。

这就表明本机的客户端和带有公网ip的服务端在晚上会有一段时间失联,第二天重新连接后必定会改变内网ip地址。因此我们的nps的后台设置「TCP tunnel」时不可填写内网ip:端口,而是直接填写端口,以便保证内网ip变更后依然可以连接服务端。

《Mac无人值守穿透小记&五一》

此外,我们需要找一个办法。在早上WiFi开启后,让Mac主动连接它。

  • Mac因为自身休眠设置的问题,合盖情况下不能主动连接WiFi

解决的办法很简单:防休眠app+crontab

防休眠app我用的是InsomniaX,可以做到「合盖防休眠」「限制防休眠」。缺点是长期使用后电脑可能略卡顿。

crontab是定时任务,可以在每早7点提醒电脑连接学校的WiFi。

打开terminal,输入crontab -e,配置如下:

  • 连接校园网需要在web页面登录(manual)

这个就仁者见仁智者见智了,因为各个学校的网页登录五花八门,方法也不尽相同。总体的思路就是:脚本化+crontab。

我使用的是python脚本,脚本如下:

该脚本模拟成浏览器发送请求以登录,其中cookie等信息需要自己抓取(浏览器、调试工具等)

仅适用于如下web网页认证,其他认证需要加以改动:

《Mac无人值守穿透小记&五一》

在Mac中安装python3:brew install python3,保存以上脚本,并在终端运行。成功后会看见相应数据。

输入crontab -e

  • 外出期间Mac需要锁在抽屉,如何供电

不多说上一张灵魂走线:

《Mac无人值守穿透小记&五一》

0x03 使用&后记

SSH:

《Mac无人值守穿透小记&五一》

VNC:

《Mac无人值守穿透小记&五一》

VNC对网速的要求极高,因此做穿透之后只能实现2-3s一帧的效果了。可以作为电脑的监视器,但不建议直接上手操作(卡顿)。如果对远程桌面有一定的需求,建议直接使用teamviewer等软件来实现。

文件服务器:

《Mac无人值守穿透小记&五一》

⚠️这套系统运行的流程是:电源供电-早上联网-认证-nps访问,最终实现我们在家远程访问学校电脑的需求。

但是也存在一个致命的缺陷:如果学校的电脑(客户端)出现了npc进程被kill/电脑出现故障(卡死)/早晨联网失败等问题,那么在家的我没有任何办法去弥补。

5月3日的早上我和学校的电脑失联了,原因未知。在3日早晨又恢复了连接,去终端里面查了一下是由于2日校园网验证失败了。于是我试着拉开「连接WiFi」和「校园网认证」crontab的时间间隔,it works!

⚠️因为Mac自身携带电池,因此不用考虑晚晚上断电对穿透带来的影响。但是日后使用其他不含电源的设备(比如树莓派等),则还需要加一个ups电源。

此套方案成熟后,其实我已经可以买一个树莓派来折腾研究了,希望能尽快安排上吧。

五一小记

①和老朋友看了「复联4」,漫威的伏笔做的真好。即使我是霍金的信徒,并不吃他们「平行宇宙」、「分支」这一套近乎魔幻的理论,但是剧情仍然经得起推敲。(他们的)逻辑上是讲得通的。第一代复仇者已经落幕,期待今后的发展。看电影前记得上厕所~

②吃火锅期间听了朋友的大耳(Sony WHH900N),一发入魂。一方面是降噪功能给我留下了深刻的印象,另一方面佩服大法一些人性化的细节设计:比如右侧的面板可用各种手势、不夹耳可调的设计。种草ing

③没电脑真难受,iPad就是个玩具(雾

 

参考链接:python 脚本自动登陆校园网- zutterhao

 

发表评论

邮箱地址不会被公开。 必填项已用*标注

Recommended
之前写过一篇利用fr…