WPP
ラズベリーパイの RUSTDESK をヘッドレスで使う

ちょっとYAMAHA ルーターの実験をするのに、LAN の向こう側約として Raspberry PI を使っていました。

それはどうでもいいのですが、RUSTDESK をインストールし vnc をアンインストールすると、RUSTDESK で接続できなくなってしまいました。

RUSTDESK に限らず、Linux で動くリモートデスクトップ系のアプリにはよくあるのですが自分が起動したときにデスクトップ環境のディスプレイが存在しないと接続に失敗してそのまま終わるという現象ですね。

VNC の場合も基本同じ設定でいけますがラズパイの場合、インストーラと raspi-config がよしなにしてくるのでこの設定は必要ない。

参考の von的部落格 でも Wayland から X11 に変更してが、たまたまそうなっていたのでそこはスルーする。

lightdm は使っていないのでここもスルー。

dummy ビデオドライバ?をインストールする。

$ sudo apt install xserver-xorg-video-dummy

; ダミーの xorg.conf を作成する
$ sudo /etc/X11/xorg.conf.d/xorg.conf 

ファイルの中身は以下のようにした。von的部落格 のサイトではもっと多くの解像度が定義されていたがうちにはそんな大きなモニタはないので外している。

Section "ServerFlags"
  Option "DontVTSwitch" "true"
  Option "AllowMouseOpenFail" "true"
  Option "PciForceNone" "true"
  Option "AutoEnableDevices" "false"
  Option "AutoAddDevices" "false"
  Option "IgnoreABI" "true"
EndSection

Section "InputDevice"
  Identifier "virtual_mouse"
  Option "CorePointer" "true"
  Driver "void"
EndSection

Section "InputDevice"
  Identifier "virtual_keyboard"
  Option "CoreKeyboard" "true"
  Driver "void"
EndSection

Section "Device"
  Identifier "virtual_videocard"
  Driver "dummy"
  VideoRam 192000
EndSection

Section "Monitor"
  Identifier "virtual_monitor"
  HorizSync   5.0 - 2000.0
  VertRefresh 5.0 - 200.0
  Modeline "1920x1440" 69.47 1920 1960 2152 2384 1440 1441 1444 1457
  Modeline "1920x1080" 23.53 1920 1952 2040 2072 1080 1106 1108 1135
  Modeline "1600x1200" 22.04 1600 1632 1712 1744 1200 1229 1231 1261
  Modeline "1440x900" 30.66 1440 1472 1584 1616 900 921 924 946
  Modeline "1280x1024" 31.50 1280 1312 1424 1456 1024 1048 1052 1076
  Modeline "1280x800" 24.15 1280 1312 1400 1432 800 819 822 841
  Modeline "1024x768" 18.71 1024 1056 1120 1152 768 786 789 807
EndSection

Section "Screen"
  Identifier "virtual_screen"
  Device "virtual_videocard"
  Monitor "virtual_monitor"
  SubSection "Display"
    Depth 24
    Modes "1920x1440" "1920x1080" "1600x1200" "1440x900" "1280x1024" "1366x768" "1280x800" "1024x768" "800x600" 
  EndSubSection
EndSection

Section "ServerLayout"
  Identifier   "virtual_layout"
  Screen       "virtual_screen"
  InputDevice  "virtual_mouse"
  InputDevice  "virtual_keyboard"
EndSection

RUSTDESK を初めてヘッドレスにする際は以下も必要になる。

$ sudo rustdesk --option allow-linux-headless Y
$ sudo rustdesk --get-id
$ sudo rustdeskt --password XXXXXX

rustdesk はデフォルトだと接続先の画面に表示されている接続ID とワンタイムパスワードをみながら接続する必要があるが、当然ヘッドレスだとそれができないので接続ID を取得して、固定パスワードに変更している。

$ DISPLAY=:0 xrandr --output DUMMY0 --mode 1024x768

は今回は必要なかったが、解像度変えたいときは使用すればいいってことか?

以上で無事接続できた。ディスプレイがなくても接続できる nomachine のほうがやっぱりかんたんかも。

参考

用RustDesk連線到headless的樹莓派Linux伺服器 · Ivon的部落格
中国語でしんどい、けど基本コピペでいけた

no display? · rustdesk/rustdesk · Discussion #1615 · GitHub

YAMAHA RTX1210 を Asahiネット IPIP + 固定IPアドレスオプション で使って Synology NAS をインターネットからアクセスできるようにする。

