本文へスキップ

Soracom Arc Soratun Tool Command Reference

To show available commands, run soratun help:

コピー/保存

このページはまだ日本語では利用できません。現在は英語版を表示しています。ブラウザの翻訳機能をご利用ください。

ブラウザで翻訳する
  • Chrome / Edge: アドレスバーの翻訳アイコン、またはページを右クリックして「日本語に翻訳」を選択してください。
  • Safari: アドレスバーの「aA」メニューから「翻訳」を選択してください。

翻訳メニューが表示されない場合は、ブラウザ設定で翻訳機能が有効になっているか確認してください。

英語版を見る

Command Reference

To show available commands, run soratun help:

soratun help
>soratun -- SORACOM Arc Client
>
>Usage:
>  soratun [command]
>
>Available Commands:
>  bootstrap   Create virtual SIM and configure soratun
>  config      Create initial soratun configuration file without bootstrapping
>  help        Help about any command
>  status      Display SORACOM Arc interface status
>  up          Setup SORACOM Arc interface
>  version     Show version
>  wg-config   Dump soratun configuration file as WireGuard format
>
>Flags:
>      --config string   Specify path to SORACOM Arc client configuration file (default "arc.json")
>  -h, --help            help for soratun

Soratun Commands

For all commands, use the --config flag to specify the location of the Soratun configuration file. If the file does not exist, Soratun will perform the initial bootstrapping process to create a Virtual SIM, and store the resulting Arc connection details in the specified file. If the file already exists, Arc will update the Arc connection details.

If the flag is not specified, Soratun will use a file arc.json in the current working directory.


Bootstrap

Command for performing bootstrapping in order to create a Virtual SIM, or update a Soratun configuration file for an existing Virtual SIM.

For more information on the differences between each bootstrap method, refer to the Soratun Overview documentation.

When bootstrapping, a Virtual SIM will be created which will incur an initial fee. In addition, the Virtual SIM will incur a monthly service fee until the Virtual SIM is terminated. Refer to the Pricing & Fee Schedule for more information.

To bootstrap using AuthKey authentication, run:

soratun bootstrap authkey --config /path/to/arc.json
  • Optional flags:
    • --auth-key-id - Your Soracom API AuthKey ID, beginning with keyId-.
    • --auth-key: Your Soracom API AuthKey secret, beginning with secret-.
    • --coverage-type - The coverage location where you want to create the Virtual SIM (g or jp).

To bootstrap using Cellular authentication, run:

soratun bootstrap cellular --config /path/to/arc.json
  • Optional flags:
    • --endpoint - The Soracom Krypton API endpoint to use for provisioning.

To bootstrap using SIM authentication, run:

soratun bootstrap sim --config /path/to/arc.json
  • Optional flags:
    • --krypton-cli-path - Path to the krypton-cli command (default: /usr/local/bin/krypton-cli).
    • --clear-key-cache - Remove all items from the key cache.
    • --disable-key-cache - Do not store authentication results in the key cache.
    • --keys-api-endpoint-url - Keys API endpoint URL.
    • --provisioning-api-endpoint-url - The Soracom Krypton API endpoint to use for provisioning.
    • --params - Additional JSON parameters to pass when making a provisioning request.
    • --signature-algorithm - Signature generation algorithm.
    • --interface - The UICC interface to use. Valid options:
      • autoDetect (default)
      • iso7816
      • comm
      • mmcli
    • --port-name - The port name to use for communicating with the device (such as COM1 or /dev/ttyUSB1).
    • --baud-rate - Baud rate to use for communicating with the device.
    • --data-bits - Data bits to use for communicating with the device.
    • --parity-mode - Parity mode to use for communicating with the device. Valid options:
      • 0 - None (default)
      • 1 - Odd
      • 2 - Even
    • --stop-bits - Stop bits to use for communicating with the device.

With the exception of the --krypton-cli-path flag, all flags will be passed as parameters to the krypton-cli command.


Config

Command for outputting a sample Soratun configuration file template. When creating a Virtual SIM from the User Console or using the Soracom API/CLI instead of using Soratun bootstrapping, you can use this command to generate a Soratun configuration file, which you can then modify to enter the WireGuard configuration details provided by Arc in the User Console or API/CLI. You can then pass the Soratun configuration file into Soratun using the --config flag to activate the WireGuard connection and connect to Soracom.

