ひゃまだのblog

ひゃまだ(id:hymd3a)の趣味のブログ

Tailscaleで楽々在宅ワーク

(2024-03-06 初稿 -2034-03-12 追記)

職場から自宅のサーバ、在宅ワークだと自宅から職場、出張先から職場のサーバ等、常用ではないにしても、アクセスしてファイルを取り寄せたり、送り場合が多々ある。

このようなファイヤーウォールやルータを超えた作業が必要な場合、これまではTeamViewerを利用していた。

TeamViewerは無料でも利用できて大きな不満はなかったが、強いてあげれば以下の2点が不満だった。

  • CUIで済む作業なのに、VNCで画面全体を接続して作業する必要がある
  • 無料のアカウントだと、2〜3時間で1度切断される

sshやscpならば、ターミナルからちょこっと作業するだけで済むのに、画面全体を使って作業することに、少し無駄が多いと感じてしまう。

Tensorflow等、時間が掛かる作業を実施しているときに、突然、サービスを切断される。もちろん、作業は中断せずにバックグラウンドで実行されており、再接続すれば、これまでどおり作業を継続できるのだけど、突然の切断はやはりドキッとすることには間違いない。

そんなことを感じながら、Webで作業していたら、作日(2024年3月5日)、Tailcaleという VPN サービスがあり、無料でも利用できることを知ったので試してみた。

実は、利用し始めて2日目と、まだまだ日が浅いので、筆者の行ったインストールとssh等の簡単な設定を行う。

インストール

インストール方法は、以下の本家のサイトに詳細な記述があるので、そちらを参照して欲しい。

以下は、筆者が主に使っているDebianRaspberry PiAndroidWindows 11のインストール方法について記述する。

Debianでのインストール

Debian 12(Bookworm)での設定は以下を参照のこと。

ちなみに、他のディストリビューションでも、以下のサイトに記述があるので問題なくインストール可能と思われる。

念のために、行った設定を以下に記述する。

gpgのダウンロードとaptの設定

$ curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
$ curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list

Tailscaleのインストール

$ sudo apt-get update
$ sudo apt-get install tailscale

PCの接続とブラウザでの認証

$ sudo tailscale up

ipv4のアドレス確認(しばらくすると、ブラウザ上でも確認できる)

$ tailscale ip -4

Raspberry Piでのインストール

Raspberry Piのインストールも、ほぼdebianと同じで、以下を参照のこと。

しかい、なぜか2024-03-06時点では、Bookwormの記述がなかったので、Webを検索して以下のサイトを見つけたので、記述のとおり行った。

# Add Tailscale's GPG key
$ sudo mkdir -p --mode=0755 /usr/share/keyrings
$ curl -fsSL https://pkgs.tailscale.com/stable/raspbian/bookworm.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
# Add the tailscale repository
$ curl -fsSL https://pkgs.tailscale.com/stable/raspbian/bookworm.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list
# Install Tailscale
$ sudo apt-get update && sudo apt-get install tailscale
# Start Tailscale!
$ sudo tailscale up

Androidでのインストール

筆者は、長期の出張などではノートPCを持参することが多いが、短期の出張ではより軽量なAndroidタブレットを持参することが多い。

以下、サイトの記述から引用。

Download · Tailscale

  1. Install Tailscale on Android
  2. Download and the Tailscale app from the Play Store
  3. Accept the prompts to install a VPN configuration
  4. Sign up with your team’s email address

Windows 11でのインストール

Windowsのインストールは、Androidと同様に簡単で、以下のページのとおり実施する。

  1. Tailscaleをダウンロード
  2. ダウンロードしたTailscaleをインストール
  3. Googleアカウント等でログインして、認証

Tips

ここでは、Tailscaleを利用する上で、筆者が行っているTipsを紹介する。

WakeOnLanの活用

筆者のTailscaleの利用方法は、自宅ではRaspberry Piのみを常時起動させており(踏み台サーバと言うらしい)、Raspberry PiからWakeOnLanを利用して、デスクトップPCを起動させ、起動後は、デスクっトプPCとssh接続をして利用している。

起動に時間が掛かるが、消費電力や発熱からの火事等を考えると致し方ない待ち時間だと考えている。

WakeOnLanについては、過去に以下の記事を書いたので参照願う。

と書いたものの、ちょっと情報が古すぎたので、以下のサイトを参考に

筆者は、以下のスクリプトを常時起動させているRaspberry Piにインストールして、目的のPCをWakeOnLanで起動後、利用するようにしている。