自宅 LAN 環境のルーターを NEC の IX から YAMAHA の RTX に変更したのだがなかなか苦戦したのでその顛末をメモする。 RTX1210 が Hairpin ナットに対応していないことに設定を始めてから気づいたり、自宅の模様替え以降どうにも WiFi が遅かった理由がケーブルだったりといろいろあったがなんとか解消できたので、一旦様子見としよう。

動機

NEC IX だとどうにも IKEv2 リモートアクセスを構築できなそうってことに気づき、なんだかなーと思っていたの思い切ってネット上でも IKEv2 リモートアクセスの設定例が見つかる RTX に変えることにした。

自宅 LAN にリモートアクセスするだけなら他の方式の VPN でも問題はないが、Android OS ネイティブ対応が IKEv2 のみになったのでちょっと困っていた。

回避策として Synology NAS についている OpenVPN サーバーで対応していたが、難しくはないがちょっと面倒に感じていた。

今日の時点ではリモートアクセス VPN は張っていないが、そのうちにやろうと思う。

前提

インターネット回線はタイトルにもあるが以下の通り

  • Asahiネット 光 の 1G のコース 10G だと「固定IPアドレスオプション」が使えない
  • 固定IPアドレスオプション
  • その結果、IPv4 over IPv6接続 (IPIP)
  • ひかり電話なし
  • ONU のみ

が使えるようになるってことらしい。PPPoE の IPv4 セッションも張れるがわざわざ使う必要はないだろう。
にしても ISP 界隈やケータイキャリア界隈ののネーミングセンスは壊滅的にわかりにくいと思う。名前から機能の差異がつかみにくいし、製品群の構成と名前付けルールが部外者からは理解し難く、わざとやっているのか?勘繰ってしまいたくなる。
LAN 内は、

  • Synology NAS
  • PC やスマホなどの端末機器

という構成です。NAS があること以外は至って代わり映えのない環境です。

なのでネットワーク構成は、

  • IPv6 で接続し、
  • その中を IPIP トンネルで流し、
  • DMZ はなし
  • LAN 内に配置した NAS に NAPT (ヤマハだとマスカレード) で外からアクセス
  • LAN 内に広告排除のために PiHole という DNSフィルタ (DNSサーバー)を建てるている。

って形になります。

[ここに図を入れる]

IPアドレス設計

IPアドレスはこんなふうになる。

ルーターの WAN側

IPv6 をあまり理解していないので間違いがあるかもしれない。

IPv6: 自動
IPv4: 157.107.76ZZZ

LAN 側

ルーター: 192.168.1.254

NAS: 192.168.1.244

その他端末: 192.168.1.0/24 のどこか

DNSサーバ: 192.168.1.245 (PiHole を参照するように DHCP で配布)

Asahiネットの固定IP 情報

固定IP が開通すると Asahiネット のマイページで以下のような情報を見ることができる。これらを適宜 RTX に投入する必要がある。

とはいえ、RTX のWeb管理画面でプロバイダー接続の設定はできるので、そこで一旦設定を作成してから手動で微調整した。(ネットワークガチ勢の硬派な方は GUI なんて使わないと思うがそこまでネットワークに興味ないので GUI でいきます。)

  • インターフェースID: 0000:0000:0000:0000:0000:9D6B:ZZZZ:0000 (ZZZZ はダミー)
  • AFTRエンドポイントIPv6アドレス: 2001:0C28:0001:0300:0000:0000:0000:ZZZZ
  • 固定IPv4アドレス: 157.107.76.ZZZ
  • アップデートサーバURL: https://v6update.asahi-net.or.jp/prefix
  • 認証用ユーザーID: P12345
  • 認証用パスワード: XXXYYYZZZ

開通通知の各項目は、設定画面では、(Asahiネット > RTX の Web画面 に対応する)

インターフェイスID > インターフェイスID:
上のインターフェイスID のうち上位の 0000 の並びを取り除き、再下位の 0000 を 0 に正楽略した形を指定する必要がある、要するに 9D6B:ZZZZ:0 とする必要がある。

AFTRエンドポイントIPv6アドレス > IPv6 アドレス:

固定IPv4アドレス > IPv4 アドレス:

アップデートサーバURL > アップデートサーバーの URL:

認証用ユーザーID > ユーザー名:

認証用パスワード > パスワード

にそれぞれ対応する。

RTX の設定した内容

