タグ: Ubuntu

  • 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 Git 管理 with Git LFS

    Unity Git 管理 with Git LFS

    この記事は?

    Unity のプロジェクトをGitで管理する方法です。SourceTree などを使った方法は直ぐに検索に出てきますが、すでにGitを使ったことがある方に向けた記事です。

    使用環境

    • Apple Silicon M1 MacBook Air
    • 16 Gb
    • macOS Sequoia 15.0
    • Unity 2022.3.31f1

    やり方

    Unityの設定
    .gitignore の作成
    Git LFS

    の3つの設定を順に紹介していきます。

    Unity 側の設定

    Unity のメニューの Edit/ Project Settings を開きます。

    左側のメニューからEditorを選択。

    Asset Serialization という項目があるので Force Text にします。(おそらく標準でなってる?)

    Unity Settings

    シーンやPrefabをテキスト形式で保存する設定のようです。
    Gitでの競合の解決を簡単にするために、バイナリ形式でなくテキスト形式にしました。

    Gitの設定

    Gitで管理したいファイルは下記の通りです。

    • Assets
    • Packages
    • ProjectSettings
    • UserSettings

    必要のないものはignoreに設定します。

    ルートディレクトリに .gitignore ファイルを以下の内容で作成しました。

    # Unity関連の生成ファイルを無視
    [Ll]ibrary/
    [Tt]emp/
    [Oo]bj/
    [Bb]uild/
    [Bb]uilds/
    [Ll]ogs/
    
    # 特定のプラットフォーム関連ファイル
    [Dd]ebugPublic/
    [Mm]emoryCaptures/
    [Uu]ser[Ss]ettings/
    
    # Visual StudioやJetBrains Rider関連
    .vscode/
    *.csproj
    *.unityproj
    *.sln
    *.suo
    *.user
    *.userprefs
    *.pidb
    *.booproj
    *.svd
    
    # その他
    *.swp
    *.lock
    *.idea/
    

    GitLFSの設定

    標準のGit を使っていて、サイズの大きなもののアップロードで警告が出たことはありませんか?

    ゲーム制作では3Dモデルや画像データなどが膨大になってしまうので、これでは厳しいです。

    そこでGit LFS を使用します。

    Git LFS(Git Large File Storage)は、大きなファイルやバイナリファイルを効率的に管理するためのツールです。

    Homebrew で Git LFS をインストール

    インストールしたことがない方はBrew からインストールします。

    https://formulae.brew.sh/formula/git-lfs

    brew install git-lfs

    インストールしたことある方はversion を確認します。

    git lfs --version

    Git の初期設定

    プロジェクトのディレクトリへ移動します。

    cd /あなたのプロジェクトディレクトリ

    Git を初期化します。

    git init

    LFSの有効化をします。

    git lfs install
    Updated Git hooks.
    Git LFS initialized.

    上手くLFSが有効化されると返答されます。

    管理したいファイルタイプを指定します。
    画像と3Dデータが重いので私は下記のように指定しました。

    git lfs track "*.png"
    git lfs track "*.fbx"

    あとは普段通りGit 操作します。

    git add .
    git commit -m "initial commit"

    補足 Git LFS が有効化されているか確認する

    git lfs ls-files

    上手くできていればした画像のように表示されるはずです。

    git LFS

  • iPhone から Samba にアクセスする方法【標準アプリのみ】

    iPhone から Samba にアクセスする方法【標準アプリのみ】

    Ubuntu Samba でNASを構築してファイルサーバーとして運用しています。

    今回はこちらにiPhoneからアクセスする方法の記事です。

    Ubuntu 側 ホスト名を確認する

    hostname コマンドで、お使いのコンピューターのホスト名を調べることができます。
    あとで使うのでメモっておきましょう。

    hostname

    ファイルを開く

    まずは iPhone のファイルアプリを開きます。

    ブラウズタブに移動して、右上のボタンから[サーバーへ接続]を選択します。

    続いてアドレスを打ち込む画面に進むので先ほどのホスト名を使います。

    hostname であなたのコンピューター名が YOUR-COMPUTER だとしたら以下のように入力してください。

    smb://YOUR-COMPUTER.local

    入力が終わると、ユーザーまたはゲストでの接続を聞かれるので、環境によってお好きな方を選択してください!

    これで接続できるはずです!

  • Ubuntu Samba の完全削除と再インストール

    Ubuntu Samba の完全削除と再インストール

    この記事について

    Ubuntu をファイルサーバーとして使うのにお馴染みの Samba

    何らかの不具合などで再インストールした際に /etc ディレクトリの下に samba ディレクトリや smb.conf が作成されない場合があります。

    この記事では、そういった場合に有効な依存関係を含めて削除する方法について書きます。

    Samba の完全削除

    まずは今動いている Samba を停止させます。

    service smbd stop
    service nmbd stop

    purge コマンドを使用してSambaを完全に削除します。 purge コマンドを使用しないと、一部の設定ファイルやディレクトリが残り続け、再度インストールした際に smb.conf ディレクトリが作成されない場合があります。

    sudo apt remove --purge samba samba-common
    sudo apt autoremove

    この時点で残っている設定ファイルやディレクトを削除します。
    ⚠️ 設定ファイルのバックアップを取りたい場合は先にやっておきましょう。

    sudo rm -rf /etc/samba /var/lib/samba

    再インストール

    再度インストールします。

    sudo apt update
    sudo apt install samba

    ちゃんとできているか確認してみましょう。

    ls /etc/samba

    実行確認

    Vi でsmb.conf を設定します。

    sudo vi /etc/samba/smb.conf

    smb.conf の末尾に下のように書き足します。この設定ではすべてのユーザーがアクセスできます。

    [TEST]
    path = 共有したいディレクトリのパス
    public = yes
    security = share
    writable = yes
    printable = no
    guest ok = yes

    以上が手順です。

  • Ubuntu Samba ファイルサーバーを外からアクセスできるようにする

    Ubuntu Samba ファイルサーバーを外からアクセスできるようにする

    ❓ これは何?

    前回の記事 では内部ネットワークからファイルサーバーにアクセスする方法を記事にしました。

    今回は外出先で外部のネットワークからファイルサーバーにアクセスするまでの手順をメモにします✍️


    🪴 環境

    サーバー側

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

    クライアント側 MacBook Air

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

    🖐️ 手順

    Samba の IPv6 設定

    ネットワークの確認

    ネットワークインターフェース名を確認します。
    通常、eth0、ens33などの名前が使われます。

    ip addr

    /etc/netplan/01-network-manager-all.yaml の中身は標準では次のとおりです。

    # Let NetworkMnager manage all devices on this system
    network:
      version: 1
      renderer: NetworkManager

    後述の理由で IPv4 ではなく、IPv6 での公開を目指します。
    これであればルーター側の設定がDS-Liteでも問題なくできるはずです。

    smb.conf の設定


    SambaがIPv6でリスンするように設定します。
    /etc/samba/smb.confの[global]セクションに次の行を追加します

    interface = "lo" "enp3s0" "wlpws0"
       bind interfaces only = yes
       smb ports = 445

    🔥 ファイヤウォールの設定

    Sambaが利用する必要なポートをファイアウォールルールに追加します。

    samba用ポートを全開放したい場合
    sudo ufw allow samba

    Sambaでは(137, 138, 139, 445)のポートを使用します。

    外部のネットワークに接続する場合は 445 のみの解放の方がセキュリティリスクが低くなるかと思います。

    sudo ufw reload
    ファイアウォールの設定を再読み込みして、追加したルールを適用します。

    sudo ufw allow from any to any port 445 proto tcp
    sudo ufw reload

    ↑のように書くとTCP用の445のみの開放になります。

    🐏 ufw とは?


    udo ufw reload は、Ubuntuのファイアウォール(UFW: Uncomplicated Firewall)に関連するコマンドです。

    ufw allow では

    • TCP/UDP 137 (NetBIOS Name Service)
    • TCP/UDP 138 (NetBIOS Datagram Service)
    • TCP 139 (NetBIOS Session Service)
    • \TCP 445 (Microsoft-DS Active Directory, Windows shares)

    が解放されます。

    ファイヤウォールの確認

    ufw status で解放されているポートの確認ができます。

    sudo ufw status

    間違って開放した場合は次のコマンドで削除しておきましょう。

    sudo ufw delete allow HOGE

    動的DNSの利用

    サーバー側のIPアドレスが変更されても、接続を確立するために、
    https://noip.com を使ってDDNSを使用することにしました。

    • noip.com でのドメインの作成(sample.ddns.net など)
    • apt install ddclient と設定

    が出来ていることを前提に次に進みます。
    出来ているかは以下のコマンドで確認してみてください。

    sudo systemctl status ddclient

    出来ていない方は、次の記事を参照してください。


    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 ターミナルの内容をコピーしたい

    Ubuntu ターミナルの内容をコピーしたい

    😯これはなに?

    ubuntu を使っていて、ターミナルの出力結果をコピーしたい際にマウスでの選択が来ません。

    コマンドをつかってコピーする操作のメモです。

    🌵環境

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

    🔧やり方

    xsel コマンドのインストール

    sudo apt install xsel

    実行するコマンドの末尾に

     | xsel --clipboard --input

    と追記することでクリップボードにコピーされます。

    sudo ufw status | xsel --clipboard --input
  • 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