kazeno memo

メモとか

Value-server SSHホワイトリストに任意のIPアドレスを登録したい

バリューサーバーにSSH/FTP接続する場合、事前にIPアドレスを登録する必要があります。

ブラウザからコントロールパネルにアクセスしなければ登録できないわけですが、実際には、POSTリクエストを投げてるだけなので、cURLとかでどうにかなります。

curl https://<サーバー番号>.valueserver.jp/cp/admin.cgi \
  -X POST \
  -H 'Cookie: ID=<コンパネID>; PASS=<コンパネPASS>' \
  --data-raw 'id=<コンパネID>&pass=<コンパネPASS>&id=<コンパネID>&pass=<コンパネPASS>&nomenu=1&remote_host=<IPアドレス>&ssh2=SSH%93o%98%5E'

面倒くさいことに、自信のパブリックIPアドレスと、リクエストのIPアドレスが異なっていると、不正なリクエストと言われてしまいます。

mpv youtube-dlの代わりにyt-dlpを使う

私はmpvベースのBaka Mplayerというメディアプレイヤーを使っています。

mpvyoutube-dlと組み合わせることができますが、呼び出すyoutube-dlをyt-dlpに置き換えたいわけです。(シンボリックリンク張れば良さそうですが……)

このコミットによると、ytdl_pathyoutube-dlの代替パスを指定できるようです。

具体的には、mpvの設定ファイル(もしくはコマンドラインのオプションに)にscript-opts=ytdl_hook-ytdl_path=<代替パス>を追加するということです。

mpvの設定ファイルは~/.config/mpv/mpv.confにあります。

$ cat ~/.config/mpv/mpv.conf
script-opts=ytdl_hook-ytdl_path=yt-dlp

試しにBaka MplayerTverのURLをCtrl+Vしてみると、問題なく再生することができました。

Librewolf AppImage版 PGP公開鍵の場所

LibreWolf-96.0.3-2.x86_64.AppImage.sigA98C3D1364D8C16408143C2E2954CC8585E27A3Fで署名されています。

これは、Librewolfのコア開発者である@ohfpさんの鍵です。

"ohfp repo key (Repository signing key for privacyshark repo) <1813007-ohfp@users.noreply.gitlab.com>"

GitLabやGitHubの場合、ユーザーページのURL末尾に.gpgを追加することで、PGP公開鍵を入手できます。(同様に、.keysを追加することでSSH公開鍵を入手できます)

GnuPGを使用している場合、--recv-keysオプションを使うことで、公開鍵サーバから対応する鍵を検索し自動でインポートしてくれます。

$ gpg --recv-keys 0xA98C3D1364D8C16408143C2E2954CC8585E27A3F

Rootless modeでlinuxserver.ioコンテナのPUID/PGIDがうまく設定できない?

linuxserver.ioの提供するコンテナは、環境変数PUID(uid) PGID(gid)で実行ユーザーを指定できます。(例えば、PUID/PGID=1000とすれば一般ユーザーで実行できます。)

ただし、DockerをRootless modeで実行している場合、PUID=1000を指定するとホスト側は100999に、PUIDを指定しないと100910といったuid/gidになってしまいます。

これは、ホスト・コンテナ間のuid/gidマッピングが通常のDockerとRootless modeで異なることが原因だと思われます。

Rootless modeでは、ホストのuid 1000がコンテナ内のuid 0として扱われます。1 2

そして、Rootless mode上のlinuxserver.ioコンテナでは、uid/gidがこのようにマッピングされているようです。

PUID ホスト
PUID=指定せず 100910
PUID=1000 100999
PUID=0 1000

つまり、Rootless modeでlinuxserver.ioコンテナのuid/gidに1000を指定したい時は、明示的にPUID/PGID=0を指定する必要があるということです。

動画のリサイズ 垂直・水平解像度 どちらに合わせるのが最適か?

1920x1040の動画ファイルをHD(720p)に縮小する場合、垂直解像度(1040)を720に合わせるのか、水平解像度(1920)を1280に合わせるのが良いのか。

また、ffmpeg--scale=を使いリサイズする場合、サイズを偶数にする必要があるようですが、1920x1040の場合は奇数で、あまりが出ます。これは切り捨てたほうが良いのでしょうか?

1920x1040という解像度は、映画で使用されるビスタビジョン(アメリカンビスタ)というようです。