結局こんな感じの大分類になりそう。(分け方とか認識に異論はあると思いますが、現時点の自分の中の整理ではこんなかんじ。)

  1. LAN 設定
  2. IPIP と IPv4 フィルタ
  3. NAT と IPv4 固定アドレス
  4. IPoE (IPv6) と Pv6のフィルタ
  5. DHCP
  6. あと LAN とか NTP アップデートとかもろもも
  7. LUA スクリプト

コンフィグ中に項番を入れコメントします。が基本は設定ウィザードの内容をいくらか修正しただけです。なのでフィルタの内容は十分といえないかもしれないので調整が必要だと思う。

上記の条件でよければ、コメントで開通通知の [項目名] とした部分を変更すればそのままで動くはずです。

# パスワードは encrypted な方がいいのはまちがいない
# このへんは、GUI で適当に
login password XXXXX
administrator password XXXXX
login user admin encrypted XXXXX
user attribute connection=serial,telnet,remote,ssh,sftp,http gui-page=dashboard,lan-map,config login-timer=1800
user attribute admin connection=serial,telnet,remote,ssh,sftp,http gui-page=dashboard,lan-map,config login-timer=1800

# コンソール文字化け対策
console character ja.utf8

# デフォルトで IPIP トンネルに抜ける
ip route default gateway tunnel 1

## 1. LAN設定 
ip lan1 address 192.168.1.254/24
# IPv6 アドレスを上から貰ってくる
ipv6 prefix 1 ra-prefix@lan2::/64

# 開通通知の [インターフェースID]
ipv6 lan1 address ra-prefix@lan2::9d6b:ZZZZ:0/64
ipv6 lan1 prefix change log on
ipv6 lan1 rtadv send 1 o_flag=on
ipv6 lan1 dhcp service server
switch control use lan1 on terminal=on

# これはようわからん、ウィザードが生成してきた。
# 削除するとイニシエーションに失敗するとか理由がありそうなので削らないほうが良さげ
lan linkup send-wait-time lan2 5

description lan2 AsahiNET

## 2. IPIP の設定 と  IPv4 フィルタ
tunnel select 1
 tunnel encapsulation ipip

#『IPv4 over IPv6接続(IPIP)接続設定情報』の
# [AFTRエンドポイントIPv6アドレス] まんま入力するとだめかも
 tunnel endpoint remote address 2001:c28:1:300::ZZZZ
 ip tunnel mtu 1460
 ip tunnel secure filter in 400003 400020 400021 400022 400023 400024 400025 400030 400032 400100 400101 400102 400103 dynamic 400082
 ip tunnel secure filter out 400013 400020 400021 400022 400023 400024 400025 400026 400027 400099 dynamic 400080 400081 400082 400083 400084 400085 400098 400099
 ip tunnel nat descriptor 20000
 tunnel enable 1
ip filter 1001 pass * * icmp * *
ip filter 400003 reject 192.168.1.0/24 * * * *
ip filter 400013 reject * 192.168.1.0/24 * * *
ip filter 400020 reject * * udp,tcp 135 *
ip filter 400021 reject * * udp,tcp * 135
ip filter 400022 reject * * udp,tcp netbios_ns-netbios_ssn *
ip filter 400023 reject * * udp,tcp * netbios_ns-netbios_ssn
ip filter 400024 reject * * udp,tcp 445 *
ip filter 400025 reject * * udp,tcp * 445
ip filter 400026 restrict * * tcpfin * www,21,nntp
ip filter 400027 restrict * * tcprst * www,21,nntp

# ping (icmp) を通しているが、落としてもいいと思う
ip filter 400030 pass * 192.168.1.0/24 icmp * *
ip filter 400032 pass * 192.168.1.0/24 tcp * ident
ip filter 400036 pass * 192.168.1.0/24 udp * ntp
ip filter 400037 pass * 192.168.1.0/24 udp ntp *
ip filter 400099 pass * * * * *

# Synology NAS に対する許可、ip tunnel secure filter in で使ってる 
ip filter 400100 pass * 192.168.1.244 tcp * 5000
ip filter 400101 pass * 192.168.1.244 tcp * 5001
ip filter 400102 pass * 192.168.1.244 tcp * 6690
ip filter 400103 pass * 192.168.1.244 tcp * https
ip filter 500000 restrict * * * * *
ip filter dynamic 400080 * * ftp
ip filter dynamic 400081 * * domain
ip filter dynamic 400082 * * www
ip filter dynamic 400083 * * smtp
ip filter dynamic 400084 * * pop3
ip filter dynamic 400085 * * submission
ip filter dynamic 400098 * * tcp
ip filter dynamic 400099 * * udp