The sample configuration will be sent to stdout:

soratun config
>{
>  "privateKey": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
>  "publicKey": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
>  "simId": "890000xxxxxxxxxxxxx",
>  "logLevel": 2,
>  "enableMetrics": true,
>  "interface": "soratun0",
>  "arcSessionStatus": {
>    "arcServerPeerPublicKey": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
>    "arcServerEndpoint": "127.0.0.1:11010",
>    "arcAllowedIPs": [
>      "100.127.0.0/16"
>    ],
>    "arcClientPeerIpAddress": "127.0.0.1"
>  }
>}

You can redirect the output to a file in order to create a file from the sample configuration:

soratun config > /path/to/arc.json

For more details on each of the configuration parameters, refer to the Configuration File section below.


Status

This command displays the status of the WireGuard network interface created by soratun. Requires root user privileges.

sudo soratun status
>Password:
>interface: utun7 (userspace)
>  public key: PXlKD3r5vuPZk4kNatfL6ZPceCjfntWWIqjU9UksoHg=
>  private key: (hidden)
>  listening port: 63066
>
>peer: cx/QH4up20+tgvjr5Ht9kFZUA5BVY1N2m7hY6vP7vVA=
>  endpoint: 123.45.67.89:11010
>  allowed ips: 100.127.0.0/16
>  latest handshake: 2021-06-17 13:30:20.186527 +0900 JST
>  transfer: 92 B received, 180 B sent

If soratun is not running, the following message will be displayed.

sudo soratun status
>no SORACOM Arc device found

Up

This command activates a WireGuard network interface using the Soratun configuration file and configures the system's network routing table. Requires root user privileges.

sudo soratun up --config /path/to/arc.json
>
>DEBUG: (soratun0) 2021/06/17 14:37:03 device started
>...
>DEBUG: (soratun0) 2021/06/17 14:37:03 assign IP address: 123.45.67.89
>DEBUG: (soratun0) 2021/06/17 14:37:03 set link up: soratun0
>DEBUG: (soratun0) 2021/06/17 14:37:03 add route: 100.127.0.0/16
>DEBUG: (soratun0) 2021/06/17 14:37:03 Interface up requested
>DEBUG: (soratun0) 2021/06/17 14:37:03 peer(cx/Q…7vVA) - Received handshake response

When Soratun creates a WireGuard network interface, it will create a socket file at the path /var/run/wireguard/<INTERFACE-NAME>.sock. Normally this file is deleted when Soratun exists. However, if this file is not deleted correctly, this may prevent Soratun from being able to create the network interface again. If soratun up fails, check the corresponding directory and delete any socket files that correspond to interface names that are not running.

To stop Soratun:

  • If you are running soratun as a foreground process, press Ctrl-C.
  • If you are running soratun as a background process, send SIGTERM to the soratun process with the kill command.
  • If you are running soratun as a daemon of systemd, use the command sudo systemctl stop soratun.

wg-config

This commands converts a soratun configuration file, specified by the --config flag, to a WireGuard configuration format, and outputs it to standard output. This is useful when you are using soratun for bootstrapping a device only, and want to connect to Soracom Arc with a different WireGuard implementation.

soratun wg-config --config /path/to/arc.json
>[Interface]
>Address = x.x.x.x/32
>PrivateKey = ...
>
>[Peer]
>PublicKey = ...
>AllowedIPs = 100.127.0.0/16
>Endpoint = x.x.x.x:11010
>PersistentKeepalive = 60

You can redirect the output directly to a WireGuard configuration file, such as:

soratun wg-config --config /path/to/arc.json > /path/to/wg0.conf

Configuration File

When using Soratun to bootstrap a device for the first time, Soratun will save the WireGuard configuration details in a Soratun configuration file. If the --config flag is used, the configuration file will be saved at the file path specified. Otherwise, the the configuration file will be saved in a file arc.json in the current working directory.

The Soratun configuration file stores connection information in JSON format that Soratun will use to activate a WireGuard connection and connect to Soracom.

