タグ: サーバー

  • Next.js で Recoil を使いたい TypeError: Cannot destructure property ‘ReactCurrentDispatcher’ of ‘react__WEBPACK_IMPORTED_MODULE_0___default(…).__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED’ as it is undefined.

    Next.js で Recoil を使いたい TypeError: Cannot destructure property ‘ReactCurrentDispatcher’ of ‘react__WEBPACK_IMPORTED_MODULE_0___default(…).__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED’ as it is undefined.

    Recoil を使ったプロジェクトをNext.js に移行しようとしたところ以下のようなエラーが出てしましました。

    TypeError: Cannot destructure property 'ReactCurrentDispatcher' of 'react__WEBPACK_IMPORTED_MODULE_0___default(...).__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED' as it is undefined.

    この記事はこれを解決するための記事です。

    やり方

    ページまたはコンポーネントごと、SSRをオフにする。

    今までRecoilを使っていたページを下記のようにラップしてしまいます。

    私の場合の例を出しますと。元々はdiagnosis.tsx にrecoil を含む動作を書いていたたのですが、
    pages/diagnosis.tsx を直接書くのではなく、diagnosis.page.tsx に全てコードを移行し、
    diagnosis.tsx の中で動的にインポートしました。

    // pages/diagnosis.tsx
    import dynamic from 'next/dynamic';
    
    // diagnosis.page.tsx をクライアントサイドのみで読み込む
    const DiagnosisPageComponent = dynamic(() => import('../diagnosis.page'), {
      ssr: false,
    });
    
    export default function DiagnosisPage() {
      return <DiagnosisPageComponent />;
    }
    元々のRecoilを含むコード

    diagnosis.page.tsx には実際の実装(Recoil フックを呼び出す部分)を記述します。こうすると、サーバーサイドでは空っぽのコンポーネントしか返さないため、エラーを回避できました。

    React と ReactDOM のバージョンを一致させる

    以上で解決できない場合はReact と ReactDOM のバージョンを見直してみてください。どちらも同じバージョン出ないと不具合が出る場合があります。

  • Ubuntu 毎日決まった時間に再起動をかける crontab

    Ubuntu 毎日決まった時間に再起動をかける crontab

    Ubuntu を自宅サーバーとして運用する際に、一定期間に一度再起動したいものです。

    システムやサービスが長期間動作することで、まれにハングアップや不具合が発生することがあります。定期的に再起動することで、こうした問題を未然に防ぎ、安定した運用が可能になります。

    環境

    • Ubuntu 24.04.1 LTS
    • version 24.04

    2025/02/06時点

    やり方

    crontab コマンドを使います。このコマンドは定期的にコマンドやスクリプトを自動実行するた目につかいます。

    cron ジョブの編集画面を開きます。

    sudo crontab -e

    エディタを選択して!と言われるので、nano を選択します。

    crontab

    スケジュールを追加します。今回は毎日午前3時に再起動する設定にしました。

    0 3 * * * /sbin/shutdown -r now

    書き方

    • 0 3 * * *:毎日3時0分に実行
    • 0:分(0分)
    • 3:時(3時)
    • *:日(毎日)
    • *:月(毎月)
    • *:曜日(毎週)
    crontab edit

    入力したら、ctrl O で保存して、return, ctrl X で抜けましょう。

    確認

    以下コマンドで確認できます。

    sudo systemctl status cron

    ログは以下に記録されます。

    grep CRON /var/log/syslog

  • レンタルサーバーで Unity WebGL 埋め込み This can happen if build compression was enabled

    レンタルサーバーで Unity WebGL 埋め込み This can happen if build compression was enabled

    WordPress にUnityで制作したものを埋め込む際に下記のようなエラーが出ました。

    WordPressの wp-content/upload の直下にビルドしたフォルダをアップロードしました。

    This can happen if build compression was enabled but web server hosting the content was misconfigured to not serve the file with HTTP Response Header "Content-Encoding: gzip" present. Check browser Console and Devtools Network tab to debug.

    これの解決方法です。

    サーバー側のGzip対応を確認

    私の利用しているロリポップではGzipに対応しています。

    https://support.lolipop.jp/hc/ja/articles/360048374954-GZIP%E3%81%AF%E5%88%A9%E7%94%A8%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B

    以下のように .htaccess を作成し、build フォルダや index.html があるディレクトリに .htaccess をアップロードしました。

    <IfModule mod_mime.c>
        # WebAssembly用のContent-Type設定
        AddType application/wasm .wasm
        AddEncoding gzip .gz
    </IfModule>
    
    <IfModule mod_headers.c>
        # gzip圧縮ファイルのContent-Type設定
        <FilesMatch "\.wasm\.gz$">
            Header set Content-Encoding gzip
            Header set Content-Type application/wasm
        </FilesMatch>
    </IfModule>
    
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTP:Accept-Encoding} gzip
        RewriteCond %{REQUEST_FILENAME}.gz -f
        RewriteRule ^(.*)$ $1.gz [QSA,L]
    </IfModule>

    公開できました!


    VPN の利用

    Easy-RSA の設定が古い情報だとうまくいかないので、以下を参考にしました。https://community.openvpn.net/openvpn/wiki/EasyRSA3-OpenVPN-Howto

    L2TP/IPsecやOpenVPNを設定し、VPN経由で内部ネットワークにアクセスします。
    これにより、DS-Liteの制約を回避できます。

    sudo apt intall openvpn easy-rsa -y

    PIK ディレクトリの作成と初期化

    make-cadir ~/openvpn-ca
    cd ~/openvpn-ca
    ./easyrsa init-pki

    make-cadir は easy-rsa の機能でOpneVPNの設定を含んだディレクトリを作成できるコマンドです。

    CAのビルド
    このコマンドを実行すると、
    Common Name(eg: your user, host, or server name)[server]:
    と聞かれるので、名前の入力をしましょう。

    ./easyrsa build-ca nopass

    サーバーの証明書の作成

    ./easyrsa gen-req server nopass

    サーバーの鍵の作成

    ./easyrsa sign-req server server

    DHパラメータの作成

    ./easyrsa gen-dh

    クライアント用の証明書と鍵を作成します。
    クライアント名は任意の名前を指定します(例:client1)。

    ./easyrsa gen-req client1 nopass
    ./easyrsa sign-req client client1

    生成した証明書と鍵をOpenVPNのディレクトリにコピーします。

    sudo cp ~/openvpn-ca/pki/ca.crt /etc/openvpn/
    sudo cp ~/openvpn-ca/pki/issued/server.crt /etc/openvpn/
    sudo cp ~/openvpn-ca/pki/private/server.key /etc/openvpn/
    sudo cp ~/openvpn-ca/pki/dh.pem /etc/openvpn/
    sudo cp ~/openvpn-ca/pki/issued/client1.crt /etc/openvpn/
    sudo cp ~/openvpn-ca/pki/private/client1.key /etc/openvpn/


    /etc/openvpn/server.confファイルを作成し、
    以下の内容を追加します。

    port 1194
    proto udp
    dev tun
    ca ca.crt
    cert server.crt
    key server.key
    dh dh.pem
    server 10.8.0.0 255.255.255.0
    ifconfig-pool-persist ipp.txt
    push "redirect-gateway def1 bypass-dhcp"
    push "dhcp-option DNS 8.8.8.8"
    keepalive 10 120
    cipher AES-256-CBC
    persist-key
    persist-tun
    status openvpn-status.log
    verb 3

    OpenVPNサービスを起動し、システム起動時に自動的に開始するように設定します。

    sudo systemctl start openvpn@server
    sudo systemctl enable openvpn@server

    クライアント用の設定ファイル(.ovpn)を作成します。例えば、client1.ovpnファイルを以下の内容で作成します。

    remote の hoge.ddns.net は動的IPの https://noip.com で作成したDNSです。

    クライアント設定ファイルと共に、
    ca.crt、client1.crt、client1.key
    をUSBメモリなどを使ってクライアントデバイス(私の場合はMacBook)にコピーします。

    client
    dev tun
    proto udp
    remote hoge.ddns.net 1194
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    ca ca.crt
    cert client1.crt
    key client1.key
    remote-cert-tls server
    cipher AES-256-CBC
    verb 3


    ファイアウォール設定でOpenVPNのポートを開放します。

    sudo ufw allow 1194/udp

    クライアント側でやること

    私はMacBook Air を使っているので tunnelblick を使用しました。

    brew install --cask tunnelblick

    Tunnnelblick は先ほどクライアント側(MacBook)に移してきた hoge.ovpn ファイルをドラッグ&ドロップしたらOKです。

    そうすると、個人用かユーザー全体かを聞かれると思うのですが、
    今回の用途では個人用でOKです。


