【小ネタ】M1 MacでTelnetを使ってみた

はじめに

こんにちは、大野です。
私はプライベートのPCは現在は2020年に発売された、Apple M1チップ搭載の「MacBook Pro (13-inch)」を使用しています。

現在、「自宅にVPN環境を構築してみた」の記事を執筆中です。

ここで登場するルータが「RTX1200」という、VPNに対応したYAMAHA製の業務用ルーターです。

RTX1200は大方の設定はGUI(管理画面)で可能ですが、CLIで無ければ行えない設定もあります。
RTX1200のCLIにログインするためにはTelnetを使用します。
近年のMacにはデフォルトでTelnetがインストールされていないため、TelnetをMacにインストールし、RTX1200にログインするまでの流れを小ネタとして書いていこうと思います。

Homebrewのインストール

Homebrewとは、macOSにおけるパッケージマネージャーで、LinuxのDebianにおけるAPT、RedhatにおけるYumとDNFに相当するものと言えます。
Homebrewをインストールすることで、Terminalから多くのコマンドやアプリケーションをインストールできるようになります。

インストールは、Homebrewの公式Webサイトにアクセスし、「Install Homebrew」のすぐ下に記載されているコマンドをコピーして、Terminalに貼り付けて実行します。
途中でパスワードやENTERキーの入力を求められますが、指示通りに入力して進めます。

% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
==> Checking for `sudo` access (which may request your password)...
Password:
==> This script will install:
/opt/homebrew/bin/brew
/opt/homebrew/share/doc/homebrew
/opt/homebrew/share/man/man1/brew.1
/opt/homebrew/share/zsh/site-functions/_brew
/opt/homebrew/etc/bash_completion.d/brew
/opt/homebrew

Press RETURN/ENTER to continue or any other key to abort:
==> /usr/bin/sudo /usr/sbin/chown -R ******:admin /opt/homebrew

==> Downloading and installing Homebrew...
remote: Enumerating objects: 37851, done.
remote: Counting objects: 100% (9286/9286), done.
remote: Compressing objects: 100% (159/159), done.
remote: Total 37851 (delta 9123), reused 9257 (delta 9109), pack-reused 28565
Receiving objects: 100% (37851/37851), 18.08 MiB | 8.23 MiB/s, done.
Resolving deltas: 100% (24219/24219), completed with 1474 local objects.
From https://github.com/Homebrew/brew
 * [new branch]            brew-mark                  -> origin/brew-mark
 * [new branch]            bundle-install-euid        -> origin/bundle-install-euid
 * [new branch]            fix_tap_docs               -> origin/fix_tap_docs
 * [new branch]            load-internal-cask-json-v3 -> origin/load-internal-cask-json-v3
   8f6276ed5f..f8b1d1f56c  master                     -> origin/master
 * [new branch]            split_rubydoc_ci           -> origin/split_rubydoc_ci
 * [new branch]            tapioca-patch              -> origin/tapioca-patch
 * [new tag]               4.3.4                      -> 4.3.4
 * [new tag]               4.0.10                     -> 4.0.10
 * [new tag]               4.0.11                     -> 4.0.11
 * [new tag]               4.0.12                     -> 4.0.12
 * [new tag]               4.0.13                     -> 4.0.13
 * [new tag]               4.0.14                     -> 4.0.14
 * [new tag]               4.0.15                     -> 4.0.15
 * [new tag]               4.0.16                     -> 4.0.16
 * [new tag]               4.0.17                     -> 4.0.17
 * [new tag]               4.0.18                     -> 4.0.18
 * [new tag]               4.0.19                     -> 4.0.19
 * [new tag]               4.0.20                     -> 4.0.20
 * [new tag]               4.0.21                     -> 4.0.21
 * [new tag]               4.0.22                     -> 4.0.22
 * [new tag]               4.0.23                     -> 4.0.23
 * [new tag]               4.0.24                     -> 4.0.24
 * [new tag]               4.0.25                     -> 4.0.25
 * [new tag]               4.0.26                     -> 4.0.26
 * [new tag]               4.0.27                     -> 4.0.27
 * [new tag]               4.0.28                     -> 4.0.28
 * [new tag]               4.0.7                      -> 4.0.7
 * [new tag]               4.0.8                      -> 4.0.8
 * [new tag]               4.0.9                      -> 4.0.9
 * [new tag]               4.1.0                      -> 4.1.0
 * [new tag]               4.1.1                      -> 4.1.1
 * [new tag]               4.1.10                     -> 4.1.10
 * [new tag]               4.1.11                     -> 4.1.11
 * [new tag]               4.1.12                     -> 4.1.12
 * [new tag]               4.1.13                     -> 4.1.13
 * [new tag]               4.1.14                     -> 4.1.14
 * [new tag]               4.1.15                     -> 4.1.15
 * [new tag]               4.1.16                     -> 4.1.16
 * [new tag]               4.1.17                     -> 4.1.17
 * [new tag]               4.1.18                     -> 4.1.18
 * [new tag]               4.1.19                     -> 4.1.19
 * [new tag]               4.1.2                      -> 4.1.2
 * [new tag]               4.1.20                     -> 4.1.20
 * [new tag]               4.1.21                     -> 4.1.21
 * [new tag]               4.1.22                     -> 4.1.22
 * [new tag]               4.1.23                     -> 4.1.23
 * [new tag]               4.1.24                     -> 4.1.24
 * [new tag]               4.1.25                     -> 4.1.25
 * [new tag]               4.1.3                      -> 4.1.3
 * [new tag]               4.1.4                      -> 4.1.4
 * [new tag]               4.1.5                      -> 4.1.5
 * [new tag]               4.1.6                      -> 4.1.6
 * [new tag]               4.1.7                      -> 4.1.7
 * [new tag]               4.1.8                      -> 4.1.8
 * [new tag]               4.2.0                      -> 4.2.0
 * [new tag]               4.2.1                      -> 4.2.1
 * [new tag]               4.2.10                     -> 4.2.10
 * [new tag]               4.2.11                     -> 4.2.11
 * [new tag]               4.2.12                     -> 4.2.12
 * [new tag]               4.2.13                     -> 4.2.13
 * [new tag]               4.2.15                     -> 4.2.15
 * [new tag]               4.2.16                     -> 4.2.16
 * [new tag]               4.2.17                     -> 4.2.17
 * [new tag]               4.2.18                     -> 4.2.18
 * [new tag]               4.2.19                     -> 4.2.19
 * [new tag]               4.2.2                      -> 4.2.2
 * [new tag]               4.2.20                     -> 4.2.20
 * [new tag]               4.2.21                     -> 4.2.21
 * [new tag]               4.2.3                      -> 4.2.3
 * [new tag]               4.2.4                      -> 4.2.4
 * [new tag]               4.2.5                      -> 4.2.5
 * [new tag]               4.2.6                      -> 4.2.6
 * [new tag]               4.2.7                      -> 4.2.7
 * [new tag]               4.2.8                      -> 4.2.8
 * [new tag]               4.2.9                      -> 4.2.9
 * [new tag]               4.3.0                      -> 4.3.0
 * [new tag]               4.3.1                      -> 4.3.1
 * [new tag]               4.3.2                      -> 4.3.2
 * [new tag]               4.3.3                      -> 4.3.3
