16
12

More than 5 years have passed since last update.

SSHのDynamic Forwardで学内ネットワークに入る

Last updated at Posted at 2018-10-15

やりたいこと

家やテザリングをしたネットワークから学内ネットワークに入りたい。やっていることとしては、SSHのDynamicForwardでトンネルを張って、クライアントのMac側でSOCKSプロキシの設定をしている。sshの設定が既に済んでいる人であれば、5分ぐらいで簡単にできる。

SSHでダイナミックポートフォワードする

ターミナルからトンネルを張る。

$ ssh -D 10080 user@example.com

簡略化する場合

下のように設定すれば簡略化することも可能。$ ssh tunnelで接続。

~/.ssh/config
Host tunnel
  HostName example.com
  User user
  DynamicForward 10080

バックグラウンドで走らせる

コマンドを実行する必要がないので、バックグラウンドで実行したい場合はこう。ターミナルのウィンドウを閉じてもコネクションが切断されないようになる。

$ ssh -N -f tunnel

コネクションを切断する

バックグラウンドで走らせたときはこうやって切断する。

$ ps aux | grep ssh
$ kill ****

SOCKSプロキシの設定(Mac)

Macならシステム環境設定>ネットワーク>詳細設定>プロキシ>SOCKSプロキシから以下のように設定。

Screen shot 2018-10-15 at 12.35.18.png

ターミナルからオン・オフを切り替えたい場合はこう。

networksetup -setsocksfirewallproxystate wi-fi on

プロキシのオン・オフを簡単にする

こういうシェルスクリプトを書いて、~/.zshrcとかにalias貼ると便利。ターミナルから一発でSOCKSプロキシのオン/オフができるようになる。

proxy.sh
#!/bin/zsh
e=$(networksetup -getsocksfirewallproxy wi-fi | grep "No")
if [ -n "$e" ]; then
  echo "Turning on proxy"
  networksetup -setsocksfirewallproxystate wi-fi on
  echo 'display notification "ON" with title "proxy.sh"'  | osascript
else
  echo "Turning off proxy"
  networksetup -setsocksfirewallproxystate wi-fi off
  echo 'display notification "OFF" with title "proxy.sh"' | osascript
fi
~/.zshrc
alias proxy='sh /Users/hoge/proxy.sh'

まとめ

一回設定してしまえば、あとは簡単に接続できちゃう。

$ ssh tunnel
$ proxy

参考

16
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
12