WiFiルーターのACアダプタが死ぬので無理矢理修理

イベント事でWiFiのAPが欲しいなーと思ったんですが、
自腹で買うのももったいないし、光回線があるのにテザリングもアホらしい。

あ、そういえば動かなくなったWiFiルーターがあるじゃないか、
たぶんACアダプタが死んでるだけで本体は無事だよな、
ということで修理を目論む。

中国OEMモノ。
以前buffaloのWHR-G301Nが死んだときのアダプタもOEMモノでダメでした。
本体は死なないのにアダプタが死ぬ。
純正品を取り寄せるとそれだけで3k円とかする。というか取り扱いがなかったりする。

で、表示を見ると5V2Aですって。
最近のUSB電源アダプタでいけるんじゃないの?

ということでmicroUSB側が曲がってしまって使えなくなってしまった
USBケーブルをプチンと切断。

ちゃんとテスターで見て確かめればいいんですが、どこかに行ってしまったので(
ぶっつけ本番で結線。

元々のACアダプタ側のケーブルは
白いプリントがあるほうがプラス(+)、印刷がない黒いほうがマイナス(-)、

USBケーブルの中は4線になっていて
赤が+5V、黒がGND、白がDATA(-)、緑がDATA(+)。

あくまで「通常はそうなっているはず」なので、実際はわからんのですが…

ま、動いたから良しw

マルチアダプタがあれば先に問題の切り分けができたんですけどね。
これもどこかに行ってしまったので…

PCをスリープ/休止状態にしてもすぐ復帰してしまう

Windows PCのスリープ、もしくは休止状態は、作業途中のウィンドウなどを
開きっぱなしにしたうえで、電力もさほど食わない、回るファンもうるさくない、
ということで便利なものなのですが

なぜかうちのPCはスリープにしても休止状態にしても、
一旦電源が落ちたはずなのに数秒後に起動している。

最初はマウスが動いちゃうからかなー?と思いましたので
確かデバイスマネージャーでそんな項目あったよなーと思い、設定。

環境はWindows10。スタートボタンを右クリックするのは教えるとみんなやる。

マウスだけじゃダメだったので、キーボードも設定してみましたが、やはりすぐ起動する。

ネットで検索してみたら、価格comにそれっぽいのがあったので参考に
価格.com – 『スリープ(休止状態)から即復帰』 ASRock H87 Pro4 のクチコミ掲示板

うちの場合はWake On Lanの都合か、NICの設定でした。

これで勝手に復帰しなくなった!
キーボードでの復帰は便利なので戻しました。

古いWordPressサイトをStaticPressで静的に書き出してしまおう

WordPressで作ってた古いサイトを静的サイトに変換しておけば、
今後バージョンアップだとかセキュリティアップデートだとかに手間取らない。

ということで久々に触ったサイトのWordpressを最新版にバージョンアップして
StaticPressプラグインを導入。

有効化するぞーと思ったらエラーが。
class-static_press.phpの965行目でsyntax error。unexpected T_SL…

$regex = <<<'END'
/
(中略)
/x
END;

PHPのヒアドキュメントの開始でエラー。
シングルクォートで囲む ‘xxx’ という指定法はNowdoc形式といって、PHP5.3以降でないと使えない。
今回使ってたサーバーはさすが古いだけあって5.2.xでした。

幸い、(中略)の中にシングルクォートや変数を含む部分は無かったので

$regex = '
/
(中略)
/x
';

として解決。
直接プラグインを書き換えるのは一時しのぎだけど、
どうせこのサイトは静的に書き出してしまうのだからこれでも良かろう。

「良かろう」なんて普段使わない言葉遣いしたら亘理町の「よかろう寿司」に行きたくなったわね!はらこめし!
(↓元祖はらこめし味くらべのときの様子)

で、有効化したらメニューのStaticPressから設定して書き出し開始。
設定の「静的サイト URL」は、出力したファイルを後で運用するURLを指定しておく。
「出力先ディレクトリ (ドキュメントルート)」は既存のwordpressファイルととカブると面倒なので
独自のディレクトリを指定しておいた方がラクだと思う(無ければ作ってくれる)。

あとはできあがったファイルを適当に移設して公開すればオッケーよ!

EdgeRouter XをOpenVPNサーバーにする

EdgeRouterXを入手しました。
VPNを設定します。
L2TP/IPsecでもいいんですが、他のプラットフォームでも使ってるのでOpenVPNにしたい。

ubntにサイトにはsite-to-siteとかER-X同士のserver-clientしか書いてなかったが、
考えてみればserver-clientのclient側は他の端末でも良いはず。

…と作業して1回目は「繋がるのに通信できない」状態で諦め。
改めて作業したらあっさりつながった。

ER-Xはeth0からPPPoEでWANへ。
eth1~eth4は内部的にswitch0に接続、switch0はproxyarpをonに。

LANは192.168.64.0/24、OpenVPN側を192.168.65.0/24にする内容で


# sshでER-Xにログイン
sudo su
cd /usr/lib/ssl/misc
# CA作成
./CA.sh -newca

# server用の鍵作成
./CA.sh -newreq
./CA.sh -sign

cp demoCA/cacert.pem demoCA/private/cakey.pem /config/auth/
mv newcert.pem /config/auth/server.pem
mv newkey.pem /config/auth/server.key
openssl rsa -in /config/auth/server.key -out /config/auth/server-nopass.key

openssl dhparam -out /config/auth/dhp.pem -2 1024

# client用の鍵作成。hostnameがserverや他のclientとかぶらないようにする
./CA.sh -newreq
./CA.sh -sign
mv newcert.pem client1.pem
mv newkey.pem client1.key
openssl rsa -in client1.key -out client1-nopass.key
# ↑クライアント2つ目以降はここを繰り返し

# clientに client1(-nopass).key,client1.pem,cacert.pem をコピー

# EdgeRouterXの設定
—-
configure

edit interfaces openvpn vtun0
set mode server
set server subnet 192.168.65.0/24
set tls ca-cert-file /config/auth/cacert.pem
set tls cert-file /config/auth/server.pem
set tls key-file /config/auth/server-nopass.key
set tls dh-file /config/auth/dhp.pem

# ルーティング情報のpush
set server push-route 192.168.64.0/24

# 下記は無くても繋がるけどいつも入れてる
## openvpn-optionをダブルクオートで囲んだり
## –comp-lzoみたいにハイフン付けたりするのは何か違いがあるのか?(調べなきゃ)
set openvpn-option comp-lzo
set openvpn-option persist-key
set openvpn-option persist-tun
# LAN側のDNSをpushする
# LAN側で別のローカルDNSがある環境なのでそれを指定(2019-01-09追記)
set server name-server 192.168.64.2
set openvpn-option “dhcp-option DNS 192.168.64.2”
set openvpn-option “dhcp-option DOMAIN localdomain”

# OpenVPN向けのFirewall設定
top

edit firewall name WAN_LOCAL rule 1
set description OpenVPN
set action accept
set destination port 1194
set log disable
set protocol udp

# 保存
commit
save
exit
—-


# clientにovpnファイルを作る
----
client
dev tun
proto udp
remote erx.example.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
verb 3
ca cacert.pem
cert client1.pem
key client1-nopass.key
----

これでとりあえず繋がった。
ta.keyとかtls-cipherの設定を追加してより強固にしたいが、また後日。

更新しなくなったWordPressサイトを静的にしておく

WordPressはPHPで動的にサイトを出してます。
当然サーバーのCPUパワーを食うので、更新しなくなったサイトは静的に変換して置いておきたい。
StaticPress等のプラグインを入れて出力させるのが常套手段なのですが、現段階の最新版Wordpress4.7.2に入れたらエラーが出たりして(使っているテーマ、環境にもよると思います)。

ならば無理矢理クロールして取ってしまえ!ということでwget
$ wget -nc -x -r http://example.com

出来上がったファイルは拡張子がhtmlじゃないものも多いので、
設置先サーバーのほうでMIME-typeをいじります。

今回はnginx上に置いたので

server {
    server_name example.com;
    location / {
        default_type text/html;
    }
}


これだけ。
たぶんApacheでもDefaultType text/htmlとか書いておけば拡張子ナシでもhtmlとして出してくれるでしょう(未確認)

あとはアクセスしてみて、微妙にリンク先が無かったりするものは個別に手直し。
Wordpressに限らず動的サイトを静的にするのに使えるなぁ。

2017-04-19 追記: wgetによる収集では一部欠けているようで、
やはりなんとかアップデートした後にStaticPressするのが良さそうです。