校外如何訪問校內網站?
反向SSH隧道+網絡代理工具
校內的電腦主動向外發起連接,并綁定自己的端口A和你服務器的端口B。在校內電腦上開個代理,監聽本地的端口A。
公網發往服務器:端口B的數據會被轉發給校內電腦:端口A。在校外的你的電腦看來,服務器:端口B就是個代理,連上它就能上校內網站啦。
這么闡述還是有點麻煩,下面上我的原理圖。我為自己留了兩條隧道:一條用于訪問網站,一條用于ssh連接,用于管理校內主機。
原理很簡單吧!實際操作時會遇到一些小麻煩,下面我將寫出自己搭建的過程,ip地址和端口均參照上圖(這倆都是我編的)。
硬件需求:離校期間一直在線的電腦一臺,我用的是樹莓派2B,它便宜省電,適合解決這個問題。
國內vps一臺,上網搜搜優惠碼或許能拿到額外的優惠。
搭建:樹莓派連接到校園網(教程另搜)
我們學校使用DR.COM進行網絡鑒權認證,為了讓校內的樹莓派能訪問到外網,我在樹莓派里面刷了。這個每個學校都不一樣,大家自己解決。
掉線檢測:由于 學校網絡便宜但質量一般,登陸之后經常掉線。所以要檢測樹莓派是否還能上外網一個位于校外但在國內的合法網站。比如。能ping通則返回,反之返回,執行完可通過變量訪問(上一條命令的)返回值。
配置ssh:這不是文章的重點,簡單說一下步驟吧:
修改vps的ssh端口,默認的22端口容易被黑,網上有好多游手好閑的人專門掃端口玩。生成一對公鑰、私鑰,公鑰放在樹莓派里,私鑰放在vps上。這是ssh免密碼自動登陸的方法。構建ssh反向隧道:
以樹莓派上的命令為例,簡單解釋一下反向隧道的參數
-R 代表反向隧道,
0.0.0.0意味著讓vps監聽其所有ip地址上的該端口(20000),如果不加這個,vps本身能夠反反向訪問到樹莓派,但外網的電腦則不行。
20000代表綁定vps的端口,
localhost表示樹莓派的本地ip地址,:22表示樹莓派的22端口(我用于ssh,這個沒改。)
username@8.9.10.11替換成你的vps用戶名、ip地址。
-p 22是端口,22替換成你改過的ssh端口號。
不出意外的話,樹莓派會要你輸入vps的登陸密碼,正確的話就連接成功了。此時在vps上 應該能訪問到樹莓派的ssh界面。
Autossh
ssh是會被掐斷的,因此我們通過autossh命令和keepalive包來減少短線對我們的影響。
每8秒我們向上發送一個ssh包,避免運營商將我們的連接掐斷,如果斷線,autossh會立即自動重連。
代理工具:由于你懂的原因,我不能詳細展開,相信通過前面的講解,我們能夠自己換端口了。將綁定樹莓派的端口改成樹莓派上代理工具監聽的端口即可,無論你是用“小飛機”、“酸酸乳”還是“火箭射線”,這套轉發都能讓你上到校內網站。
哦對了,你在校外上網時,服務器填你vps的ip(本文中為8.9.10.11),端口填你vps綁定的端口(本文為20000)哦。
如果還有疑問,歡迎大家關注我公眾號:CPA學習網,和我一起交流互聯網那些事兒。