$cat ~/bin/wol
#!/usr/bin/sh
# wol ver0.01 2004/02/03-
# Written by H.Yamada
case $1 in
    kawa | KAWA | Kawa ) echo "Wakeup kawa"
     wakeonlan -i 192.168.xxx.255 xx:xx:xx:xx:xx:xx ;;
    niji | NIJI | Niji ) echo "Wakeup niji"
     wakeonlan -i 192.168.xxx.255 xx:xx:xx:xx:xx:xx ;;
    * ) echo "error:  $1 is unknown machine"
    echo "Usage: wol machinename"
    exit 1 ;;
esac
exit 0

もちろん、PC名やMacアドレスは、ご自分の環境に合わせてね。

sshの設定

sshについても、以下のページに記述した。

ここでは、~/.ssh/configに以下の記述をすると、簡単にリモートPCに接続できること飲みを紹介する。

$ vi ~/.ssh/config
    host hoge                    # 覚えやすいホスト名のalias
    HostName remote.example.com
    User user                    # リモートホスト側のユーザー名
    ForwardX11 yes               # X11GUIを表示

Forward X11をyesにすることにより、リモートPCのGUIソフトウェアを手元のPCに表示・操作することができる

ssh接続でリモートPCのpcmanfm(ファイルマネージャ)を起動

(2024-03-12追記)

知らなかったのだが、Windows 11では、Linux同様にconfigファイルを使うことができる。

具体的には、C:\Users\hoge\.ssh\config ファイルを作成し、上記のサーバごとのリストを書き込めば良い。

(追記終了)

多段のsshの方法

前節で、~/.ssh/configの設定の記述をしたのは、多段のsshの設定を記述するためである。

前述のとおり、筆者はRaspberry Piを踏み台サーバにして、自宅内のPCに接続するため多段のsshを記述すると、直接目的PCを操作しているかのように自宅内のPCにアクセスできるようになる。

踏み台サーバをhoge、目的サーバをfugaとした場合、多段サーバのconfigは以下のとおり。

$ vi ~/.ssh/config
    host hoge                    # 覚えやすいホスト名のalias
    HostName remote.example.com
    User user                    # リモートホスト側のユーザー名
    ForwardX11 yes               # X11GUIを表示

    host fuga
    Hostname 100.122.41.103
    User user
    ProxyCommand ssh -W %h:%p hoge
    ForwardX11 yes               # X11GUIを表示

その他

Tailscaleには、筆者がまだまだ知らない機能がたくさんある。

TailscaleをインストールしたPCのサブネットを登録する

TailscaleをインストールしたPC(Raspberry Pi)のサブネットを登録すれば、各ネットワークに1台だけTailscaleをインストールして、他の多くのPCをインストールしなくて済みそう…

たぶん、多段sshも不要になると思われる。

TailscaleをインストールしたPCをデフォルト・ゲートウェイにする

公衆Wi-Fi等のセキュリティが甘い場所でWeb操作する場合に、一度自宅等にTailscaleで接続してから、安全なネットワークで操作すると安心である。

 

上記の他にもたくさん便利な機能がありそう…

筆者が試して、便利であれば、追記する。

 

関連ページ

購入したデスクトップPCに合わせてディスプレイ(Dell G3223D)も新しくした

(2024-03-04 初稿 )

先日、デスクトップPCを購入した記事をアップした。

このデスクトップには、OSとしてDebian 12(bookworm)をインストールし、nVIDIAのグラボ(nVIDIA GeForce RTX 4060 Ti)のDriverをインストールして快適に動作させている。

Tensorflow等の解析をやりたくて、そこそこGPUの付いたデスクトップにしたのだけど、到着してみるときれいなグラフィックを表示させてみたくなった。

ちなみに、わが家には24インチのディスプレイが2台あるが、いずれも解像度は1920✕1080で、接続端子もHDMIとD-sub15しか搭載していない。

せっかくならば、きれいなグラフィック表示を見てみたい物欲が抑え切れず、勢いでDellの31.5インチのディスプレイを購入してしまった。

ちなみに、上記はAmazon楽天市場のリンクが貼ってあるけど、実際にはDellの直販サイトで購入し、代金は34,799円だった。

梱包も丁寧だったし、組み立てもとても簡単だった。

早速、購入したデスクトップPCに接続して、Youtube等を最高解像度(1080)でみたり、いつも利用している Lxterminal、GvimGoogle chrome等を立ち上げても、広い広い。

いつもは、3つのアプリを隙間なくびっしりと並べて使っているけど、いつもよりもフォントを大きく設定しても、まだまだ隙間があってびっくり。

購入したディスプレイでYoutubeの4K映像を見ている

