karubabuの日記

タイトルに解決と書いているものがあるけれど、別に付いていない物は解決していないというわけではないです。つまるところ記事を書いた後に解決してちょっと嬉しかったので付けました。

DNS over https + dnsmasqする

トレンドなのでやった
特にこれといった目的はないです

なにをした

私の環境はarchなのでpacaurでdnsmasqと、
AURからGitHub - m13253/dns-over-https: Client and server software to query DNS over HTTPSを引っぱってくる

pacaur -S dns-over-https dnsmasq

素の状態で両方systemd経由で起動すると、bind「Address already in use」
と大激怒してくるのでこんな感じで適当に設定する

/etc/dnsmasq.conf

# stops dnsmasq from reading resolv.conf
no-resolv

# add your secureoperator server as the upstream dns server
server=127.0.0.1#5353

ポート番号は何でもよいと思うけれど、#5353をコメントだと思って消すとひどい目にあう(1敗)

/etc/dns-over-https/doh-client.conf

listen = "127.0.0.1:5353"
#以下をCloudFlareを使う用に変更した

ここのポート番号はdnsmasqと同じものを使う

おわりに

wiresharkで確認すると、まず普通にDNSdns.cloudflare.comを名前解決しに行きそこで手に入れたアドレスに対してDNS over HTTPSを叩いているのが見える
最初ip.addr == 1.1.1.1してフィルタを書けてもそれっぽい通信が無くてめっちゃ焦りました(1敗)
使用感は別に変わらないのでdoh-client.confでverbose = trueにしてsystemd経由で眺めたりdigを叩いて確認するときれいでよかった

20180417追記:
AURのパッケージにもアップデートが来た(元々ブログを書いた時にはout of date flagが付いていた)
その結果upstream_googleに"https:/1.1.1.1/dns-query"の様にアドレスを直に書けば初動のdns.cloudflare.comへ名前解決もしなくてよくなったみたい(今までも出来たものなの?)
でもここに"https://[2606:4700:4700::1111]/dns-query"とipv6を書くと403が返ってくる
私が何か間違っているのか対応していないのかわからん…(ジャガー)
20180418追記:
なんか適当なことを言っていたと気が付いたのを直した

openvpnがERROR: Cannot open TUN/TAP dev /dev/net/tun: No such device (errno=19)

無いじゃなく君が作るの!!!!!!つくって!

なにがあった

vpngateのopenvpn用コンフィグファイルを使って接続しようとしたら出た

どうした

此れをやる前にpacaur -Syuしてカーネルの更新が入ったのが原因そう?
https://bbs.archlinux.org/viewtopic.php?id=163377
ここでも同じような雰囲気で解決したものがあった

アップデートが入ったら再起動しようね

archliunx USBデバイスが認識しないやつが解決した

archliunx USBデバイスが認識しない - karubabuの日記
これの原因が分かりました

原因

mstdn.maud.io
ddした後使っていない元/bootパーティションをそのままにしていた事が全ての元凶でした
* 同じUUIDを持つパーティションが出現する
* 初動はNvme ssdBIOSが読みこめないため問題なくUSB側にある/bootが読みこまれる * GRUB起動後にシステムが起動し/etc/fstabを読みにいってマウントしようとする
* 同じUUIDの物があるので適当な方を選ぶ、今回だと常に使っていない方(NVMeSSDにある方)を読む * 結果起動した時の情報とシステムで認識した/bootにある内容が一致しなくなる
* 諸処の問題が浮上する

この流れだったようでした

どうした

fstabをUUIDでない指定を使ってUSBメモリにある/bootをマウントする様に変更する

よくよく考えるとしょうもなかった
これでまた思考停止yaourt -Syu できるね
いつになってもうまいこと箇条書きが出せないけれどまあ分かるしたるいからいいや

ローカルにcgitを立てた時に困ったやつ

systemd-nspawnの☝️でnginxが動いているみたいなやつです
原因が分かったわけではなく、なんか直ったといういつものあれでこわいね
基本的にarch wiki
systemd-nspawn - ArchWiki
cgit - ArchWiki
このあたりを見ています

続きを読む

デスクトップlinux用keybaseで日本語入力が出来無い

久し振りにまたnihonngo ga utenai案件に遭遇した
インプットメソッドモジュールとかいうのが必要になるという話だった

なにがあった

[Urgent] Keybase desktop clients prevent switching IME to Japanese language · Issue #9861 · keybase/client · GitHub
これに遭遇した
既に修正はマージされているという話なのでpacaur -S keybase-gitで最新を持ってくれば解決やん!
と思っていたけれど解決しない
いしゅーの通り、systemd経由でない起動方法
+ /opt/keybase/keybase &で起動
+ export KEYBASE_SYSTEMD=0してから起動
だと問題なく日本語が打てる

解決策

fcitx-diagnoseしてみると、

## Gtk:
1.  gtk - `${GTK_IM_MODULE}`:

    環境変数 GTK_IM_MODULE は "fcitx" に正しく設定されています。

2.  `gtk-query-immodules`:

    1.  gtk 2:

        gtk `2.24.31` 用の `gtk-query-immodules` を `/usr/bin/gtk-query-immodules-2.0` に見つけました。
        バージョンライン:

            # Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.24.31

        **Failed to find fcitx in the output of `/usr/bin/gtk-query-immodules-2.0`**

        **gtk 2 用のFcitx im モジュールが見つかりません。**

    2.  gtk 3:

        gtk `3.22.26` 用の `gtk-query-immodules` を `/usr/bin/gtk-query-immodules-3.0` に見つけました。
        バージョンライン:

            # Created by /usr/bin/gtk-query-immodules-3.0 from gtk+-3.22.26

        gtk `3.22.26` 用のFcitx im モジュールを見つけました。

            "/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so" 
            "fcitx" "Fcitx (Flexible Input Method Framework)" "fcitx" "/usr/share/locale" "ja:ko:zh:*" 