remote: Enumerating objects: 33, done.
remote: Counting objects: 100% (20/20), done.
remote: Total 33 (delta 20), reused 20 (delta 20), pack-reused 13
Unpacking objects: 100% (33/33), 5.60 KiB | 337.00 KiB/s, done.
From https://github.com/Homebrew/brew
 * [new tag]               4.0.29     -> 4.0.29
 * [new tag]               4.1.9      -> 4.1.9
 * [new tag]               4.2.14     -> 4.2.14
Reset branch 'stable'
==> Updating Homebrew...
==> Downloading https://ghcr.io/v2/homebrew/portable-ruby/portable-ruby/blobs/sha256:bbb73a9d86fa37128c54c74b020096a646c46c525fd5eb0c4a2467551fb2d377
################################################################################################################################################################################################### 100.0%
==> Pouring portable-ruby-3.3.2.arm64_big_sur.bottle.tar.gz
Updated 2 taps (homebrew/core and homebrew/cask).
==> Installation successful!

==> Homebrew has enabled anonymous aggregate formulae and cask analytics.
Read the analytics documentation (and how to opt-out) here:
  https://docs.brew.sh/Analytics
No analytics data has been sent yet (nor will any be during this install run).

==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
  https://github.com/Homebrew/brew#donations

==> Next steps:
- Run brew help to get started
- Further documentation:
    https://docs.brew.sh

Homebrewのインストールが完了すると、「brew doctor」コマンドを実行し、「Your system is ready to brew.」と表示されると、Homebrewのインストールと初期設定が完了です。

% brew doctor
Your system is ready to brew.

私のMacではHomebrewをインストールするだけで初期設定が完了しました。
私のmacOSのバージョンは「macOS Sonoma 14.5」です。
macOSのバージョンや環境によっては、手動でHomebrewのPATHを通す必要があるようです。
インストール時に警告やメッセージが出た場合は、それに従って設定を調整するなどの対応が必要な場合があります。

Telnetのインストール

次に、Telnetをインストールします。

Redhat系のyum、dnfのように、「brew install {アプリケーション名}」で簡単にインストールすることが出来ます。