いつもよりフォントを大きくしても、まだまだ隙間がある広いディスプレイ

接続も、ディスプレイポート同士をつなげているので、伝送速度もそれなりに出ていると思う。

ただし、筆者はゲームをやらないので、猫に小判、または、豚に真珠なのかもしれない。

早く、Tensorflow環境を構築して、本来の目的にあった使い方をしなくては… (^^ゞ

関連ページ

 

Debian 12(Bookworm)でSATAハードディスクの増設

(2024-03-03 初稿)

先日、新しいデスクトップPCを購入した記事をアップした。

デスクトップPCの詳細については、上記ページに譲るとして、このページでは、購入したデスクトップPCに新しくSATAのハードディスク(HDD)を増設したので、増設方法について記述する。

なお、筆者は以前、以下のページにDebianにHDDを移設した記事を書いたが、2020年のことなので、まだDebianが Strech または Buster の頃で、Debianも変化(Bookworm)したが、それ以上にマザーボードやハードディクスの状況が変化しているので、自分用のメモとして記述する。

ちなみに、結論から言うと、Debianマザーボード接続方法もそれほど大きな変化はなかったが、そもそも接続先がわからない等と困ったので、まずは接続から説明する。

購入したデスクトップPCには、1GBのSSDが付いていたが、dockerやlxdの利用を考えると、容量が不足することが想定されたので、今回は、WD80EAAZ [3.5インチ内蔵HDD / 8TB / 5640rpm / 256MBキャッシュ]というウエスタンデジタルの8TBのハードディスクを17,980円(税込)で購入した。

参考までに、筆者の作業した環境を以下に示す。

$ cat /etc/debian_version 
12.5
$ uname -a
Linux grp 6.1.0-18-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01) x86_64 GNU/Linux

マザーボードとハードディスクの接続

マザーボードとハードディスクの接続

上の写真の左上の赤丸で囲んだ部分が、SATA接続の端子で、3列✕上下2段あるので、合計6個の端子がある。
接続したのは、マザーボードの刻印をよく読んで、写真のとおり真ん中の上段にした。

BIOSで確認したが、やはりSATAの1番になっていた。

ちなみに、このデスクトップPCには、SSDが付属していたが、どこにつながっているのかは確認できなかった。(^_^;)

SATA HDDの接続は、右下の赤丸の部分で、通常のSATA HDDと同様に接続すれば良い。

再度、Webを検索したら、以下のPDFが見つかった。以下のPDFでも、SATAの順番は間違いないことが確認できた。

HDDのデバイス名の確認とパーティション作成

最近のfdiskは、2TBを超えるHDDでも大丈夫なようだが、ここでは、partedを用いてデバイス名の確認とパーティションの作成を行った。

なお、作業は、以下のサイトを参考に実施した。多謝。

まずは、以下のコマンドでデバイス名を確認。

$ sudo parted -l
(前略)
Disk /dev/sda: 7.28 TiB, 8001563222016 bytes, 15628053168 sectors
Disk model: WDC WD80EAAZ-00B
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
(後略)

/deb/sdaとして認識されていた。

※sdaは最初のHDDであることが多いので、以下の作業は、ご自分のPCで確認してから作業すること。

続いて、パーティションの作成

$ sudo parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.

パーティションの形式はGPT(GUIDパーティションテーブル)にする

(parted) mklabel gpt

パーティションを作成

ここでは、全てをひとつのパーティションにする

(parted) mkpart
Partition name?  []?  File system type?  [ext2]? ext4 Start? 0% End? 100%

以上で、パーティションの作成は終了

ext4でフォーマット

続けて、作成したパーティションext4でフォーマットする。

$ sudo mkfs.ext4 /dev/sda

UUIDの確認

UUIDの確認方法はいくつかあるが、ここでは、blkidコマンドを使う。

$ sudo blkid
(前略)
/dev/sda: UUID="54906580-a33f-485b-82xx-06659747xx04" BLOCK_SIZE="4096" TYPE="ext4"

上記とおりUUIDが認識されていた(一部文字を変更してある)。

起動時からHDDをマウントする

筆者は増設したHDDを常時利用するので、起動時からマウントされるように/etc/fstabに記述する。

まずは、マウントポイントの作成

$ mkdir /home2     # 好きな場所に作成

fstabの修正

$ sudo /etc/fstab
# 最後に以下を追記
# add H.Y 2024-03-02
UUID="54906580-a33f-485b-82xx-06659747xx04" /home2    ext4    defaults 0 0   

再起動後、以下のとおり、エラーがないか確認

$ sudo dmesg | grep error
$ sudo ls /home2