## 3. NAT と IPv4 固定アドレス
nat descriptor type 20000 masquerade

# NAT の抜け先に固定 IP をあてる
nat descriptor address outer 20000 157.107.76.213
nat descriptor masquerade incoming 20000 reject 

# Synology NAS に対するアクセスを NAS の LANアドレスに向ける
nat descriptor masquerade static 20000 1000 192.168.1.244 tcp 5000
nat descriptor masquerade static 20000 1001 192.168.1.244 tcp 5001
nat descriptor masquerade static 20000 1002 192.168.1.244 tcp 6690
nat descriptor masquerade static 20000 1003 192.168.1.244 tcp https

## 4. IPv6 と IPv6フィルタ
ipv6 lan2 secure filter in 101000 101001 101002 101003 101010
ipv6 lan2 secure filter out 101099 dynamic 101080 101081 101082 101083 101084 101085 101097 101098 101099
ipv6 lan2 dhcp service client ir=on
ngn type lan2 ntt
ipv6 filter 101000 pass * * icmp6 * *
ipv6 filter 101001 pass * * tcp * ident
ipv6 filter 101002 pass * * udp * 546

# Synology NAS が使うポートを許可
ipv6 filter 101003 pass * * tcp * 5001

# IPIP を通す
ipv6 filter 101010 pass * * 4
ipv6 filter 101099 pass * * * * *
ipv6 filter dynamic 10197 * * https
ipv6 filter dynamic 101080 * * ftp
ipv6 filter dynamic 101081 * * domain
ipv6 filter dynamic 101082 * * www
ipv6 filter dynamic 101083 * * smtp
ipv6 filter dynamic 101084 * * pop3
ipv6 filter dynamic 101085 * * submission
ipv6 filter dynamic 101098 * * tcp
ipv6 filter dynamic 101099 * * udp

## 5. dhcp
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.1.1-192.168.1.244/24

# まあこれは趣味、NAS に常時同じIP を降らせてる
dhcp scope bind 1 192.168.1.244 01 90 09 d0 4b 06 cd

# Pihole: 192.168.1.245 と RTX自身と、pubulic な DNS を降らせる
dhcp scope option 1 dns=192.168.1.245,192.168.1.254,9.9.9.9
dns host lan1
dns service fallback on
dns server dhcp lan2 edns=on
dns private address spoof on

## 6. そのたもろもろ
tftp host lan
telnetd host lan1

# スクリプト実行(スクリプト自体は生成されたものを編集して使っている)
schedule at 1 startup * lua emfs:/v6plus_map_e.lua

