4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ターミナルやAlfred、Dockからインターネット共有のオンオフを切り替える

Last updated at Posted at 2015-11-02

仕事の都合でMacのインターネット共有のオンオフを割りと頻繁に切り替えている
今までは「システム環境設定」の「共有」の「インターネット共有」のチェックボックスを押して切り替えていたのだがいかんせんめんどくさい
ターミナルとかAlfredからぽんと1発で切り替えたい!!

どーせコマンドかなんかあってちょちょいのちょいでしょ!!

・・・

ググってもでてこねぇ・・・!!
コマンドワンパンじゃねぇのか・・・

と諦めかけていた矢先、やはり先人は偉大であるのであった
Start/Stop Internet Sharing via Terminal in Yosemite without AppleScript

恐ろしい発想の転換だ
インターネット共有は常にONにしておいて経路に用いるネットワーク設定のほうを切り替えるとは・・・

下準備

インターネット共有に使うための経路を用意する

システム環境設定のネットワークを開く
使いたい経路を選んで歯車ボタンから「サービスを複製...」を選ぶ
とりあえずこの例では「Thunderbolt Ethernet」を元に「Sharing」という名前で保存
優先度は一番下にしておく
スクリーンショット 2015-11-02 20.09.56.png

共有設定をする

システム環境設定の共有を開く
「共有する接続経路」に先ほど作成した「Sharing」を設定、Wi-Fiを使用することにして、「入」に!
スクリーンショット 2015-11-02 20.51.57.png

以上で事前準備は終了

ターミナルから切り替える

以下のコマンドをターミナルから叩く

インターネット共有をONにする
$ sudo networksetup -setnetworkserviceenabled "Thunderbolt Ethernet" off
インターネット共有をOFFにする
$ sudo networksetup -setnetworkserviceenabled "Thunderbolt Ethernet" on

ね?簡単でしょ?
普段インターネット接続に使っている「Thunderbolt Ethernet」がoffになると待機していた「Sharing」が使われ、共有の経路が出来上がるという仕組み
逆にonになると、優先度の低い「Sharing」は使われなくなるので共有も止まる

on,offの記述が「やりたいこと」と「パッと見の見た目」とで逆だし絶対忘れるので叩くと切り替えてくれるの書いた
共有してるかどうかはWi-Fiのアイコンとかみればわかるしね

インターネット共有のON/OFFを切り替える
service="Thunderbolt Ethernet"
status=`networksetup -getnetworkserviceenabled "$service"`
if [ $status = 'Disabled' ]; then
    sudo networksetup -setnetworkserviceenabled "$service" on
else
    sudo networksetup -setnetworkserviceenabled "$service" off
fi

パスワード入力がめんどくさいから/etc/sudoersnetworksetupを許可した、なんかザルな気もする

$ sudo visudo

# 下記をどっかに追加(%userは自分のユーザ名に置き換える)
%user ALL=(root) NOPASSWD: /usr/sbin/networksetup

Alfredから切り替える

ターミナルからはいいけどAlfredからでも切り替えられるようにしたい・・・どうしよう
そうだ、Automatorだ!

というわけでAutomatorでアプリ化した、もはやDockからでも切り替えられる

Automatorを起動して、アプリケーションを選択
シェルスクリプトの実行を選んできてコードをぽい!
Automatorのシェルスクリプト実行だとsudoつけてるとパスワードの入力で止まっちゃうので外す
sudoがついてないといつものシステムダイアログでパスワードを聞いてくる
/etc/sudoersnetworksetupを許可していれば止まらないのでsudoつけてても良い)
スクリーンショット 2015-11-02 20.31.38.png

出来上がった
スクリーンショット 2015-11-02 20.33.01.png
アプリケーションなのでAlfredにかぎらずSpotlightからでもDockからでもFinderからでもopen /Applications/InternetSharing.appからでも何でも起動できるぜ!!!

ああ〜超快適になった!

4
5
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
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?