Ubuntu18.04でVPN切断後に名前解決できなくなるバグ対応

問題点

L2TP/IPsecで自宅にVPN接続して切断するとインターネットにつながらなくなる。ググってみるとここで議論されているやつと同じだと思うのだが、18.10では修正済みらしい。要するにVPNを切断した際にsystemd-resolvedを自動で再起動してくれればそれで良い。

解決策

下記の場所/内容のスクリプトを配置する。

#!/bin/sh
status=$2
case $status in
    vpn-down) systemctl restart systemd-resolved ;;
esac

実行可能に設定する。

# chmod +x /etc/NetworkManager/dispatcher.d/02-restart-resolved-when-vpn-disconnect

Ubuntu16.04をupdateできない問題(appstream)

2018/11/01にUbuntu16.04をインストール後、アップデートで失敗した際の備忘録。
*** Error in `appstreamcli’: double free or corruption (fasttop): 0x0000000000000178 ***

appstreamを削除すればとりあえずアップデートできる。

# apt remove appstream

CUPS-PDFの保存先変更

■/etc/cups/cups-pdf.conf

上記ファイルを編集。下記箇所を変更。

・保存場所
 Out ${HOME}/Desktop

・ファイル名の前にジョブ番号を付与
 Label 1

・ファイル名に保存場所を含めない
 TitlePref 1

■/etc/apparmor.d/usr.sbin.cupsd

上記ファイルも変更。

・@{HOME}/PDF/ rw, という行を保存先に変更
 @{HOME}/Desktop/ rw,

■最後にPCを再起動するか、下記コマンドを実行してサービスを再起動。

# systemctl restart cups
# systemctl restart apparmor

UbuntuMate18.04でCairo-dockが重複起動する問題対策

下記内容のスクリプトを作成して自動起動するアプリに登録する。
「-0」オプションは実際にはプロセスを殺さない。標準エラー出力を標準出力へ統合してすべての結果を破棄。「$?」は直前に実行したコマンドの終了値変数。

#!/bin/bash
killall -0 cairo-dock > /dev/null 2>&1
if [ $? = 1 ]; then
  cairo-dock;
fi

bindで特定のドメインを名前解決させない

bindの設定に対象のドメインを追記する。

options {
    directory "/var/named/";
    notify no;
    allow-query {
        localhost;
        192.168.1.0/24;
    };
    forwarders {
        192.168.1.254;
        8.8.8.8;
    };
};

zone "example.jp." {
    type master;
    file "example.jp.zone";
};

さっき指定したzoneファイルを作成する。
※admin.example.jp.の部分はadmin@example.jpという管理者のE-mailという意味
※ネームサーバーは適当に到達できないIPアドレス

@    IN    SOA    dns.example.jp.    admin.example.jp. (
           2018042619
           10800
           36400
           604800
           86400
)
       IN    NS   dns.example.jp.
dns    IN    A    10.0.0.1

作成したらファイルの所有グループをnamedに変更する。

# chgrp named /var/named/example.jp.zone

サービスを再起動。

# systemctl restart named

UbuntuGnome16.04のScalingFactorを全体に設定する

下記のファイルを編集する。

# vi /usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.xml

scaling-factorのdefaultを変更したい値にする。

……
<key name="scaling-factor" type="u">
   <default>2</default>
   <summary>Window scaling factor</summary>
   <description>
     Integer factor used to scale windows by. For use on high-dpi screens.
     0 means pick automatically based on monitor.
   </description>
</key>
……

コンパイルする。

# glib-compile-schemas /usr/share/glib-2.0/schemas/

UbuntuGnome16.04でXorgのScalingFactorを少数値でやってみた

先に結果を言っておくと、フォントなどは綺麗になるのだが、GIMPとInkscapeのツールボックスアイコンが極小になってしまい、僕はこれが気に入らなかった。普通にGnome-tweak-toolでフォントサイズを拡大した方が良いかもしれない。

今回もフルHD(1920×1080)のモニターでやった。目的は1.5のScaleFactor指定すること。

まず目的の大きさを超えるようscaling-factorを指定する。

$ gsettings set org.gnome.desktop.interface scaling-factor 2

次にxrandrで目的のモニター名を確認する。

$ xrandr

更にxrandrを使って解像度を変更する。

$ xrandr --output eDP1 --scale 1.5x1.5 --panning 2880x1620

xrandrの結果は保存されないので、Gnome-tweak-toolで自動起動するアプリケーションにスクリプトを作って指定すれば良い。

#!/bin/bash
xrandr --output eDP1 --scale 1.5x1.5 --panning 2880x1620

VPNでSoftEtherVPNサーバー自身(CentOS7)にアクセスする

NICが2枚必要なのでAmazonでUSB接続のNICを購入。

ネットワーク設定する。

# nmcli connection modify enp0s3f3u1 ipv4.method manual
# nmcli connection modify enp0s3f3u1 ipv4.addresses "0.0.0.0/32"
# nmcli connection modify enp0s3f3u1 connection.autoconnect yes
# nmcli connection up enp0s3f3u1

GUIの設定ツールからenp0s3f3u1にブリッジするように設定変更して完了。