# 時刻動機
schedule at 2 */* 05:43:21 * ntpdate ntp.nict.jp syslog
httpd host lan1
alarm usbhost off
alarm sd off
alarm entire off
sshd service on
sshd host key generate 57712 ZZZZZZZ
# any ホストはまずいかも
sftpd host any
statistics traffic on
statistics nat on

embedded file v6plus_map_e.lua <<EOF

#『IPv4 over IPv6接続(IPIP)接続設定情報』の
# [アップデートサーバURL]、[認証用ユーザーID]、[認証用パスワード] を貼り付け
UPD_SV = "https://v6update.asahi-net.or.jp/prefix"
USERNAME = "P1234"
PASSWORD = "XXXYYYZZZ"

# ここはウィザードがやってくれるのでいじらない
WAN_IF = "LAN1"

LOG_PTN = "Add%s+IPv6%s+prefix.+%(Lifetime%:%s+%d+%)%s+via%s+" .. WAN_IF .. "%s+by"
LOG_LEVEL = "info"
LOG_PFX = "[v6plus]"
FAIL_MSG = "Failed to notify IPv6 address to the update server. (remaining retry: %d time(s))"

function logger(msg)
rt.syslog(LOG_LEVEL, string.format("%s %s", LOG_PFX, msg))
end

local rtn, count, log, result
local req_t = {}
local res_t
req_t.url = string.format("%s?user=%s&pass=%s", UPD_SV, USERNAME, PASSWORD)
req_t.method = "GET"
while true do
rtn = rt.syslogwatch(LOG_PTN)
if rtn then
count = 3
while true do
res_t = rt.httprequest(req_t)
if res_t.rtn1 then
logger("Notified IPv6 address to the update server.")
if res_t.code == 200 then
result = "Succeeded"
else
result = "Failed"
end
log = string.format("%s to update IPv6 address. (code=%d, body=%s)", result, res_t.code, res_t.body)
logger(log)
break
end
count = count - 1
if count > 0 then
logger(string.format(FAIL_MSG, count))
rt.sleep(10)
else
logger("Failed to notify IPv6 address to the update server.")
break
end
end
end
end
EOF

LAN内から固定IPあての通信をPiHoleで解決

上が完成形なのだが、当初は DHCP で PiHole のアドレスを配布していなかった。

というのもヘアピンNAT機能が RTX1210 に無いため、LAN内から固定IPあての通信ができないことに気づいた。詳しくいうと独自ドメインに固定IP を紐付けインターネットに公開しているサーバがあり、それにアクセスできなくなっていた。

そのサーバは実際には、 Synology NAS でホストしているのだが、Synology の NAS の画面に接続できていたので、接続 OK と思い込んでいた。

スマホからは、独自ドメインのそのサーバにに、スマホの5G / 4G からはアクセスできていたので、IPv4 で通信はできていることになる。

さいわい、 PiHole をすでに使っていたので DCHP から配布するようにし、
PiHole の ローカル DNS レコードで独自ドメインを内向けに設定した (つまり NASの 192.168.1.244 を独自ドメインの FQDN にした)。

これにより、LAN 側から独自ドメインのサービスへのアクセスも疎通するようになった。

一時は面倒なので RTX830 か 840 あるいは 1220 を買うのかとも思ったが買わずにすんでよかった。

結局のところ NAS の画面には、IPv6 で接続していることなんだろうな。個人で使える固定 IPv6 というのを見たことがないが、それがあれば、単に DNS に登録するだけで済む話なんだろう。

駄話

部屋の模様替えをしてからというもの WiFi が遅いなーとは思っていたのですが、RTX の Web 画面で見てみると 100Base で接続されていました。レイアウト変更時に間に合わせでつないだケーブルを変更するのを忘れていました。

ケーブルをカテ 6A に交換すると常時100Mbps 以下だったところが、いいときは 500Mbps 越えも記録するようになった。物理的に 100Mbps が上限だったので当然といえば当然。世間的には決して早くはないですが、前がひどかったのでだいぶ良くなった。

教訓

事前準備は周到に!

参考

IPv4 over IPv6接続(IPIP) | IPv6接続機能 | オプション | 各種サービス | プロバイダ・インターネット接続は ASAHIネット
Asahiネットの対応機種リスト

IPv4 over IPv6接続(IPIP) 固定IP接続を設定する (Asahi-Net v6プラス) – YAMAHA RTXルーターの操作方法 設定 Tips | iPentec

公式の設定サンプル v6 コネクト接続設定例

introduction for YAMAHA remote router series
RTPro 公式の資料集

コマンドリファレンス
公式のリファレンス

RTX1200のv6コネクト接続設定でハマる – GentooやIoTの覚え書きブログ
RTX1200 でもやれるらしい

RTX830 の設定、IPv6 の話 – 記憶力が無い
さらっとしか見ていないがこれとほぼ同じでできるはず。

RTXルータでパケットフィルタのログを確認する – 3流プログラマのメモ書き
これも参考になる。

【ヘアピンNATができない!】LANからだとアクセスできない問題を解決する。【ローカルDNS】
ヘアピンNATはこのページをヒントに今回は PiHole で回避した

YAMAHAルータでヘアピンNAT(NATループバック)を有効にする – OpenTecMemo / オープンテックメモ
これはよくわからなかった。pp のアドレスと固定IPを別にすると向き先が違うので NAT が効くってことらしいが、IPIP トンネルでどうしたらいいかわからなかった。できなそうな気もする。

YAMAHA RTX1200 – maruko2 Note.
チートシート的なページ

ヤマハルータのコマンド | muchbow
これもチートシート的なページ

どうでもいい話だが、AsahiネットはAasahiNet なのかASAHINETなのか表記がゆれててよくわからん

synology NAS に pi-hole をインストールするも “Failed to set capabilities for pihole-FTL. Cannot run as non-root.” ではまった話

暑いあまりにも暑い。

それはともかく、 iPhone があまりに広告に対し脆弱なので pi-hole をインストールした。

クライアント側にアプリを入れる対策もあるが、正直毎回入れるのは面倒なので、dhcp で参照先 DNS として配布できる pi-hole を入れてみた。

ここまで来るまでには Adguardhome (Adgurad のサーバー版) も試したのだがちょっと自分には機能が豊富すぎる気がしたので pi-hole に一旦落ち着いたところだ。

以下の設定は、docker の動く synology なら動作する。もちろん単独のサーバーでもいい。

docker を bridge モードで動かすと アクセス元のクライアントがみんな一緒になってしまう問題があるが、 fetburner.core の情報を参考にして以下のようになった。

環境

LAN 側の状況

IP: 192.168.1.0/24
デフォルトゲートウェイ: 192.168.1.254

コンテナにも、LAN 側の IP を別個で割り当てる。

IP: 192.168.1.245
まあ、他とかぶらなければなんでもいい。
(当然だが、LAN 内の他のホストと衝突しないように調整する。必要ならルーター dhcp の除外範囲も調整する)

ブラウザでダッシュボードにアクセスするとセキュリテイ警告がでるが、インターネット側からアクセスする必要はないと判断して外部からアクセスするための設定は省略した。

必要なら synology のリバースプロキシとルータのポート開放を設定すること。

docker-compose.yml

実は、公式の docker-compose.yml をコピーしても起動時に ”Failed to set capabilities for pihole-FTL. Cannot run as non-root.” というメッセージを吐いてコケる問題があったが、DNSMASQ_USER を指定してやると回避できた。

# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
services:
  pihole:
    container_name: pihole
    image: pihole/pihole:latest
    volumes:
      - /volume1/docker/pihole/conf:/etc/pihole
      - /volume1/docker/pihole/dnsmasq.d:/etc/dnsmasq.d
    environment:
      TZ: 'Asia/Tokyo'
      FTLCONF_webserver_api_password: 'なんかパスワードをしていすること'
      DNSMASQ_LISTENING: 'all'
      DNSMASQ_USER: 'root'
    networks:
        macvlan:
             ipv4_address: 192.168.1.245
    cap_add:
      - NET_ADMIN
    security_opt:
        - no-new-privileges:true
    restart: unless-stopped

networks:
    macvlan:
        name: macvlan
        driver: macvlan
        driver_opts:
            parent: ovs_eth0
        ipam:
            config:
                - subnet: 192.168.1.0/24
                   gateway: 192.168.1.254

起動後の設定

上記の設定ならブラウザで http://192.168.1.245/admin にアクセスするとダッシュボードが表示される。

左側の settings から DNS に進みお好みの上位 DNS を指定すれば設定は完了。
必要なら、Custom DNS にローカルのルーターを指定してやってもいい。なんにもしなくても動くようになっているので楽ちん。

dhcp から DNS を配布

DNS タイプの広告ブロッカーはインストールしただけでは、クライアントから使うことはできない。クライアントが今までとは別の新しい DNSサーバー を参照しないと意味がない。これは Pi-hole もAdguradhome も同様だ。

手順は割愛するが、iPhone だと手動で DNS を切り替えることができる。

Android12 以降では、手動での切り替えはできない。

何れにしても手動で設定するのは面倒なので、しばらく使ってみて問題がなさそうならルーターの dhcp から pi-hole の ip アドレスを DNS として配布するように設定するつもりだ。

多くの場合、ルーター自身の参照 DNS や dhcp の設定で配布する参照 DNS を決定をすればいい。

補足

実は synology で動かす前に、ROCK64 といラズベリーパイ3B 互換の SBC で試してみた。が明らかにインターネットの参照が遅くなったので、最終的に synology NAS で動かすことにした。

ROCK64 では dietpi という軽量 Linux に直接インストールしてみたがそれでも遅かったのでしかたない。PI4 か PI5 なら違った結果になったのかもしれない。

参考

synology の openVPN に Linux MINT から接続する

synology の NAS には VPN サーバ機能があり openVPN 接続に対応している。

Linux MINT (22.1)を使った家の環境では openVPN 接続を追加する際、デフォルトの設定のままでは接続できなかった。試行錯誤して接続できたので設定画面をメモする。

設定アプリのネットワーク のキャプチャをメモしておく。

openVPN を設定した項目で ギアマークをクリックすると、ダイアログが開く。
Details タブはなにもないのでスルー。

Identity タブ から Advanced… ボタンをクリックする。

Advanced Properties ダイアログの General タブはこんな感じ。多分になにも変えていない。

Security タブは、synology の openVPN と合わせる。

TLS Authentication タブは、 Verify peer (server) certificate usage signature にチェックをいれ Server を選択する。これをしないとネゴシエーションに失敗するようで接続することができない。

再設定する際に、きっと忘れてしまうので記録しておく。