2024-01-01から1年間の記事一覧

【マイクラ】ホッパートロッコを使ったアイテムエレベーターと、他デザインとの比較

今回の記事で紹介するのはホッパートロッコを使ったアイテムエレベーターです。 YouTubeに動画をアップロードしました。 www.youtube.com 見ての通りやっていることはごく単純で、 ホッパートロッコで下側のホッパーが空になるまで積載→上まで走行→ホッパー…

【マイクラ】ポーション自動製造機【連続醸造対応、ポーション全種対応、故障なし】

マイクラのポーションの醸造は1つの工程に20秒かかり、材料の投入や運搬の際にはインベントリの占有率も大きくて面倒な作業の一つです。 ちょっとしたテクニックとして、醸造台の上にホッパーを置いて順番に材料を入れておいて全工程を連続でやるというのが…

Linux Mintのファイルマネージャ(nemo)で快適にネットワーク上のファイルを閲覧する方法

Linux Mintのファイルマネージャ(nemo)で快適にネットワーク上のファイルを閲覧する方法について考えました。 ネットワーク上というのはGoogle Driveやssh(sftp)などで、これらは適切なツールを使うとファイルシステムのように扱うことができるようにな…

GRUBでUSBメモリの有無を判定してブート先を変更する

今回はブートローダーについてです。 最近、USBメモリにLinuxを入れて遊んでいるのですが、デスクトップPCから起動する際に、USBが刺さっているときはUSBから、そうでないときは内蔵SSDから起動するように自動で選んでくれないだろうか?と思いました。 単に…

RAMをキャッシュにしてbcacheを使ってみる

この前のUSBメモリでLinuxを運用するときのtmpfsなどの設定(永続化のためのsystemdの設定とか) - turgenev’s blogの記事では、USBメモリ上Linuxの高速化のためにtmpfs(RAM上のファイルシステム)を使う方法を紹介しました。最後のほうでは、まるごとRAMを…

【Windows10→11アップグレード】「システムで予約済み」が別ドライブにあってMBR2GPTできないときの対処法

概要 Windows 10のサポート期限(2025年10月)まで残り1年を切りました。後回しにしていたWindows 11へのアップグレードをそろそろやらなければ…と考えている10ユーザーもいるのではないでしょうか。 今回は筆者の友人がWindows 10を11にアップグレードしよ…

USBメモリでLinuxを運用するときのtmpfsなどの設定(永続化のためのsystemdの設定とか)

USBメモリにLinuxをインストールする 今回の記事ではUSBメモリにインストールしたLinuxを扱います。LiveUSBのようにインストール時に一時的に使うのではなく、個人設定や追加パッケージのインストールができる(再起動後も維持される)ような形でUSBメモリに…

【マイクラJava】ラマの厳選のやりかた

ラマはチェストを装着してインベントリを持たせることができる動物mobです。リードで引っ張られた別のラマに付いていく習性があるので、大量にアイテムを輸送したいときに便利…かもしれません。 この記事ではラマを繁殖させて強い個体を選別する方法を解説し…

Linux Mintを21.3 -> 22にアップグレードしたらBIOS loopになった問題

Linux Mint 22が先月リリースされたので、購入当初はWindows 7が入っていたかなり古いデスクトップPCにおいて、21.3からのアップグレードを行った。 アップグレードは問題なく完了したが、再起動してみるとgrubが壊れているっぽく、grubの画面が出るべきとこ…

Deutschlandticket(49ユーロチケット)のキャンセルポリシーについてのメモ

全然細かい仕様はわかっていないのですが予想とちょっと違う挙動があったので一応体験談として記録しておきます。 Deutschlandticketというのはドイツ国鉄(Deutsche Bahn, 略称DB)の普通・快速列車(S/U/RB/REまでは可、IC/ICEは不可)およびバス・路面電…

GCCとかmakeのヘッダ・ライブラリ探索関連のオプション・変数まとめ