試したけどやらなかったこと

ルーター側の設定

私が使っているルーターは TP-Link Archer AX10 です。
このルーターでの設定を紹介します。

私と同様TP-Linkをお使いの場合は https://tplinkwifi.net/ にアクセスして管理画面に入りましょう。

まず、DS-Lite, MAP-E, V6 プラス の設定ではポートの設定ができないので、
これ以外を選択する必要があります。(ソース:https://www.tp-link.com/jp/support/faq/2799/
そのためPPPoE方式にする必要があります。
それぞれの方式の違いについての記事はこちら

しかし、普段使いしているルーターと同じ場合 PPPoE に切り替えるとDS-Liteに比べ遅く感じてしまいます。
結局IPv4 での接続はやめることにしました。


🥦 まとめ

そしてブロッコリーも食べた方がいい

  • Ubuntu DDNS(動的DNS)は使った方がええ🥦 with NO-IP

    Ubuntu DDNS(動的DNS)は使った方がええ🥦 with NO-IP

    ❓これは何

    Ubuntu をファイルサーバーとして利用しています。

    外部のネットワークから利用することを考えると、
    IPアドレスが変更される場合に対応するために動的DNS(DDNS, Dynamic DNS)を使ってみてもいいのかも……。

    といった動機で NO-IP を使ってDDNSを利用するまでの記事です。

    🪴 環境

    2024/07/21時点

    • Distributor ID: Ubuntu
    • Description: Ubuntu 24.04 LTS
    • Release: 24.04
    • Codename: noble

    🛠️ やり方

    NO-IP のアカウント作成

    https://noip.com にアクセスしてアカウントを作成します。

    2つ以上のドメインを使用しない限り、無料版で大丈夫だと思います。

    左のタブから Dynamic DNS を開いて、
    “NO IP Hostnames”を選択します。

    次のような画面になると思うので、
    緑の”Create Hostname”ボタンを押下します。

    次のようなポップアップが開くので、
    Hostname, Domain をそれぞれ入力、選択します。
    できたら、 ”Create Hostname” を押します。

    画像ではRecord TypeはAAAAになっていますが、 DNS Host(A)の選択のままで進めてください🙏

    次のような感じで、追加されているはずです。

    Ubuntu での設定

    ddclient をインストールします。

    sudo apt update
    sudo apt install ddclient -y

    install をすると、次の画面が出てくると思います。

    今回はno-ip.com を使用しているのでこれを選択します。

    ユーザー名の入力

    パスワードの入力をします。

    一般の家庭の場合は上の選択肢の ‘web-based ip discovery service’で問題ないでしょう。
    これはルーターがあって、ネットワークに接続されている場合の選択肢です。

    下の選択肢はコンピューターが直接インターネットに接続されている場合の選択肢だそうですが、一般家庭の場合これに当てはまらないと思います。

    ネットワクークについてざっくり理解したい方は 以下の記事 をご覧ください。

    さきほど、noip.comでせいさくしたドメインを入力してください。

    設定を間違ってしまった、
    変更したい、
    といった場合はconf ファイルから設定できます。

    sudo vi /etc/ddclient.conf


    ddclientの自動起動を設定します。

    sudo systemctl enable ddclient
    sudo systemctl start ddclient

    📕 参考サイト様

    no-ip の使い方
    https://www.noip.com/support/knowledgebase/free-dynamic-dns-getting-started-guide-ip-version

    🥦 まとめ

    ブロッコリーはいっぱい食べた方がええ!

  • OpenVPN Easy-RSA では Source する必要がないらしい

    OpenVPN Easy-RSA では Source する必要がないらしい

    ファイル:OpenVPN logo.svg

    これは何?

    sudo apt install openvpn easy-rsa
    make-cadir ~/hoge
    cd ~/hoge
    source vars

    と入力したところ

    You appear to be sourcing an Easy-RSA *vars* file. This is
    no longer necessary and is disallowed. See the section called
    *How to use this file* near the top comments for more details.

    といった注意分が出力されました。
    これについての記事です。

    環境

    2024/07/19

    • Distributor ID: Ubuntu
    • Description: Ubuntu 24.04 LTS
    • Release: 24.04
    • Codename: noble

    結論


    最新のEasy-RSA 3.xではsource varsを使う必要はありません。

    各操作に必要な設定は、直接コマンドラインから行うか、コマンドに組み込まれたオプションとして設定されます。

    これにより、手順が簡素化され、直接的な設定が可能になっています。

    PKI (Public Key Infrastructure)初期化

    PKIは、公開鍵と秘密鍵のペアを管理し、デジタル証明書を発行、管理するシステムです。これにより、安全な通信やデータの保護を実現します。

    ./easyrsa init-pki

    CA (Certificate Authority)作成

    CAは、デジタル証明書を発行し、署名する機関です。信頼されたCAによって発行された証明書は、通信相手の信頼性を保証します

    ./easyrsa build-ca nopass

    サーバー証明書リクエストを作成


    サーバー証明書リクエストは、サーバーが自分の公開鍵と一部の識別情報をCAに送信して証明書の発行を依頼するためのデータファイルです。CAはこのリクエストを受けて、サーバーに対して証明書を発行します。

    ./easyrsa gen-req server nopass

    リクエストを署名

    ./easyrsa sign-req server server
  • Ubuntu ip addr コマンドとは?

    Ubuntu ip addr コマンドとは?

    ❓ これは何

    Ubuntu での ip addr コマンドについてのまとめ記事です。
    ip addr コマンドは Linux で IP アドレスの確認ができるコマンドです。

    しかし初心者では何がなんのかがわからないので、
    ちょっとしたメモ兼チートシートと思い書きました。

    間違っている部分があれば訂正いたします。お手数ですが、発見した場合コメントお願いいたします。

    青背景は補足です、読み飛ばしていただいてOKです。

    ✒️ 解説

    ip addr コマンドを実行すると、
    システム上のすべてのネットワークインターフェースと
    その詳細のIPアドレス情報を表示できます。

    ip addr

    出力結果は次のようになります。(例)

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 01:23:45:67:89:ab brd ff:ff:ff:ff:ff:ff
        inet 192.168.1.2/24 brd 192.168.1.255 scope global dynamic eth0
           valid_lft 86397sec preferred_lft 86397sec
        inet6 fe80::1234:5678:9abc:def0/64 scope link 
           valid_lft forever preferred_lft forever

    インターフェース番号と名前

    1: lo と 2: eth0 など、ネットワークインターフェースの識別子と名前を示します。

    lo はループバックインターフェースを表し、通常は 127.0.0.1 のIPアドレスを持ちます。


    ループバックインターフェースは自分自身を指す仮想的なネットワークインターフェースのことです。127.0.0.1 は localhost とも呼ばれます。

    eth0 とあれば、通常のイーサネットインターフェース(有線LAN)を表します。

    enp3s0, wlp2s0 と表示されている場合

    • en:Ethernet(有線)のインターフェース。
    • wl:Wireless LAN(無線)のインターフェース。

    この後に続く文字と数字は、インターフェースの物理的な位置を示します。

    • p3:PCIEスロット3に接続されていることを示します。(自作PCやったことある方ならわかると思う)
    • s0:デバイスのファーストファンクション(ファンクション0)を示します。
    🐏 PCIデバイスとファンクション

    PCIデバイスは、1つの物理カード上に複数の機能(ファンクション)を持つことができます。
    例えば、1つのPCIカードがネットワークインターフェースとストレージコントローラーの両方を提供する場合、そのカードには複数のファンクションがあります。

    各ファンクションは、次のように識別されます

    • ファンクション0(Function 0):ファーストファンクション。デバイスの最初の機能。
    • ファンクション1(Function 1):セカンドファンクション。デバイスの2番目の機能。
    • 以降、最大 ファンクション7(Function 7)まで。

    インターフェースの状態

    <LOOPBACK,UP,LOWER_UP> や <BROADCAST,MULTICAST,UP,LOWER_UP> はインターフェースのフラグを示します。例えば、UP はインターフェースがアクティブであることを意味します。

    mtu はインターフェースの最大転送単位を示します。これは、ネットワークパケットの最大サイズです。

    😞 1500だと1Gbps とからしい。mtu がすなわち転送速度というわけではないので、ちょっとむずい

    qdisc はキューイングディシプリンを示します。

    state はインターフェースの状態を示します (UP や UNKNOWN など)。

    リンク層のアドレス

    link/loopback や link/ether はリンク層の種類を示します。

    00:00:00:00:00:00 や 01:23:45:67:89:ab はMACアドレスを示します。

    IPv4アドレス

    inet 127.0.0.1/8 や inet 192.168.1.2/24 はIPv4アドレスとそのサブネットマスクを示します。

    scope はアドレスのスコープを示し、host や global などがあります。

    valid_lft と preferred_lft はアドレスの有効期限を示します。

    valid_lft(Valid Lifetime)と preferred_lft(Preferred Lifetime)は、IPアドレスの有効期限を管理するために使用されるパラメータです。

    Valid Lifetime(有効ライフタイム)

    • 定義:valid_lft は、IPアドレスが有効である期間を示します。この期間が過ぎると、IPアドレスは無効とみなされ、もはや使用できなくなります。
    • 用途:このパラメータは、アドレスの自動管理と更新のために使用されます。例えば、DHCPやIPv6のアドレス自動設定(SLAAC)で利用されます。

    Preferred Lifetime(推奨ライフタイム)

    • 定義:preferred_lft は、IPアドレスが優先される期間を示します。この期間中は、アドレスは「優先アドレス」として使用されます。推奨ライフタイムが過ぎた後でも、valid_lft が有効である限りアドレスは使用可能ですが、「非優先アドレス」として扱われます。
    • 用途:新しい接続やセッションには優先アドレスが使用され、既存の接続には非優先アドレスが使用され続けます。これにより、アドレスの更新や再割り当てがスムーズに行われます。

    IPv6アドレス


    inet6 ::1/128 や inet6 fe80::1234:5678:9abc:def0/64 はIPv6アドレスとそのプレフィックス長を示します。

    特定のインターフェースの情報を見る

    次のコードで表示できます
    また以下のオプションもよく使います。

    • ip addr show up:アクティブなインターフェースのみを表示します。
    • ip -4 addr:IPv4アドレスのみを表示します。
    • ip -6 addr:IPv6アドレスのみを表示します。
    ip addr show eth0

    参考文献

    how find your IP address in Linux

    https://opensource.com/article/18/5/how-find-ip-address-linux

  • DS-lite, PPPoE, L2TP, PPTP, v6 plus, MAP-E の違いは?

    DS-lite, PPPoE, L2TP, PPTP, v6 plus, MAP-E の違いは?

    これは何?

    ルーターの設定中にインターネットの接続方式が色々とあり、
    どれがどういう意味なのかを調べた記事です。

    青背景は前提知識なので読み飛ばしていただいて構いません。

    解説?

    解説と言ってはなんですが、ちょっとしたまとめです。
    正しいか微妙なので、後述の参考文献をご確認ください。

    IPv4 とは?

    IPv4(Internet Protocol version 4)は、インターネット上でデータを送受信するための主要なプロトコルです。IPアドレスと呼ばれる32ビットの数値(例:192.168.0.1)を使って、ネットワーク上のデバイスを識別します。

    特徴

    • 32ビットのアドレス空間(約42億個のアドレス)
    • パケット通信を利用
    • サブネットマスクを使ってネットワークの区分けが可能

    IPv6 とは?


    IPv6(Internet Protocol version 6)は、IPv4の後継として開発されたプロトコルで、より多くのIPアドレスを提供します。128ビットのアドレス空間を持ち、IPv4に比べて遥かに多くのデバイスをユニークに識別できます

    IPv4 の課題

    1. アドレス枯渇

    IPv4の32ビットアドレス空間では約42億個のアドレスしか提供できません。
    インターネットの普及とともに、これらのアドレスが急速に枯渇しています 。
    そのため現在ではIPv4は各契約者ごとに振り分けれらるのではなく、プロバイダ側で一つの公的IPアドレスを使って複数の家庭で使えるように割り振っている場合があります。

    2. セキュリティ

    IPv4は設計上、セキュリティ機能が十分ではありません。IPsecなどのセキュリティ機能は追加できますが、デフォルトでは含まれていません。

    このような問題に対処するために、後述のDS-Lite や MAP-E が出てくるわけです。

    DS-Lite (Dual-Stack Lite)

    私は楽天ひかりを契約していのですが、標準の設定ではこちらの設定がお勧めされており、DS-Lite利用していました。

    DS-Liteは、IPv4アドレスの枯渇に対応するための技術で、IPv4パケットをIPv6パケットにカプセル化してインターネットに送る方法です。
    ユーザーが送信するIPv4パケットをIPv6パケットに包んでプロバイダに送り、プロバイダが再びIPv4パケットに戻してインターネットに接続します。

    ポイント

    • IPv4とIPv6を同時に使う
    • IPv4アドレスの枯渇問題に対応
    • NATがプロバイダー側で行われるので、ポートの解放が難しい

    MAP-E (Mapping of Address and Port using Encapsulation)

    MAP-Eは、IPv4アドレスの共有を可能にするIPv6移行技術です。
    IPv4パケットをIPv6にカプセル化し、IPv6インフラを利用してIPv4通信を行います。
    これにより、ISPは複数のユーザーが一つのIPv4アドレスを共有できるようになります  。

    ポイント

    • NAT がルーター側で行われるので、ポートの解放が可能

    PPPoE (Point-to-Point Protocol over Ethernet)

    PPPoEは、イーサネットネットワーク上でPPPセッションを確立し、ユーザー名とパスワードを使用して認証を行うプロトコルです。
    主にDSL接続で使用され、家庭内の複数のデバイスがインターネット接続を共有するのに適しています 。

    ポイント

    • 認証機能がある

    L2TP (Layer 2 Tunneling Protocol)

    L2TPは、VPN(仮想プライベートネットワーク)を確立するためのプロトコルです。
    PPTPとL2Fの機能を組み合わせており、PPPパケットをIPパケットにカプセル化してインターネット上で伝送します。
    L2TPは様々なネットワークタイプで使用でき、強力な暗号化と認証機能を提供します 。

    ポイント

    • VPNを作るために使用
    • 強力な暗号化と認証機能を提供
    • 多様なネットワークで使用可能

    PPTP (Point-to-Point Tunneling Protocol)


    PPTPもVPNを作るための技術ですが、L2TPほどのセキュリティはありません。
    リモートユーザーが安全にプライベートネットワークに接続するために使われます。

    ポイント

    • 簡単なVPNを作るために使用
    • セキュリティは低め
    • 古い技術で、新しい技術に置き換わりつつある

    v6プラス

    v6プラスは、IPv6とIPv4を同時に利用可能にする技術で、IPv6ネットワーク上でIPv4の通信を可能にします。これにより、IPv4アドレスの枯渇問題を解決しつつ、既存のIPv4サービスにもアクセスできます。

    NTT等がやってる日本の規格らしく?DS-Liteと似たような仕組みだなと思いました。

    結局?

    合ってるかわからないけど、総評。間違ってたらめちゃくちゃカスです。ごめんなさい。

    Pv4 は遅い云々の前に、そもそも枯渇してるから、
    1ルーターにつき一つじゃないから(数十家庭で1個のレベル?)ポートの解放が必要になる
    そうなるとv4 to v6の切り替えが発生する DS-Lite, Map-Eは難しい(少なくとも家庭用ルーターのtp-link archar ax10ではできない)から
    PPPoEにしなきゃいけないんだけど、これは認証の手間が入るから普段のネット回線でも使うルーターに割り当てるのは酷

    結局IPv6だとグローバルで、ネットワークに直結できるから(数がめちゃくちゃあるから機器ごとに持たせられるため?)
    PC側の設定だけで、ルーターはDS-Liteのまま公開できるという知見を得た。

    参考文献様

    DS-Lite とは?
    https://techlog.iij.ad.jp/archives/1254

  • 【NAS】ライトルームに読み込めない

    【NAS】ライトルームに読み込めない

    😸 これは何

    Lightroom Classic から、自宅サーバーに写真の入ったSDカードのデータを読み込ませる際に、下記のポップアップとエラーが出てしましました。

    書き込みが可能ではないため、保存先フォルダーにファイルをコピーできませんでした。(482)

    また、左サイドバーのフォルダーの項目のShareにもファイルが表示されていない状態です。

    この記事ではこちらの解決策を紹介します。

    🪴 環境

    サーバー側

    • Distributor ID: Ubuntu
    • Description: Ubuntu 24.04 LTS
    • Release: 24.04
    • Codename: noble
    • samba

    mac

    • sonoma 14.5(23F79)
    • Apple M1
    • 16GB

    🛠️ 手順

    まずは、フォルダのアクセス権限を確認します。
    該当フォルダを右クリックし、「情報を見る」をクリックするとウィンドウが出ると思います。
    ここで「読み込みのみ」になっている場合はサーバー側(Samba等)の設定を見直してみましょう。

    画像では「読み/書き」になっているので問題ない。

    なぜか結構苦労して、SCSiを導入しようと思ったところで、左側のタブに表示されたshare(自宅サーバーに設定した名前)のところから右クリックして「フォルダーを同期」を押したところできました。

    「フォルダーを同期」を押すと次画像のポップアップが出ると思います。
    ライトルームがネットワークボリュームにアクセスできる権限を渡してあげるのがミソみたいです。

    😒 これでも解決しない方へ

    ここまででフォルダを読み込むことができるようになったのですが、
    やはり書き込み(SDカードからサーバーへの読み込み)ができないので、Ubuntu側で権限の確認をしました。

    Ubuntu で該当ディレクトリ(私の場合はAllBackupというフォルダに全ての写真が入っている)に移動し、権限を確認します。
    権限の確認は

    ls -l

    でできます。

    これで確認すると AllBackup のみ -xr つまり、writeができない設定になっていました。

    macのFinderで情報を見ると読み込み書き込み可能になっていたが、Ubuntu上ではそうで無かったのでなかなか気付けませんでした。

    AllBackupの下層フォルダごと権限変更をするにはchmodにRオプションをつけます。

    sudo chmod -R 777 フォルダ名

    これで解決しました!!!

  • 【Ubuntu】mac os からリモートデスクトップで接続する

    【Ubuntu】mac os からリモートデスクトップで接続する

    ❓ これは何

    mac os から Ubuntu にリモートデスクトップで接続する方法についてです。

    🪴 環境

    • Distributor ID: Ubuntu
    • Description: Ubuntu 24.04 LTS
    • Release: 24.04
    • Codename: noble

    🛠️ 手順

    🐧 Ubuntu側

    Settingsアプリを立ち上げます。
    左のタブから「System」を選択します。
    (前までSharingにありましたが移動したようです。)

    Remote Desktop を押したら次のような画面になります。
    Desktop Sharing, Remote Control をオンにします。
    Username, Port, Login Details を埋めてください。
    ここで設定したものは mac os 側でのちに入力します。

    🍎 mac os 側

    Microsoft Remote Desktop をダウンロードしましょう。https://apps.apple.com/jp/app/microsoft-remote-desktop/id1295203466?mt=12

    Microsoft Remote Desktop が開いたら、「Add PC」を押しましょう。

    PC name の項目に 「あなたのパソコンの名前.local:ポート番号」と入力しましょう。
    User account を追加しましょう。先ほどUbuntu側で設定したものです。
    最後にGateway からポート番号を入力してください。
    「Save」を押したら完了です。

    接続完了!やったー

  • Ubuntu ファイルタイプBtrfsの選択するまで

    Ubuntu ファイルタイプBtrfsの選択するまで

    ❓ これはなに

    Ubuntu でディスクをフォーマットする際のファイルタイプをBtfrsにするまでの記事です。

    なるべくGUIでやります。

    🌵 環境

    • Distributor ID: Ubuntu
    • Description: Ubuntu 24.04 LTS
    • Release: 24.04
    • Codename: noble

    👈 手順

    disk アプリを開いて、フォーマットをしようとすると下記画像のように標準ではBtrfsが選択できないと思います。

    terminal を開きます。

    まずはお決まりの。これですべてのパッケージをアップデートします。

    sudo apt update

    次に Btrfs のパッケージをインストールします。(-yオプションはYes/Noを省略できるもの)

    sudo apt install btrfs-progs  -y

    これで完了です。

    Diskアプリを開き、ディスクを選択します。
    ボリュームのグラフの下に⚙歯車アイコンがあると思うので、
    そちらのFormat Partition… を選択。

    ファイルタイプの選択でOtherを選択して、Nextすると、

    こんな感じで選べるようになったと思います!

    以上です

  • Home
    About
    Blog
    Works
    Contact