% brew install telnet
==> Downloading https://ghcr.io/v2/homebrew/core/telnet/manifests/302
################################################################################################################################################################################################### 100.0%
==> Fetching telnet
==> Downloading https://ghcr.io/v2/homebrew/core/telnet/blobs/sha256:32fb300ad90af4a38af9f64c7bc790796ecf63deef9cfd0583a030cd8131a9df
################################################################################################################################################################################################### 100.0%
==> Pouring telnet--302.arm64_sonoma.bottle.tar.gz
🍺  /opt/homebrew/Cellar/telnet/302: 5 files, 207.3KB
==> Running `brew cleanup telnet`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

RTX 1200にTelnetでログインする

では、Telnetを導入した目的である、YAMAHA RTX1200にTelnetでログインしてみます。

LinuxでTelnetを実行する時と同じく、telnetコマンドでサーバ、ルータなどの機器にログインすることが出来ます。

RTX1200と同じLANにMacがあるならば、RTX1200のローカルIPアドレスでログイン出来ます。
ログイン時に、RTX1200のパスワードを求められるので入力します。

% telnet 192.168.100.1
Trying 192.168.100.1...
Connected to 192.168.100.1.
Escape character is '^]'.

Password:

RTX1200 Rev.10.01.78 (Wed Nov 13 16:29:42 2019)
  Copyright (c) 1994-2019 Yamaha Corporation. All Rights Reserved.
  Copyright (c) 1991-1997 Regents of the University of California.
  Copyright (c) 1995-2004 Jean-loup Gailly and Mark Adler.
  Copyright (c) 1998-2000 Tokyo Institute of Technology.
  Copyright (c) 2000 Japan Advanced Institute of Science and Technology, HOKURIKU.
  Copyright (c) 2002 RSA Security Inc. All rights reserved.
  Copyright (c) 1997-2010 University of Cambridge. All rights reserved.
  Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, All rights reserved.
  Copyright (c) 1995 Tatu Ylonen , Espoo, Finland All rights reserved.
  Copyright (c) 1998-2004 The OpenSSL Project.  All rights reserved.
  Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) All rights reserved.
  Copyright (c) 2006 Digital Arts Inc. All Rights Reserved.
  Copyright (C) 1994-2012 Lua.org, PUC-Rio.
  Copyright (c) 1988-1992 Carnegie Mellon University All Rights Reserved.
  Copyright (C) 2004-2007 Diego Nehab. All rights reserved.
  Copyright (c) 2005 JSON.org
**:**:**:**:**:**, **:**:**:**:**:**, **:**:**:**:**:**
Memory 128Mbytes, 3LAN, 1BRI

RTX1200のファームウェアのバージョンやMACアドレスなどが表示されれば、ログイン完了です。

プロファイルの設定

試しに、RTX1200の機器の状態を表示するコマンド「show environment」を実行してみました。

しかし、日本語は文字化けしてしまいました。
RTX1200の日本語の文字コードは「Shift_JIS」なので、文字コードが合っていなければ文字化けします。

MacのTerminal(端末)では、プロファイルによって「ターミナル」ウインドウの色、フォント、カーソルスタイル、背景などの外観や、言語環境などの設定を行っています。

「ターミナル」>「設定」>「プロファイル」でプロファイルを開きます。

「詳細」タブを開くと、デフォルトのテキストエンコーディング(文字コード)「Unicode (UTF-8)」に設定されていることが分かります。

テキストエンコーディングを「日本語 (Shift JIS)」に変更し、設定画面を閉じます。

端末を閉じてもう一度開くと、設定が適用されます。
もう一度RTX1200にTelnetでログインして「show environment」を実行してみます。

日本語が文字化けせずに正しく表示されれば成功です。

何度も使う設定は、自分でプロファイルを作成してデフォルトに設定するのもおすすめです。

初期のデフォルトプロファイル「Basic」は一番基本的な設定なので、変更しない方が無難とも言えます。

まとめ

macOSにHomebrewをインストールし、TelnetでRTX1200に接続するところまでと、必要な設定について書きました。

Windowsの場合、コマンドプロンプトのコマンドはLinuxのコマンドと大きく異なるのでLinuxに慣れるとコマンドが難しく感じますが、macOSはLinuxと同じUNIX系OSなので、Linuxで使える多くの基本的なコマンドが使えるので、Linuxに慣れていればTerminalは結構便利です。
Homebrewをインストールするとコマンドなど拡張が行いやすくなるのは良いですね。

おわりに

今回も、私のアイデンティティということで、最後に何かしら趣味の写真を載せてみようと思います。

6月上旬の休日に、原付バイクで亀岡市の湯の花温泉にある旅館の日帰り温泉に行ってきました。
亀岡市と言えば、保津川下りや嵯峨野観光鉄道(トロッコ列車)で有名な、京都市の西にある隣町。
その亀岡市の外れにある湯の花温泉は、マイナーな温泉地ですが、本格的な天然ラジウム温泉です。
ここ最近、温泉宿に泊っておらず、温泉宿が恋しくなる頃、日帰りと言えど近場でも温泉宿の雰囲気を味わえるのは中々良かったです。

では…。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA