外網如何訪問學校內網資源?

我在學校,想通過路由器的花生殼功能搭建個類似vpn的功能,使得在家也能通過遠程訪問到路由器實現訪問學校內網。

主要是用校園的ip訪問知網下載論文不收費的,想遠程代理到學校ip。

目前有路由器一台,校園網賬號一個,聽說不是公網ip無法用花生殼代理。哪位有類似經歷,或者提供一個教程?


提供兩種確定可行的方法,但都需要你在學校有一個能聯網的主機(我用的是 Raspberry Pi,路由器的話得看固件,OpenWrt 應該就行,反正我沒試過):

  1. 註冊一個花生殼(還有其他許多軟體也可以)賬號,在裡面申請一個免費的二級域名然後使用他提供的內網穿透功能,然後你就可以掛一個 socks 代理出來,但是有流量和速度的限制;
  2. 買一個雲伺服器作為中轉(某鵝廠有 1 元學生雲伺服器),使用反向 SSH 來達到獲取校網資源的目的,我用的是這種方法。

有知友找我要方法2的具體操作,下面補充一下。

假設有內網主機 inner,公網伺服器 server,SSH 埠均為22 ,在 inner 上執行如下操作:

autossh -M 30000 -NfR 30001:localhost:22 server-user@server-address

Autossh 是一款監控 SSH 進程的軟體,它能夠使 SSH 隧道一直保持暢通,不會超時就斷開,使用前需要安裝。這段命令的意思是將內網主機的 22 埠映射到伺服器的 30001 埠,30000 為 Autossh 的監聽埠;

接著在 server 上執行

ssh -g -D 30002 -p 30001 inner-user@localhost

解釋一下,-g 允許遠程主機連接,-D 設置動態埠轉發,即將 30002 埠上的連接都轉發到內網主機 inner 上(server 上的 30001 埠代表 inner 上的 22 埠)。

至此,你就可以在任何一台能夠上網的電腦上通過 server-address 的 30002 埠提供的 socks 服務來訪問內網資源了。

補充一下:在實際應用時,兩台主機應該彼此之間都用私鑰登錄來避免手動輸入密碼,同時,為了避免一些突發情況,應該將第一個命令寫進開機啟動腳本里,第二個命令你什麼時候用什麼時候去執行好了。


推薦閱讀:

路由器和交換機有哪些不同?
為什麼tp-link這樣的廠商不直接內置dd-wrt這種開源又好用的系統而自己開發一個功能更弱的系統?
小道消息,極路由要開源那不是必死無疑了?
為什麼沒有廠商做一款高配置的OpenWRT路由器?
為什麼網路設備(交換機路由器)使用RJ45介面做console口又不支持tcpip只能用com通信?

TAG:代理 | 路由器 | 校園網 | 知網 |