カテゴリー: PC

  • PuTTYでCloudflare Tunnelを使って自宅のSSHサーバに接続する

    Cloudflare Tunnelトンネルを使うとプライベートIPアドレスしか持たないような環境でも外部からアクセスが可能になります。

    HTTP/HTTPSの場合は簡単で、Cloudflaredでドメインの設定(ネームサーバー等。たくさん記事があるので省略)を終えたら、Cloudflaredのダッシュボードから次を開きます。

    • Access
      • Tunnels
        • Create a tunnel

    これで割り当てたドメイン名でアクセスできるようになります。
    HTTPSも自動で設定されているのでとても楽です。

    SSHの場合はもうひと手間必要です。

    • [Connect with SSH through Cloudflare Tunnel]()

    詳しくは上記の記事の「Connect to SSH server with cloudflared access」の通りですが、クライアント側にもcloudflaredを入れる必要があります。

    WindowsでPuTTYを使っている場合は、次を参考にしました。

    user7633
    ’22 年 2月

    Simply in putty, go to proxy settings, select local, and configure the commandline to be

    cloudflared.exe access ssh –hostname %host

    (no \n at the end) and save the session as normal. works for me

    まずWindows用のfloudflaredをインストールします。

    なぜか64bitインストーラーが起動しても進まないので、手っ取り早くインストールするならコマンドプロンプトで次のようにする。

    > winget install --id Cloudflare.cloudflared
    見つかりました cloudflared [Cloudflare.cloudflared] バージョン 2023.10.0
    このアプリケーションは所有者からライセンス供与されます。
    Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
    ダウンロード中 https://github.com/cloudflare/cloudflared/releases/download/2023.10.0/cloudflared-windows-amd64.msi
      ██████████████████████████████  17.1 MB / 17.1 MB
    インストーラーハッシュが正常に検証されました
    パッケージのインストールを開始しています...
    インストールが完了しました

    AMD64版なのになぜかインストールされたのは C:\Program Files (x86)\cloudflared\cloudflared.exe です。
    このパスを残しておきます。

    PuTTYの接続画面で次の項目を設定します。

    • Connection

      • Proxy
    • Proxy type: Local(run a subprogram to connect)

    • Command to send to proxy(for some types): "cloudflared.exeへのパス" access ssh –hostname %host`

    PuTTYはホスト名だけCloudflare Tunnelで設定したものにして、他の設定はローカルで接続するのと同等でOK
    公開鍵認証で接続できました。

  • docker-compose で建てた CodiMD(HackMD) を 1.3.1 から 2.0.1 に更新する

    docker-compose で建てた CodiMD(HackMD) を 1.3.1 から 2.0.1 に更新する

    以前の記事の最新版です。

    更新時に注意するバージョンについて次に挙げるページで言及されていますが、1.1.0 以降は特に表立った手順は必要ないようです。

    前回の記事の後追いなので、詳細は省略して残します。

    手順

    PosgreSQL データのバックアップ

    不要ですが念のため。

    $ cd docker-hackmd
    $ sudo docker-compose exec database pg_dump hackmd -U hackmd  > backup.sql

    コンテナ削除

    $ sudo docker-compose down
    Stopping docker-hackmd_app_1      ... done
    Stopping docker-hackmd_database_1 ... done
    Removing docker-hackmd_app_1      ... done
    Removing docker-hackmd_database_1 ... done
    Removing network docker-hackmd_backend

    docker-compose.yml を変更

    イメージの指定を 2.0.1 に変更します。
    app: 下の image: hackmdio/hackmd:1.2.0image: hackmdio/hackmd:2.0.1 に書き換えます。

    新しいイメージの取得

    $ sudo docker-compose pull
    Pulling database ... done
    Pulling app      ... done

    コンテナ作成

    $ sudo docker-compose up -d
    Creating network "docker-hackmd_backend" with the default driver
    Creating docker-hackmd_database_1 ... done
    Creating docker-hackmd_app_1      ... done

    失敗

    一見うまくいっているように見えていますが、appのコンテナが落ちています。

    $ sudo docker-compose ps
              Name                        Command                State       Ports
    --------------------------------------------------------------------------------
    docker-hackmd_app_1        /home/hackmd/app/docker-en      Restarting
                               ...
    docker-hackmd_database_1   docker-entrypoint.sh postgres   Up           5432/tcp

    原因調査

    $ sudo docker logs docker-hackmd_app_1
    Error: value of env: CMD_DB_URL is empty!Error: value of env: CMD_DB_URL is empty!Error: value of env: CMD_DB_URL is empty!Error: value of env: CMD_DB_URL is empty!Error: value of env: CMD_DB_URL is empty!Error: value of env: CMD_DB_URL is empty!Error: value of env: CMD_DB_URL is empty!Error: value of env: CMD_DB_URL is empty!Error: value of env: CMD_DB_URL is empty!Error: value of env: CMD_DB_URL is empty!

    環境変数が一つだけ変更されていました。
    HMD_DB_URLCMD_DB_URL に変更すればOKです。

    コンテナ再生成

    $ sudo docker-compose down
    Stopping docker-hackmd_app_1      ... done
    Stopping docker-hackmd_database_1 ... done
    Removing docker-hackmd_app_1      ... done
    Removing docker-hackmd_database_1 ... done
    Removing network docker-hackmd_backend
    $ sudo docker-compose up -d
    Creating network "docker-hackmd_backend" with the default driver
    Creating docker-hackmd_database_1 ... done
    Creating docker-hackmd_app_1      ... done
    
    $ sudo docker-compose ps
             Name                   Command           State           Ports
    --------------------------------------------------------------------------------
    docker-hackmd_app_1      /home/hackmd/app/docke   Up      0.0.0.0:3000->3000/tcp
                             r-en ...
    docker-                  docker-entrypoint.sh     Up      5432/tcp
    hackmd_database_1        postgres

    これで元通り問題なく使えました。

  • さくらのレンタルサーバーで Redis 5.0.8 を使う

    Redis 3.2.x の記事はいくつもありますが、現在の Stable である 5.0.8 に関しての記事がなかったので記録します。

    セットアップ手順

    ソースのダウンロードと展開

    % http://download.redis.io/releases/redis-5.0.8.tar.gz
    % tar xvzf redis-5.0.8.tar.gz

    ビルド前準備

    Redis には configure がありません。
    src/Makefile のインストールパスを直接編集します。

    PREFIX?=/usr/localPREFIX?=$(HOME)/usr/local とします。

    ### 省略 ###
    PREFIX?=$(HOME)/usr/local
    ### 省略 ###

    ビルドとインストール

    % gmake
    % gmake install

    Warning はいくつも出ますが、Error は発生していません。

    動作確認

    % $HOME/usr/local/bin/redis-server -v
    Redis server v=5.0.8 sha=00000000:0 malloc=libc bits=64 build=7ae0b2bf8de7e59e

    起動手順

    原始的な方法ですが、nohup とバックグラウンドプロセスを組み合わせて起動します。

    % nohup $HOME/usr/local/bin/redis-server < /dev/null >& /dev/null &

    動作確認

    redis-cli を実行します。

    % $HOME/usr/local/bin/redis-cli
    127.0.0.1:6379> exit
    %

    プロンプトが表示されれば成功です。

    参考

  • さくらのレンタルサーバーで Python 3.6.10 をインストール

    さくらのレンタルサーバーで Python 3.6.10 をインストール

    さくらインターネットのレンタルサーバーは標準で Python 2 が使えます。
    しかし、Python 3 への移行が進んだ現在では、できれば Python 3 系列を使いたいです。

    既に先人が残した記事が多くありますが、pyenv を使った記事が多いため、やや煩雑に感じます。
    純粋に Python 3 を使うための手順を残します。

    必要なもの

    • レンタルサーバーのスタンダードプラン以上
      • SSH で作業するので必須です

    手順

    SSH のログイン

    さくらインターネットの説明を確認して SSH でログインしてください。

    Python 3.6.10 のダウンロードと展開

    上記リリースページからソースコード(Gzipped source tarball)を取得します。

    % wget https://www.python.org/ftp/python/3.6.10/Python-3.6.10.tgz
    % tar xvzf https://www.python.org/ftp/python/3.6.10/Python-3.6.10.tgz

    ビルドとインストール

    不要かもしれませんが、インストール先を用意しておきます。

    % mkdir -p $HOME/usr/local/python

    インストール先を指定して configure, make します。

    % ./configure CPPFLAGS="-I/usr/local/ssl/include" LDFLAGS="-L/usr/local/ssl/lib" --prefix=$HOME/usr/local/python
    % make
    % make install

    動作確認

    % $HOME/usr/local/python/bin/python3 -V
    Python 3.6.10
    % $HOME/usr/local/python/bin/pip3 -V
    pip 18.1 from /home/username/usr/local/python/lib/python3.6/site-packages/pip (python 3.6)

    試しに pip でパッケージをインストールして、python で import できるか試してみます。

    % $HOME/usr/local/python/bin/pip3 install bottle
    Collecting bottle
      Downloading https://files.pythonhosted.org/packages/e9/39/2bf3a1fd963e749cdbe5036a184eda8c37d8af25d1297d94b8b7aeec17c4/bottle-0.12.18-py3-none-any.whl (89kB)
        100% |################################| 92kB 8.8MB/s
    Installing collected packages: bottle
    Successfully installed bottle-0.12.18
    You are using pip version 18.1, however version 20.1b1 is available.
    You should consider upgrading via the 'pip install --upgrade pip' command.
    % $HOME/usr/local/python/bin/python3
    Python 3.6.10 (default, Apr 27 2020, 12:00:08)
    [GCC 7.4.0] on freebsd11
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import bottle

    問題ありませんね。

    参考

  • Raspbian (Debian buster) のタイムゾーンを JST にする

    現在のタイムゾーンを確認する

    timedatectl を使います。root権限は不要です。

    pi@raspberrypi:~ $ timedatectl
                   Local time: 水 2020-04-22 02:15:09 BST
               Universal time: 水 2020-04-22 01:15:09 UTC
                     RTC time: n/a
                    Time zone: Europe/London (BST, +0100)
    System clock synchronized: yes
                  NTP service: active
              RTC in local TZ: no

    有効なタイムゾーンを確認する

    timedatectl list-timezone を実行します。

    pi@raspberrypi:~ $ timedatectl list-timezones
    Africa/Abidjan
    Africa/Accra
    Africa/Addis_Ababa
    Africa/Algiers
    Africa/Asmara
    Africa/Bamako
    (省略)

    数が多いので Asia/Tokyo があるかを確認するにはパイプで grep します。

    pi@raspberrypi:~ $ timedatectl list-timezones | grep Tokyo
    Asia/Tokyo

    タイムゾーンを変更する

    Asia/Tokyo に変更するには timedatectl set-timezone Asia/Tokyo を実行します。
    root権限が必要です。

    pi@raspberrypi:~ $ sudo timedatectl set-timezone Asia/Tokyo

    トラブルシュート

    ==== AUTHENTICATING FOR org.freedesktop.timedate1.set-timezone === と表示された

    timedatectl set-timezone を一般ユーザで実行すると表示されます。
    root権限を持つユーザか、sudoで実行してください。

    システムのタイムゾーンを設定するには認証が必要です。 と表示された

    timedatectl set-timezone を一般ユーザで実行すると表示されます。
    root権限を持つユーザか、sudoで実行してください。

    Authentication is required to set the system timezone. と表示された

    timedatectl set-timezone を一般ユーザで実行すると表示されます。
    root権限を持つユーザか、sudoで実行してください。

    一般ユーザで timedatectl set-timezone を実行しても何も表示されない

    変更前と変更後のタイムゾーンが同一だと何も表示されません。

  • 4種類ある TrackPoint のキャップはどれを買えばいいのか

    4種類ある TrackPoint のキャップはどれを買えばいいのか

    2020-04-22 追記

    指摘されて知りましたが、スーパーロープロファイルのキャップよりも更に背の低いキャップがあるそうです。

    補足情報です
    ・X1C7(2019)からスーパーローよりさらに低くなりました
    ・X1T3は1,2と形状が異なっているようです
    参考:https://t.co/x2e6sgpk8z

    — Saoto (@saoto28) April 5, 2020

    また、最新の対応表は「アクセサリー/オプション互換性ガイド (OCM)」に掲載されていることも教えていただきました。

    最新4月号OCMにX1C7情報が載っていました。https://t.co/EGA60AM8xA
    高さ2mmから6mmまでほぼ1mm間隔で出そろったので、これ以上は増えないのではと思います

    — Saoto (@saoto28) April 5, 2020

    @saoto28 さん、教えていただきありがとうございました。


    ThinkPad ユーザーがいつも困る TrackPoint のキャップの種類についてまとめます。

    現状販売されている TrackPoint のキャップには4種類の高さがあります。

    この中でウルトラロープロファイルだけが特殊で、「ThinkPad X1 Tablet Thin キーボード」にのみ使われています。

    次の写真は通常高、ロープロファイル、スーパーロープロファイルを比べたものです。

    見ての通り、通常高のものとロープロファイルは同じ軸受け形状をしています。
    そのため、ロープロファイルのキャップを通常高の代りに使えます。

    スーパーロープロファイルはそもそも軸形状が全く異なるため、通常高やロープロファイルとは全く互換性がありません。

    どの ThinkPad がどのキャップを使うのかをまとめましたが、Lenovo の対応表では3桁型番6世代目しか載っていなかったため、現行機種までをカバーするものではありません。
    唯一、ThinkPad X280 に関しては実際に使っているので載せてあります。

    通常高を使う製品

    • ThinkPad X230 以前
    • ThinkPad E530 以前
    • ThinkPad T430/T530 以前
    • ThinkPad L430/L530 以前
    • ThinkPad W 530 以前
    • ThinkPad X1 Carbon (2012)

    ロープロファイルを使う製品

    • ThinkPad X240 – X260
    • ThinkPad E540 – E550
    • ThinkPad T440 – T450/T540 – 550
    • ThinkPad L540 – L560
    • ThinkPad W540 – W550
    • ThinkPad X1 Carbon (2014-2015)
    • ThinkPad Yoga (2014)
    • ThinkPad Yoga 12
    • ThinkPad Yoga 260
    • ThinkPad Helix (2013)

    スーパーロープロファイルを使う製品

    • ThinkPad T460s
    • ThinkPad X1 Carbon (2016以降)
    • ThinkPad X1 Yoga
    • ThinkPad 13
    • ThinkPad X280

    ウルトラロープロファイルを使う製品

    • ThinkPad X1 Tablet Thin キーボード

    補足

    タイトルでは4種類と書きましたが、通常高のキャップには形状が異るキャップが3種あるため、正確にはもっとあります。
    ただ、現状では「ソフトドーム」と呼ばれている形状が一般的で、全てのキャップに共通している形状であるため、これに絞っています。

    参考

  • 2020-02-22 に注文した ThinkCentre M75q-1 Tiny が届くまで

    2020-02-22 に注文した ThinkCentre M75q-1 Tiny が届くまで

    仕事で使う PC として2020年2月22日に ThinkCentre M75q-1 を Lenovo 直販で数台注文しました。
    カートに入れた時点では3-4週間で出荷予定の表示でしたが、見積を保存しておくと優先手配のメールが来て1-2週間となりました。
    中国は大混乱の状態ですが、本当に予定通りに届くのか、記録していきます。

    決済はクレジットカードで行いました。

    大まかな構成は以下の通り。少し構成を変えたものも同時に注文しています。

    • Windows 10 Pro
    • Office Home & Business 2019
    • Ryzen 5 Pro 3400GE
    • 8GB DDR4 2666 SoDIMM
    • 128GB M.2 2242 NVMe TLC
    • 第3映像出力端子は無し
    • キーボード、マウス、ダストフィルタ、ツールレスは無し
    • ThinkVision S22e-19

    結局、1ヶ月を過ぎてから到着しましたが、むしろこの混乱の中、1ヶ月で届いてとてもありがたく思いました。

    file

    1. 発注: 2020年2月22日(土)
    2. 工場出荷: 2020年3月17日(火)
    3. 国内出荷: 2020年3月25日(水)
    4. 受取: 2020年3月26日(木)

    file