GCCとかmakeを使ってC/C++のプロジェクトをビルドするときの各種オプションや変数をいつも忘れてしまうのでまとめました。 基本 GCCによる実行ファイルの作成は大きく分けるとコンパイル→リンクの2段階があります。 まず、コンパイル時に必要になるのがヘッ…

Linux Mintでxrdp経由で一部のGUIアプリケーション(mintsources)などを実行しようとするとError executing command as another user: Not authorizedと言われる

自宅サーバーとしてヘッドレスで動かしているLinux Mintで、ソフトウェアのアップデートなどはxrdp経由でやっているのですが、ミラーサーバーの選択などに使う「ソフトウェアソース」(mintsources)が起動しません。 CUIで直接pkexec mintsources(スタート…

FreeBSD/OpenBSD/NetBSDで透過プロキシのredsocksを動かしてみる

概要 特定アプリケーションのTCP・UDP通信を透過的なSocks5プロキシ経由にする方法(Windows・Linux・Androidなど) - turgenev’s blogの外伝という感じで、BSD系のOSに触ってみるついでにredsocksを動かしてみました。(※NetBSDでは動かず)わからないとこ…

【マイクラJava1.21】エリトラとリード(+ボート)を使用してmobを空輸する方法

※25w16a(1.21.6のスナップショット)で、エリトラ飛行中に花火を使うと必ずリードが切れる仕様に変更されたため、この記事の方法が使えるのは1.21.5までとなります。 概要 マイクラの終盤、つまりエリトラを入手して以降のゲームプレイでもそれほど便利な方…

ssh-agent転送のセキュリティ問題と適切な鍵管理の方法について考える

※内容が大幅に間違っていることが判明したため、一旦記事内容は削除しました。 詳しくはこちらのリプライツリーをご参照ください。 信頼出来ないホストに対してエージェント転送するのは危険なのは確かなんだけれど、SSHプロトコルやOpenSSHに対する理解不足…

root権限のないssh上にUDPを通す方法について(ポートフォワード、SOCKS5プロキシなど)

sshはリモートマシンとの通信に汎用的に使われるセキュアなプロトコルで、ポートフォワードを使用してリモート上のプログラムがローカルで使える(あるいはその逆)ようにしたり-Dオプションを使用してSOCKSプロキシとして動作させることでローカルのアプリ…

ファイルブラウザ(エクスプローラ)の右クリックメニューで、rclone・sshfs経由で閲覧しているssh先のファイル・フォルダをssh先のシェルやVS Codeで開く

sshを使ってリモートのサーバー上で開発を行っているとします。このとき、基本的にはほとんど全てのこと(コンパイルや機械学習など計算を伴うものや、ファイル操作など)はsshで入った先のリモート上(ターミナル、あるいはVS CodeならRemote SSH拡張機能)…

Rustのslotmapやslabを使って双方向連結リスト(っぽい何か)を作る

Rustで双方向連結リストが欲しいと思ったときは、意外と簡単に実装できる代替品が使えるかも?という記事です。 Rustでの連結リスト実装に関しては、何よりもまずIntroduction - Learning Rust With Entirely Too Many Linked Listsという有名な文献がありま…

日本国内の組織に割り当てられている1048576(/12)以上の大きさのIPアドレス範囲の一覧(ランキング)

何となく知りたくなったので、JPNIC管理下で、APNICが逆引きの管理を行っているIPv4アドレス一覧 - JPNIC この中で1048576(0x100000)以上の大きさのものをどこの会社が持っているのか調べてみました。全部で14個あります。大きい順(大きさが同じなら若い…

2つのLinux間でIPv4 over IPv6トンネリング

IPv4 over IPv6トンネリングを使うと、IPv6しか使えない環境から、IPv4/IPv6どちらも使える環境(VPSなど)を経由してIPv4でインターネットに出ていくことができます。 今回は別にIPv4が使えなかったわけではないのですがこれを試してみました。 リモート側…

LinuxルーターのMAP-Eで良い感じにNATポートを使い回す方法

OpenWRTなどLinuxを使用してMAP-E(v6プラス、OCNバーチャルコネクトなど)接続を行う方法は様々なサイトで紹介されていますが、iptablesやnftables(バックで動いているのはnetfilter)のNATでは使用ポート範囲を複数(1000-2000, 3000-4000みたいな感じで…

Linux 6.5のnetfilterのNATはTCPのTIME_WAIT状態のポートを使いまわす

TCPでは、自分から接続を切断する際に、外向きのFIN(+ACK)→内向きのFIN+ACK→最後の外向きのACK、という順でパケットがやりとりされます。この外向きのACKを送ったあとしばらくはソケットを使い回さないようにTIME_WAITという状態が設定されます(理由は他…

GCPのCompute EngineのFree Tier(無料枠)の外部静的IPには本当に課金されないのか?

ドキュメント読んでもわかりづらいのでメモを残しておきます。 2024/4現在、GCPの無料枠(Free Tier)ではメモリ1GBくらいの仮想マシンを永久無料で使えることになっていますが、これに割り当てられる外部IPv4アドレス(インターネットと接続するために必要…

ファイルをディスク上で暗号化し、ログイン時に自動で復号する方法まとめ(Windows・Linux)

概要 モバイルPCなどでは、盗難のリスクがあるため、機密性の高いユーザーデータはディスク上に平文で保存せず、適切に暗号化した状態で保存することが望ましいといえます。ただ、復号のために専用のパスワードを入力するような方法は手間がかかるため、この…

透過プロキシを用いて特定アプリケーションのTCP・UDP通信をSOCKS5経由にする方法(Windows・Linux(iptables TPROXY)・Androidなど)

概要 ネットワーク上の制約を回避するためにプロキシやVPNのような類のものを使用するにあたって、(必ずしもそれ自体ではプロキシなどに対応していない)特定のアプリケーションを対象に、またTCPだけでなくUDPにも対応したいということがあると思います。 …

マルチユーザー&root権限なしの環境で他ユーザーからTCPポートを保護する

sshサーバーなど、多くのユーザーが1つのオペレーティングシステムを共用するマルチユーザー環境では、TCP/UDPのようなポートを使用するアプリケーションを起動するとそれは他のユーザーからもアクセスできるようになります。これはセキュリティ的に望ましく…

cgroupのnet_clsを使って、特定のプロセス(ツリー)に対するiptables/nftablesルールを設定する

注意(追記) 書いた後でわかったのですが、この記事の内容は、少し古いcgroup v1の機能を使っています。これは新しいcgroup v2と競合する可能性があります。最近のLinuxであれば、第48回 cgroup v2から使うコントローラとmiscコントローラ | gihyo.jpなどで…

Linuxで一つのパケットに2回(複数回)NATをかけるための2つの方法

概要 LinuxでNATなどを担当するiptablesやnftables(中身はnetfilter)の機能では、一つのパケットに2回以上SNATあるいはDNATをかけることはできません。SNATでもDNATでも、パケットにNATをかけると一度決まったらそのパケットのNATに関する処理はそこで完了…

NAT動作をめぐる誤解まとめ

概要 この記事では、P2P通信の快適性などに大きく影響するところでありつつ、メーカー・プロバイダ側からそれほど積極的に情報が提供されているとは言えないNAT機器の動作について、よくある誤解をいくつか取り上げて解説します。 NAT動作に関する前提知識(…

Linuxのnetfilterのconnection trackingとNAT動作の仕組み

概要 LinuxではNATやファイアウォールなどのパケットの扱いを担当するカーネルの機能としてnetfilterというものが搭載されており、特にそのconnection trackingの機能を理解することがLinuxのNAT動作の理解には不可欠です。また、安価な市販ルーターの多くは…