3.  Gtk IM モジュールキャッシュ:

    1.  gtk 2:

        gtk `2.24.31` の immodule cache を `/usr/lib/gtk-2.0/2.10.0/immodules.cache` に見つけました。
        バージョンライン:

            # Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.24.31

        **Failed to find fcitx in immodule cache at `/usr/lib/gtk-2.0/2.10.0/immodules.cache`**

        **キャッシュに gtk 2 用の fcitx im モジュールが見つかりません。**

    2.  gtk 3:

gtk 2 用のFcitx im モジュールが見つかりません。
キャッシュに gtk 2 用の fcitx im モジュールが見つかりません。

keybaseはgtk2を使っているしこの辺が問題そう?
と思いpacaur -S fcitx-gtk2すると問題なくsystemd経由でも日本語入力が出来るようになった

おわりに

最強コマンドfcitx-diagnoseほんとえらい
今更使うと思っていなくてfcitx-gtk2を入れていなかったのもあったり、

Fcitx - ArchWiki

インプットメソッドモジュール

GTK+ や Qt プログラムでより良い動作を得るには、必要に応じて fcitx-gtk2, fcitx-gtk3, fcitx-qt4, fcitx-qt5 パッケージをインストールしてください。もしくは fcitx-im グループで全てのパッケージをインストールできます。モジュールをインストールしなくてもアプリケーション上でインプットメソッドは動作しますが、フリーズしたりプレビューウィンドウの位置がおかしくなったり、プレビューが表示されなくなったりします。 

とここを見る限りだとちょっと困るくらいの内容なのかな??と思って読んでいたので、インプットメソッドモジュールを甘くみていました…

archliunx USBデバイスが認識しないやつがまだ発生する

archliunx USBデバイスが認識しない - karubabuの日記
これです
微妙に進展したようなそうでないようなという状態なのでまたメモしておくね
まだ解決していないのでなんとかして

なにがあった

yaourt -Syuした後(多分linux-ltsの更新が入った時)に再起動をすると、
上記のリンクの状態が再発生する

なにした

  • 一応linux(linux-ltsでない)はpacman.confでIgnorePkg=linuxしてある
  • リンクと同じ解決方を行うと直る
  • 今回は# mkinitcpio -p linux-ltsしなくとも直った
    • これもしかして今迄要らなかったものなの…?それとも今回要らなかったの?

追記2017-12-24

丁度またlinux-ltsの更新が飛んで来たので更新をしたらまた発生した
+ arch-chrootした直後にmkinitcpio -p linux-ltsを叩くと👇のエラーが出る
+ pacman -S mkinitccpioすると、/libの👇にあるカーネルの某が不正な状態だ。の様なエラーが出る
+ mkinitcpioはlinux-ltsをインストールするときに自動で実行されると思っているので、その結果で何かがあった?
+ linux-ltsをインストールするときはエラーもなく成功している出力だった

これらはarch-chootしてもう一度pacman -S linux-ltsをやると問題なく実行できるようになった

おわり

そもそもマシンの構成とか置いておくべきなのだろうけれど、
私の日本語が検索エンジンにひっかかって来るなんてことはそう無いと思うのでまあいっかみたいなところあります めんどいしね

多分linux-ltsをアップデートした後にmkinitcpioを再インストールすれば問題が発生しなくなりそう?
今度やってみようね

ipv6一時アドレスを送信元アドレスとして使ってくれない

1ヶ月くらい前からやたら綺麗なv6addrが出てくるな🤗と思ったら一時アドレスを使ってくれていなかった
これに意味があるのかあまり調べていなくて正直謎みたいなところはあるのだけれど、長いアドレスだとv6っぽくてかっこいい(?)のでこれを送信元とするように変更した
何が原因だったのかはよく分からないけれどnetctlからsystemd-networkdに移行して適当に設定を弄ったら使ってくれるようになった

おきたこと

1ヶ月超くらい前からip aすると

inet6 ****:****:****:1::1/128 scope global dynamic noprefixroute 
       valid_lft 1660sec preferred_lft 1660sec

のようなアドレスが送信元として使用されてしまうようになった
(隠すところここだけでええんか🤔)
前は/64なアドレスを使っていたしもっとなんか乱雑じゃなかったっけ???
と思いながら調べると IPv6 - ArchWikiこんなのがあった
なんかの拍子にmacaddrを隠す設定が使われなくなったということなのかしら

なにをした

systemd-networkdへの移行

なんだか上記のリンクにnetctlがないし折角だからsystemd-networkdに移行することにした
前々からnetctl経由でwpa_supplicantを使用していたのでそのあたりは困ることもなく
systemd-networkd - ArchWikiを見てsystemd-networkd用のnetworkファイルを作成するだけで出来た
networkファイルはこんなかんじになるはず

[Match]
Name=wlp0s*

[Network]
DHCP=ipv4

後は適当にnetctlを止めて無効化してsystemd-networkdを有効化する

プライバシー拡張の有効化

さっきのnetworkファイルのNetworkセクションに IPv6PrivacyExtensions=kernelを追加して再起動
この再起動、systemd-networkdだけ再起動したけれどだめだったのでパヨヨンごとやらないとだめそう わからん
これで多分見慣れた小難しいアドレスが出る

おわり

ip addr change ****:****:*****:1::1/128 dev wlp0s preferred_lft 0
ip addr delete ****:****:*****:1::1/128 dev wlp0s
とかもやってみたけれどDHCPv6が走る度にリセットされてしまうのでだめだった

相変わらずだけど原因は分からないしなんで直ったのかも今一つ分からないみたいなところあってこわいね