VLCのフォーラムにトリミングとサイズ変更についてのガイドがありました。ただし、これが正しいのかそうでないか全くわからないです。


  1. まず、元動画のアスペクト比を計算します。

    アスペクト比=水平/垂直なので、1920x1040の場合、1.84615384615=1920/1040となります。

    (Wikipediaによればアメリカンビスタのアスペクト比は「1.85:1」とのことで、上記の計算とほぼ合致します)

  2. 元動画のアスペクト比を計算したら、次に720pの解像度を計算する必要があります。

    720p規格では、水平解像度が最大1280px・垂直解像度が最大720pxと規定されているそうです。これに基づいて次のいずれかの計算が必要です。

    • アスペクト比 > 16:9=1.77(7)の場合(アスペクト比が1.77より高い)

      水平解像度を1280pxに固定します。垂直=1280/アスペクト比という式で垂直解像度を計算します。

    • アスペクト比 > 16:9=1.77(7)の場合(アスペクト比が1.77より低い)

      垂直解像度を720pxに固定します。水平=720*アスペクト比という式で水平解像度を計算します。

    1920x1040の場合、1.77より高いので水平解像度を1280に固定します。垂直解像度は上記の式によって693.333333335=1280/1.84615384615となります。

  3. 垂直解像度が693.333333335の場合、偶数にするため切り上げ(694)、もしくは切り捨て(692)が必要です。この場合「アスペクト比 誤差(AR error)」が低い方を選ぶ必要があります。

    切り上げ・切り捨て両方のアスペクト比を求め、元動画のアスペクト比とより誤差の少ない方が最適な解像度ということです。

    まず、694と692のアスペクト比を計算し、そこから元動画のアスペクト比(1.84615384615)を引きます。

    • 1280/694=1.84438040346 1.84438040346-1.84615384615=-0.00177344269
    • 1280/692=1.84971098266 1.84971098266-1.84615384615= 0.00355713651

    最適な垂直解像度は694であることがわかりました。


1.33:1 - 1436x1080 or 1440x1080? 1.37:1 - 1480x1080 or 1484x1080? 1.66:1 - 1788x1080 or 1792x1080 or 1796x1080 or 1800x1080? 1.85:1 - 1920x1036 or 1920x1040? 2.35:1 - 1920x816? 2.55:1 - 1920x752? 2.39:1 - 1920x800?

Debian Busterでfirewall-cmd --reloadするとクラッシュしちゃう

Debian Busterのファイアウォールufwからfirewalldへ移行したんですが、firewall-cmd --reloadするとクラッシュしてしまいます。

journalctlを使ってログを見てみるとこのようなエラーを吐いてました。

ERROR: COMMAND_FAILED: '/usr/sbin/ip6tables-restore -w -n' failed: ip6tables-restore v1.8.2 (nf_tables): 
line 4: RULE_REPLACE failed (No such file or directory): rule in chain INPUT

ERROR: 'python-nftables' failed: internal:0:0-0: Error: No such file or directory
internal:0:0-0: Error: No such file or directory

samjhandleyさんのこのIssueによると、iptables 1.8.2のバグなのだとか。

確認してみるとbusterのレポジトリにあるiptablesは1.8.2-4で、buster-backportsiptablesは1.8.5-3でした。

余談ですが、Debian Busterからnftablesがデフォルトとなりました。iptablesパッケージの中身もnftablesなので、nftablesパッケージをインストールする必要はありません。

buster-backportsレポジトリの追加

必要に応じてbackportsレポジトリを追加してください。

/etc/apt/sources.list.d/buster-backports.list

deb https://deb.debian.org/debian buster-backports main contrib non-free

iptables 1.8.5のインストール

backportsからパッケージ取得するには、aptに-t buster-backportsを指定します。

# apt update
# apt install -t buster-backports iptables
$ iptables --version
iptables v1.8.5 (nf_tables)

firewalldの再起動

# systemctl restart firewalld.service
# firewall-cmd --reload
# journalctl -xeu firewalld.service

firewalldは正常にリロードできるし、systemd serviceのログにもエラーは出ていません。

ffmpeg MP4に字幕(.srt)を追加

字幕を追加

ffmpeg -i <動画ファイル.mp4> -i <字幕.srt> \
    -c copy \
    -c:s mov_text -metadata:s:s:0 language=jpn \
    <動画と字幕.mp4>

-metadata:s:s:0は字幕ファイルのメタデータMetadata>Stream>Subtitle>#0

language=jpnを指定するメリットは、OS(もしくは再生ソフト)の言語設定に合わせて適切な字幕ファイルを読み込んでくれること。