元々のディレクトリを増設したHDDに移動

筆者は、いつも増設したHDDに、元から利用しているディレクトリを移動後、シンボリックリンクを使って利用するようにしている。

例えば、~/Documentsディレクトリを移動し、シンボリックリンクを貼る方法は以下のとおり。

$ sudo mv ~/Documents /home2/
$ sudo chown $USER:$USER /home2/Documents
$ ln -s /home2/Documents .

特に、容量が大きくなることが予想されるDocuments、Downloads、Music、Pictures、Videos等のディレクトリは、移動後シンボリックリンクで利用すると良い。

増設HDDにゴミ箱の設置

新しく増設したHDDにもゴミ箱があれば、万が一のときにも便利。

以下のとおり、増設HDDにもゴミ箱を作成することができる。

$ sudo mkdir -m 1777 /home2/.Trash

また、気づいたことがあれば追記する。

以上、DebianでHDDを増設する方の役に立てば幸い。

関連ページ

Debian起動時のNumlock Onが気になったので、removeした

(2024-03-01 初稿)

先日、新しいデスクトップPCを購入したので、いろいろインストールしている。

何かをインストールすると、確認のために再起動するのだけど、テンキーが付いていないキーボードだと、起動するたびにNumlockがOnになって、いちいちOffにするのが面倒になる。

設定で、NumlockをOnにしない方法もあるようだが、使わないものは極力インストールしないのがDebianのポリシーだと、どこかで見たような気がして、思い切ってアンインストールした。

アンインストール方法は、以下のとおり。

sudo apt remove numlockx

どなたか、同じように、面倒だと感じている人のためになれば幸い。

関連ページ

Debian 12(bookworm)でグラボ(nVIDIA GeForce RTX 4060 Ti)のドライバをインストール。ドライバが動かない場合の対策(secure boot)

(2024-02-29 初稿)

昨日(2024-02-28)、購入したツクモBTO PCが届いたので、Debian 12(Bookworm)をインストールし、グラフィックドライバを設定したので、メモを残す。

まずは、インストールしたDebianの環境。

$ cat /etc/debian_version 
12.5
$ uname -a
Linux grp 6.1.0-18-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01) x86_64 GNU/Linux

購入したデスクトップPC(G-GEAR GA5A-D230/B)の詳細については、以下を参照のこと。

ドライバの確認とインストール

Debianインストールそのものは、他のサイトをご覧になっていただくこととして、このページでは、nVIDIAのグラフィックドライバのインストールのみを記載する。

インストールは、基本的に以下のページのとおり行った。

まずは、nvidia-detectをインストールして、グラフィックボードと対応するドライバの確認。

$ sudo apt install nvidia-detect
$ nvidia-detect
Detected NVIDIA GPUs:
2b:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD106 [GeForce RTX 4060 Ti] [10de:2803] (rev a1)
Checking card:  NVIDIA Corporation AD106 [GeForce RTX 4060 Ti] (rev a1)
Your card is supported by the default drivers.
It is recommended to install the
    nvidia-driver
package.

ということで、nvidia-driverをインストールすれば良いと出た。

ただし、上記サイトによると、事前にheaderファイルなどをインストールせよとのこと。

$ sudo apt install linux-headers-amd64

無事にインストールできたら、nvidia-driverとファームウェアをインストールする。

$ apt install nvidia-driver firmware-misc-nonfree

関連するパッケージとともにインストールされ、無事にドライバのコンパイルも終了。

途中、ドライバの更新を完了するには、「再起動が必要だよ」とのメッセージがあるので、ドライバインストールが終了したら再起動。

再起動とトラブル対策

