MENU

Soracom

Users

インストールする

soratun を入手する

soratun を公開している GitHub レポジトリReleases セクションからご利用の環境に合わせたファイルをダウンロードしてください。サポート対象である Raspberry Pi の場合は soratun_x.x.x_linux_armv7.tar.gz となります。

soratun をインストールする

ダウンロードしたファイルを展開し実行形式ファイル soratun を任意のディレクトリへコピーしてください。

$ wget http://xxxxx
$ tar xvf soratun_x.x.x_linux_armv7.tar.gz
$ cd soratun_x.x.x_linux_armv7
$ sudo cp soratun /usr/local/bin
soratun の動作に Linux カーネルの WireGuard 実装(wireguard-dkms パッケージなど)の導入は不要です。

以上で soratun のインストールは完了です。

追加のセットアップ

利用方法に合わせて以下のような設定も可能です。通常の動作には不要ですので必要に応じて実施してください。

systemd を使用してデーモンとして動作させる

soratun は単体のプログラムとして実行できますが、 systemd と併用してデーモンとして動作させることができます。

  1. ダウンロードしたファイルに含まれる conf/soratun.service.sample をベースにして必要な設定を行ってください。最低限 ExecStart に記載する soratun のパスと設定ファイル /etc/arc.json は使用環境に合わせて変更してください。

    [Unit]
    Description=soratun
    Documentation=https://users.soracom.io/
    Requires=network-online.target
    After=network-online.target
    
    [Service]
    Type=simple
    # ExecStartPre=/usr/local/bin/soratun bootstrap cellular --config /etc/arc.json
    ExecStart=/usr/local/bin/soratun up --config /etc/arc.json
    Restart=always
    StandardOutput=journal
    StandardError=journal
    SyslogIdentifier=soratun
    SyslogFacility=local7
    WatchdogSec=120
    
    [Install]
    WantedBy=multi-user.target
    
  2. 設定したファイルを systemd の設定ディレクトリへコピーします。

    $ sudo cp conf/soratun.service.sample /etc/systemd/system/soratun.service
    
  3. soratun デーモンを有効にし起動します。

    $ sudo systemctl enable soratun
    $ sudo systemctl start soratun
    

systemd に関連する通常のコマンドが利用できます。

  • 停止する: sudo systemctl stop soratun
  • プロセスの稼働状況を確認する: sudo systemctl status soratun
  • ログを確認する: journalctl -u soratun

systemd watchdog との連携

soratun は systemd の watchdog をサポートします。以下のタイマーに基づいておよそ 110 秒毎に systemd へ稼働状況を報告します。

Protocol & Cryptography - WireGuard:

After receiving a packet, if the receiver was the original initiator of the handshake and if the current session key is REKEY_AFTER_TIME - KEEPALIVE_TIMEOUT - REKEY_TIMEOUT ms old, we initiate a new handshake.

soratun が何らかの原因で停止したり、SORACOM Arc のセッションが切断された場合、上記 systemd の設定ファイルの場合最大 120 + 110 秒後に systemd が soratun を再起動します。

  • WatchdogSec を 120 秒より短く設定することもできますが、問題が無い場合にも再起動される可能性があります。利用環境に合わせ判断してください。
  • watchdog による自動再起動を停止したい場合は WatchdogSec= の行を削除してください。

非 root ユーザーで実行する

Linux 上では soratun を非 root ユーザーで実行できます。CAP_NET_ADMIN の詳細は capabilities(7) を参照してください。

  1. soratun を動作させるためのグループを作成します。

    $ sudo groupadd wg
    
  2. soratun の実行に必要なソケットファイルを保管するディレクトリを作成します。

    $ sudo mkdir -p /var/run/wireguard
    
  3. 上記ディレクトリのグループを変更します。

    $ sudo chgrp wg /var/run/wireguard
    
  4. soratun 実行ファイルに CAP_NET_ADMIN を付与します。

    $ sudo setcap cap_net_admin+epi /path/to/soratun
    
  5. soratun を実行するユーザー(この例では ubuntu) を作成したグループに所属させます。

    $ sudo usermod -a -G wg ubuntu
    
  6. 一度ログアウトしグループの変更を有効にすると soratunsudo 無しに起動できます。

    $ soratun up
    
一部の OS では再起動時に /var/run/wireguard が削除される場合があります。そのため、上記ステップ 2 と 3 を何らかの手段で OS 起動時に実施してください。