-movflags faststartが有効なのかffmpegで調べる

ffmpeg-movflags faststartオプションを付けると、moov atomを先頭に含めることが可能ですね。

ただ、ffprobeでfaststartが有効になっているのか確認することはできません。

これは-v traceで確認することができるようです。

$ ffmpeg -v trace -i <動画ファイル.mp4> 2>&1 | grep -e type:\'mdat\' -e type:\'moov\'

mdatよりmoovが先に出力されたらfaststartが有効になっています。

VPN業者とレビューサイトは同一企業?

Peter Sundeのツイートを見ていたらWindScribeのブログ記事に言及していました。

VPNサービスがレビューサイトを所有している事は問題です。私がVPNサービス(現在はnjallaの一部)を始めたのは、他のVPNサービスをどんな人が運営しているかよくわからないからで、今も知らないままです。VPNの目的が安全であると考えるなら、無名の人が運営するサービスを利用することには意味がありません。

https://twitter.com/brokep/status/1439319931137531908

ということで、その記事を翻訳しました。

この記事を読む上で、「WindScribeもまたVPN業者である」という点には留意しておくべきでしょう。

  • 2022/02/14 追記
    今度は、SurfsharkがNord Security(NordVPN親会社)との合併を発表しました。発表の少し前には、Surfshark創業者がリトアニアメディアのインタビューに対し、NordVPNやProtonVPNとの関係が取り沙汰されていたベンチャーキャピタルTesonetとの関係を明らかにしていました。

  • 2022/02/24 追記
    2021年10月、j2GlobalはZiff Davisへと社名を変更しています。Speedtest.netやDowndetectorでおなじみのOoklaも傘下に収めているようです。


繰り返される買収

有名なVPN業者とレビューサイトが、「j2Global」と「Kape Technologies」の2社に相次いで買収されているのです。

j2Global

j2Globalは、IGNMashablePCMagなど有名なテック系メディアを所有するメディア企業で、いくつかのVPN業者を傘下に収めています。

WindScribeはj2Globalの利益相反を指摘しています。というのも、IGN・PGMagなどのメディアはよくVPN業者のレビューを行っているのです。これらのレビューでは、グループ企業である旨が開示されていますが、自らのグループ企業を"レビュー"するのは不誠実だとWindScribeは批判しています。(確かに、「レビュー」と言われると中立的な批評というイメージを持ってしまいます)

Kape Technologies

Kapeは悪名高いことで有名ですよね。以前の社名は「Crossrider」と言い、アドウェアやブラウザ乗っ取りソフトを製作している企業でしたが、2018年サイバーセキュリティ企業に転身しました。Kape・Crossriderの投資家はイスラエル出身のTeddy Sagiという人物で、1996年には贈収賄と詐欺で服役していたこともある曰く付きの人物。

Kape Technologiesへと転身した後、有名VPN業者を相次いで買収し始めます。

怪しいのはここからです。2021年、KapeはWebSelenceという会社を買収しました。この会社は2つのサイトを保有しているマーケティング企業です。

  • vpnMentor ― VPNレビューサイト
  • Safety Detectives ― VPNレビューサイト

買収額は14億9100万ドルで、すでに買収したVPN企業を全て合わせた買収額1より高いです。

KapeがVPNレビューサイトを必要とする理由は明白で、セルフプロモーションのため。ということで、vpnMentorによる「ベストVPN」トップ3を見てみましょう。

第一位がExpressVPN、第二位がCyberGhostVPN、第三位がPrivateInternetAccess

Kape所有のVPN企業がトップ3を独占しています。

どうせ、一部の企業が不誠実なことをやっているだけ、と思っているならそれは間違いです。別のレビューサイト、VPNRanks.comは「ベストVPN」としてPureVPNを挙げていますが、このサイトのオーナーは誰でしょうか? 正解はPureVPN。最近このランキングを取り下げたようですが。


この後WindScribeの宣伝が続くので省略しましたが、最後にいいことを言っていました。

簡単なVPNの選び方、というかババを引かない簡単な方法があります。VPNの広告や、アフィリエイトの為に宣伝している人を見たら、そのVPNを使わないということです。トラッキングからの保護を謳う一方、シェア獲得のため積極的にトラッキングを利用しているのであれば、それは偽善的で不誠実なのです。


  1. ExpressVPNの買収はWebSelenceの後なので「全て合わせた買収額」に含みません