「再起動、あれ(・・?」「ドライバが動いていなくて、ディスプレイの解像度がおかしい…(T_T)」

やっぱり、動かなかったか…と、途方にくれて、それでも、Webを検索したら、4060でなくて、4080の情報だけど以下の情報がヒットした。

簡単に書くと、BIOSの設定画面で、「secure boot Disiable」を「OK」にして、secure bootを無効にする。

nVIDIAドライバをインストール後のDebian(LXDE環境)

nVIDIAドライバの正常動作確認

ダメ元で、やってみたら正常動作するようになったので、困っている方の参考になればと思いアップした。

ちなみに、参考までに secure bootを有効にしたままで、ドライバを正常動作させる方法が以下のサイトに記述があったが、筆者は試していないので参考までに。

関連ページ

 

デスクトップPC(G-GEAR GA5A-D230/B)がわが家にやってきた

(2023-02-29 初稿)

久しぶりにデスクトップPC(G-GEAR GA5A-D230/B)を購入した。PCの購入は、直近では2021年に購入したノートPC(ASUS Vivobook 512JA)。

デスクトップPCでは、2020年6月30日に購入したもの(パソコン工房 BTO STYLE-M1B4-R535-RXS)からなので、もう3年以上前のこと。

2020年に購入したPCでも、普段の利用には全く支障がない。ただし、一応nVIDIAのグラフィックボードを搭載しているが、かなり初期のボードなので、TensorFlowなどのGPUガリガリ使う作業には向いていないのが不満だった。

もちろん、職場に行けばそれなりのPCがあるが、この3月で仕事を辞める予定なので自宅でもTensorFlow等のAI解析環境を整えたかったのが主な購入理由。

ちなみに、筆者は、Debianをインストールするので、デスクトップPCはBTO製でOS無しのものをいつも購入している。

インストール中で仮置きの購入したPC

Debianをインストールするので、ハードウェアは比較的古めのものを選んでいるが、インストールは以下の2点を注意した。

  1. BIOSは、UEFIではなく、CSMを選択
  2. グラフィックボードのインストール

1番目については、もしかしたら最近のDebianは、以下のサイトにあるとおり、UEFIをサポートしているかもしれないが、筆者は試したことがないので、互換性の高いCSMを選択している。

2番目のグラフィックボードのインストールは、ドライバが正常動作しないと購入した意味が半減するので、慎重に行った。

なお、実際にdebiannVIDIAドライバをインストールしてトラブルにあったので、この記事とは別に以下のページに記述したので参照願う。

nVIDIAドライバインストール後のDebian 12(LXDE環境)

購入したデスクトップPCのスペック

項目 詳細
商品名 G-GEAR GA5A-D230/B
OS 無し
CPU AMD Ryzen 7 5700X
Mother Board AMD B550 ATXMSI B550-A PRO)
Memory 32GB
Graphic Board NVIDIA GeForce RTX 4060 Ti / 16GB
SSD [M.2 Gen4] 1TB
Drive DL対応 DVDスーパーマルチ
電源 CWT製 GPS750S-T (定格750W)
PC Case G-GEAR ATX Middle Tower Case

購入直後のインプレッション

購入直後で、それほど負荷の掛かる作業はしていないが、とにかく静かで、これならば寝室で稼働させることも可能だと思われた。

関連ページ

Raspberry Pi(ラズパイ)のWaylandではgrim(grimshot)でスクリーンショットを撮る

(2024-02-25 初稿)

先日、Raspberry Pi OSでスクリーンショットを撮ろうと思ったら、うまく撮ることができなかった。

ちなみに、これまでのRaspberry Pi(ラズパイ)のデフォルトのスクリーンショットを撮るソフトウェアはscrot。Debianでは、gnome screenshotを使っている。

Webで調べてみると、最近のRaspberry Pi OSでは、X11ではなく、Waylandを利用しているとのこと。

まずは、現在、どちらを使っているかの確認方法。

$ echo $XDG_SESSION_TYPE
x11  or  wayland

自分の環境が確認できたところで、x11の場合は、これまでどおりscrotやgnome screenshotを利用すれば良く、waylandの場合は、grimまたはgrimshotを利用する。

ちなみに、筆者のラズパイでは、grimがデフォルトでインストールされていた。

ただし、grimの使い方がわからないので、以下のサイトで確認した。

上記サイトに詳細な使い方の記述があるが、以下に簡単な使い方を示す。

$ grim                     #画面全体
$ grim -g "10,20 300x400"  #指定する領域

えっと、指定する領域のスクリーンショットは、座標がわからないと撮れないので、以下のとおり、Waylandの領域指定のコマンドラインユーティリティであるslurp(cli utility to select a region in a Wayland compositor)をインストールして利用したほうが良い。

$ sudo apt install slurp

で、インストール後は、以下のとおりで領域を指定してスクリーンショットを撮ることができる。

$ grim -g "$(slurp)"

また、wl-clipboardをインストールすれば、以下のとおり、ファイルに保存せずクリップボードに経由でコピペできる。

$ sudo apt install wl-clipboard
$ grim - | wl-copy

さらに、grimshotを用いると、指定する領域をクリップボード経由で貼り付けることができる。

$ sudo apt install grimshot
$ grimshot copy area

grimshotの詳しい使い方は、man grimshotで確認してね。

ただし、筆者が使ってみた範囲では、grim や grimshot copy window でアクティブなwindowのスクリーンショットの取得がうまくできない… (・・?

また何か良い方法が見つかったら、アップする。

 

関連ページ