If needed, you can modify the Soratun configuration file based on your requirements.

Note that modifying certain properties such as privateKey or arcSessionStatus can result in Soratun being unable to establish a WireGuard connection. If you need to update the connection details, use the soratun bootstrap command that corresponds to your bootstrapping method to update the connection details whenever possible.

PropertyTypeRequiredDescription
enableMetricsBooleanYesIf enabled, metrics will be output to stdout approximately every 60 seconds when the log level is 2 verbose.
interfaceStringYesThe name of the interface to be created by soratun. On macOS, you must specify a string starting with utun due to OS limitations.
logLevelIntegerYesLog level. Valid options: 0 no output, 1 output errors only, 2 verbose output (errors and debug information).
privateKeyStringYesThe WireGuard client private key. In most cases, you should not edit this property.
publicKeyStringYesThe WireGuard client public key. In most cases, you should not edit this property.
additionalAllowedIPsString[]NoAn array of CIDR blocks to add to WireGuard's AllowedIPs configuration. Traffic to these destinations will also be routed through Soracom.
arcSessionStatusObject (see Arc Session Status below)NoSoracom Arc connection information. In most cases, you should not edit this property.
mtunumberNoMTU for the interface.
persistentKeepalivenumberNoWireGuard PersistentKeepalive for the SORACOM Arc server.
postDownarray[]NoArray of shell scripts to run after the interface is removed successfully. A script should be in the form ["executable", "param1", "param2"]. To specify the WireGuard interface name as a parameter, use the placeholder %i. The commands are executed in sequential order. For example: "postDown": [ [ "/bin/echo", "postDown", "%i" ], [ "echo", "%i" ] ]
postUparray[]NoArray of shell scripts to run after the interface is activated successfully. A script should be in the form ["executable", "param1", "param2"]. To specify the WireGuard interface name as a parameter, use the placeholder %i. The commands are executed in sequential order. For example: "postUp": [ [ "/bin/echo", "postUp", "%i" ], [ "echo", "%i" ] ]
profileObject (see Profile below)NoSoracom API connection information. Included only when using AuthKey bootstrapping.
simIdStringNoThe SIM ID of the Virtual SIM.

When logLevel is set to 1 (errors only) or 2 (verbose output) and enableMetrics is set to true, Soratun will output the following metrics details approximately every 60 seconds:

soratun_sent_bytes_total{simId="<SIM_ID>",interface="<INTERFACE_NAME>",endpoint="<ARC_ENDPOINT_ADDRESS>"} <NUM_BYTES_SENT>
soratun_received_bytes_total{simId="<SIM_ID>",interface="<INTERFACE_NAME>",endpoint="<ARC_ENDPOINT_ADDRESS>"} <NUM_BYTES_RECEIVED>
soratun_latest_handshake_epoch{simId="<SIM_ID>",interface="<INTERFACE_NAME>",endpoint="<ARC_ENDPOINT_ADDRESS>"} <LAST_HANDSHAKE_TIMESTAMP>

Arc Session Status

The arcSessionStatus object contains Arc connection information that will be used by Soratun to establish a WireGuard connection with Soracom.

In most cases, the parameters will be updated automatically when bootstrapping and creating a Virtual SIM for the first time, or when bootstrapping subsequent times to update the connection details.

PropertyTypeRequiredDescription
arcAllowedIPsString[]YesAn array of CIDR blocks provided by Soracom Arc to add to WireGuard's AllowedIPs configuration.
arcClientPeerIpAddressStringYesIP address of the WireGuard client.
arcServerEndpointStringYesThe endpoint of the Soracom Arc server (format: <IP_ADDRESS_OR_HOSTNAME>:<PORT>).
arcServerPeerPublicKeyStringYesThe WireGuard server public key.

Profile

The profile object contains the AuthKey information that will be used by Soratun to access the Soracom API when bootstrapping using the AuthKey authentication method.

PropertyTypeRequiredDescription
authKeyIdstringYesThe Soracom API AuthKey ID to use.
authKeystringYesThe Soracom API AuthKey secret to use.
endpointstringYesThe Soracom API endpoint to use (https://g.api.soracom.io or https://api.soracom.io).
検索 Escで閉じる / Enterで検索結果