輕便小巧不是 VPN 的 VPN — sshuttle

目前偶爾會有些特殊的臨時需求,需要跳牆一下。
只要裝上 sshuttle,一行命令:
sudo sshuttle -NHvr –dns username@sshserver 0.0.0.0/0 ,
便可以了!


目前偶爾會有些特殊的臨時需求,需要跳牆一下。這種需求的解決,早期是透過架設 Proxy Server, 目前則是時興使用 VPN Server。

不過,因為目前我的工作重心早已不在「資訊工作」業務上,所以實在也沒有多的能量來架設 Server 與弄這些服務,所以輕便小巧,平時收納好,需要時再啟用的小東西,對我來說便是十分重要。

sshuttle 便是可以滿足我這方面需求的一個工具,只要牆裡面有部提供ssh的機器,以及有python,便可以達到 VPN 效果!

Client端的 sshuttle 在執行後,會自動將 client 裡的 sshuttle 的檔案上傳到 Server,並且執行,這樣好處就是無需在 Server 端裝軟體,更重要的是也不會有版本不同的問題。

sshuttle 目前支援平台有 FreeBSD, Linux, MacOSX , 它是以 python 語言寫成,有興趣者也可以抓原始碼回去研究!

在安裝後,只要下一行命令,便可以了,沒錯,你沒看錯,就一行命令。
sudo sshuttle -NHvr –dns username@sshserver 0.0.0.0/0

說明:

  • -N 讓 sshuttle 自動偵測有哪些 subnets 要轉送
  • -H 自動掃描遠端 ssh server 的 /etc/hosts,並更新本地 /etc/hosts,方便存取伺服器之類的
  • -r ( –remote ) 是指向你的 ssh server
  • -v (increase debug message verbosity) 可以看到 sshuttle 連線執行的詳細狀況
  • –-dns 連 dns 要求也轉送到 ssh server,這樣才不會洩漏行蹤
  • 0.0.0.0/0 表示全部的 subnets 都轉送,也可寫成 0/0。
  • 若不想網路封包亂竄,可以搭配目前機器所處網段,例如:192.168.0.0/0


參考資源:

  1. https://github.com/sshuttle/sshuttle
  2. https://pypi.org/project/sshuttle/
  3. 窮人的 vpn – sshuttle 介紹
  4. sshuttle a simple instant vpn
  5. how to use ssh as a vpn with sshuttle
  6. https://code.google.com/archive/p/ssh-tunnel-manager/

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

*