| |||||||||||||||||||||||||||||||||||||||||
code:Haemophilus influenzae |
ここに書かれていることは無保証です。同じことを行って問題が発生しても、龍義は責任をとりません。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■ 1/12 SONY の PaSoRi RC-S320 を手に入れたので、Windows 8.1 で使えるのかやって みる。USB ポートに繋いでみた。ドライバを探し出し始める。 しかし、ドライバは見つからなかったようで、デバイスマネージャーで確認すると 不明なデバイスになってしまった。 そもそも Windows 8.1 のドライバがあるのか不安だったが、探してみると対応 しているのを見つけた。 NFCポートソフトウェア Ver.5.3.6.7 Windows 10 のドライバはないので、アップデートしたら考えないといけないな。 ダウンロードしたファイルは NFCPortWithDriver.exe で、容量が 20MB もある。 中を見ようと分解できないかやってみたが、駄目だった。おとなしくインストール する。 問題なくインストールできた。デバイスマネージャーで確認してみたら、ちゃんと FeliCa Port/PaSoRi が出た。 カード読み込みソフトを使って確認したいので、NFC ネットインストーラーを インストールしようとしたが、対応が(RC-S380、RC-S370、RC-S330)なので、 動くかどうか。 NFC ネットインストーラー SFCard Viewer を起動してみる。RC-S320 の上に SUICA を置いたら、あっさり 読み込んでくれた。 バスだけじゃどこのバスに乗ったかわからないな。せめてバスの会社名だけでも 良いので、出てくれると助かるのに。 ■ 1/13 昨日の続き。この RC-S320 用ライブラリを先人達が作ってくれていて、Linux 向けの libpasori や windows 向けの felicalib なんかがある。この felicalib を使ってみることにした。この中に、カードの中をダンプしてくれる FelicaDump があるので、実行してみた。 D:\tmp>FelicaDump.exe Polling card failed. なんかエラーが出た。FelicaDump のソースを眺めると、ライブラリのおかげか かなり行数が少ない。で、このエラーはいきなり出していることに気が付いて、 カードリーダーに SUICA を置いてから実行したらちゃんと動いた。そんな単純な 理由だったとは。同様にライブラリの中に入っていた suica.exe を実行した。 D:\tmp>suica.exe IDm: 011003109b0b**** 端末種:車載端末 処理:バス 11/09/12 入:c6b/0 残高:968 連番:111 端末種:清算機 処理:清算 11/09/12 入:1/18 出:0/0 残高:1188 連番:110 端末種:物販 処理:物販 11/09/12 18:33 入:3c/71 残高:1728 連番:109 端末種:自販機 処理:物販 11/09/12 11:45 入:43/6a 残高:3178 連番:108 端末種:改札機 処理:運賃支払 11/09/11 入:3e/83 出:2/73 残高:4578 連番:107 端末種:改札機 処理:運賃支払 11/09/11 入:2/73 出:3e/83 残高:4808 連番:105 端末種:??? 処理:運賃支払 11/09/11 入:1/18 出:1/b 残高:5038 連番:103 端末種:改札機 処理:運賃支払 10/12/03 入:1d/e 出:1/18 残高:5578 連番:101 端末種:改札機 処理:運賃支払 10/12/03 入:1/18 出:1d/e 残高:5868 連番:99 端末種:改札機 処理:運賃支払 10/09/03 入:1/12 出:1/18 残高:6158 連番:97 端末種:改札機 処理:運賃支払 10/09/03 入:1/18 出:1/12 残高:6448 連番:95 端末種:改札機 処理:運賃支払 10/08/02 入:1/3 出:1/18 残高:6738 連番:93 端末種:改札機 処理:運賃支払 10/08/02 入:e3/3b 出:e3/37 残高:7428 連番:91 端末種:改札機 処理:運賃支払 10/08/02 入:e3/37 出:e3/3b 残高:7588 連番:89 端末種:改札機 処理:運賃支払 10/08/02 入:1/18 出:1/3 残高:7748 連番:87 端末種:改札機 処理:運賃支払 10/02/05 入:1/3 出:1/18 残高:8438 連番:85 端末種:改札機 処理:運賃支払 10/02/05 入:e3/3b 出:e3/37 残高:9128 連番:83 端末種:改札機 処理:運賃支払 10/02/05 入:e3/37 出:e3/3b 残高:9288 連番:81 端末種:改札機 処理:運賃支払 10/02/05 入:1/18 出:1/3 残高:9448 連番:79 端末種:券売機 処理:チャージ 10/02/04 入:1/18 出:0/0 残高:10138 連番:77 駅名のデータベースは入っていないので、出てこないみたい。これでしばらく 遊べるかなと思ったけど、使っているカードで felica のものは SUICA 以外に 持っていない。SUICA の中を見るだけで終わりそう。 ■ 1/14 家の中を探索して、RC-S320 で読めそうなカードを集めてみた。SUICA は良いと して、メルボルンの myki と、香港の OCTOPUS と、ソウルの地下鉄のと、写真に 写ってないけど、シンガポールの MRT カード。この MRT カードは分解したもの。 FelicaDump を使って SUICA 以外で読めたのは、OCTOPUS カードのみ。ダンプ した感じを。 D:\tmp>FelicaDump.exe # IDm: 01 01 07 01 69 13 ** ** # PMm: 01 20 22 04 27 67 4E FF # System code: 8008 # Number of area = 2 # Area: 0000 - FFFE # Area: 0800 - 0F3F # Number of service code = 20 # Serivce code = 0110 : Purse (Direct) (Protected) 0110:0000 00 E0 FD 7F C3 3B 40 00 FC FE 18 00 0D 00 00 00 0110:0001 00 E0 FD 7F C3 3B 40 00 FC FE 18 00 0D 00 00 00 以下省略 この IDm とか PMm の情報が SONY のページにあったけど、簡単な文書すぎて 載っていない。 FeliCa技術方式の各種コードについて データを眺めてみたけど、利用履歴が入ってそうな感じはないな。SUICA は SONY の SFCard Viewer なんかのソフトで見られるけど、OCTOPUS は見られるのか調べて みたら、octopus のページから出来そうな感じ。やってみたら java を起動しようと しているが、java は無効にしているので実験できず。 やっぱり nfc 対応のカードリーダーが欲しい。 ■ 1/15 Google の検索結果で、英語のページだけ欲しい。検索ツールでは、「日本語の ページを検索」が出てくるが、これを「英語のページを検索」にできないかと。 ブラウザが投げる Accept-Language の変更してみることにした。英語の優先度を あげてみた。 表示は変わらず。ブラウザが送信している Accept-Language を確認するため、 キャプチャをしてみたら。 Accept-Language: en,ja;q=0.8,en-US;q=0.6 ちゃんと変更されていた。じゃ、優先する言語から日本語を削除してみたら、 表示するのじゃないかとやってみた。やっぱり結果は変わらず。このとき送信 されていた Accept-Language は。 Accept-Language: en,en-US;q=0.8 大丈夫そう。解決は Google での設定にあるのではないかと、歯車をクリック してみると、言語が出てきた。 ここで Google サービスで使用する言語が日本語になっているのを変更すれば 良いのかなと思ったが、「もっと見る」をクリックしてみた。 すると、「現在の検索結果の表示言語」の項目が出てきた。どうやら、この設定の ようなので、日本語以外に English もチェックを入れてみた。 これで、「英語のページを検索」が出てくると思ったが、出てきたのは予想外の 「英語と日本語のページを検索」だった。いやいやいや、どちらかと言うと、 日本語を排除したい感じなのに。 結局、色々調べて検索結果のアドレスに hl=en を追加して英語の結果だけが表示 されるようになった。何ともお粗末な感じだ。 ■ 1/16 Photoshop を起動すると、Firefox が落ちたり Photoshop が落ちたり。そんな 状況がなんとかならないかと。起動前の状態で、リソースモニターを確認すると 物理メモリは空いているのだけど。 これで Photoshop を起動したら、コミットチャージが上がってくる。それが問題 みたいな感じ。 リソースモニターの部分。最初の上昇が Photoshop を起動したとき。次の上昇が 20MB ぐらいの psd ファイルを開いたとき。 このコミットチャージはなんとかならないかと、色々調べたのだけど、うまい 解決策が見つからない。仮想メモリの値をいじってみる。システムのプロパティ から、詳細設定タブのパフォーマンスをクリックし、詳細設定のタブを出して みた。 ここから仮想メモリの変更をしてみた。自動的に管理するオプションを外して 最大サイズを 8192MB にしてみた。 これで様子を見てみようかと。素直に毎日再起動すれば良いのだろうけど。 ■ 1/17 20160130 から始まるファイル名を 20160120 に変更したい。ファイルの一覧は こんな感じ。 $ ls -l 合計 2984 -rwxr-xr-x 1 toyota なし 53350 11月 3 16:37 2016013000.jpg -rwxr-xr-x 1 toyota なし 66071 1月 15 17:00 2016013001.jpg -rwxr-xr-x 1 toyota なし 136637 1月 15 17:03 2016013002.jpg -rwxr-xr-x 1 toyota なし 53391 1月 15 17:32 2016013003.jpg -rwxr-xr-x 1 toyota なし 18695 1月 15 19:42 2016013004.jpg -rwxr-xr-x 1 toyota なし 40299 1月 15 20:58 2016013005.jpg -rwxr-xr-x 1 toyota なし 69856 1月 15 21:05 2016013006.jpg -rwxr-xr-x 1 toyota なし 97282 1月 16 01:05 2016013007.png -rwxr-xr-x 1 toyota なし 426614 1月 17 10:08 2016013008.jpg -rwxr-xr-x 1 toyota なし 21782 1月 14 10:46 2016013028.png -rwxr-xr-x 1 toyota なし 45742 1月 16 13:54 2016013029.jpg -rwxr-xr-x 1 toyota なし 63140 1月 14 01:11 2016013030.jpg -rwxr-xr-x 1 toyota なし 57945 1月 14 01:12 2016013031.jpg -rwxr-xr-x 1 toyota なし 65275 1月 14 01:13 2016013032.jpg -rwxr-xr-x 1 toyota なし 63184 1月 14 01:13 2016013033.jpg -rwxr-xr-x 1 toyota なし 74525 1月 14 23:54 2016013034.jpg -rwxr-xr-x 1 toyota なし 67583 1月 14 23:59 2016013035.jpg -rwxr-xr-x 1 toyota なし 73865 1月 15 00:20 2016013036.jpg -rwxr-xr-x 1 toyota なし 70455 1月 15 00:40 2016013037.jpg -rwxr-xr-x 1 toyota なし 75941 1月 15 00:51 2016013038.jpg -rwxr-xr-x 1 toyota なし 76435 1月 15 00:56 2016013039.jpg -rwxr-xr-x 1 toyota なし 62998 1月 15 01:02 2016013040.jpg -rwxr-xr-x 1 toyota なし 68187 1月 15 01:04 2016013041.jpg -rwxr-xr-x 1 toyota なし 63755 1月 15 01:17 2016013042.jpg -rwxr-xr-x 1 toyota なし 71097 1月 15 01:26 2016013043.jpg -rwxr-xr-x 1 toyota なし 63380 1月 15 01:31 2016013044.jpg -rwxr-xr-x 1 toyota なし 67871 1月 17 10:44 2016013045.jpg -rwxr-xr-x 1 toyota なし 64065 1月 17 16:59 2016013046.jpg -rwxr-xr-x 1 toyota なし 39092 1月 13 16:08 2016013080.jpg -rwxr-xr-x 1 toyota なし 45715 1月 13 16:09 2016013081.jpg -rwxr-xr-x 1 toyota なし 46258 1月 13 16:09 2016013082.jpg -rwxr-xr-x 1 toyota なし 39887 1月 13 16:10 2016013083.jpg -rwxr-xr-x 1 toyota なし 42918 1月 13 16:20 2016013084.jpg -rwxr-xr-x 1 toyota なし 34133 1月 13 22:09 2016013085.jpg -rwxr-xr-x 1 toyota なし 39784 1月 17 11:53 2016013086.jpg -rwxr-xr-x 1 toyota なし 54866 1月 17 15:58 2016013087.jpg -rwxr-xr-x 1 toyota なし 55183 1月 17 18:42 2016013088.jpg -rwxr-xr-x 1 toyota なし 32189 1月 16 12:38 2016013090.jpg -rwxr-xr-x 1 toyota なし 35993 1月 16 12:38 2016013091.jpg -rwxr-xr-x 1 toyota なし 37430 1月 16 12:38 2016013092.jpg -rwxr-xr-x 1 toyota なし 35962 1月 16 12:38 2016013093.jpg -rwxr-xr-x 1 toyota なし 36118 1月 16 12:38 2016013094.jpg -rwxr-xr-x 1 toyota なし 30143 1月 16 12:56 2016013095.jpg -rwxr-xr-x 1 toyota なし 26093 1月 16 21:13 2016013096.jpg -rwxr-xr-x 1 toyota なし 24194 1月 16 13:26 2016013097.jpg -rwxr-xr-x 1 toyota なし 86611 1月 17 11:35 2016013098.jpg -rwxr-xr-x 1 toyota なし 21652 1月 17 18:08 ybr125.html 頭を少しひねり、これを cygwin 上でこんな感じで一気に変換して、mv コマンドを 実行した。 $ ls -l | cut -c50- | grep ^2 | sed -e 's/^20160130\(.*\)/20160130\1 20160120\1 /' | xargs -n2 mv これで実現できたけど、ふと気が付いた。cygwin で変更するのではなくコマンド プロンプト上でワイルドカードを使えばあっさり終わってしまうのか。 C:\cygwin\tmp>ren 20160130*.* 20160120*.* コマンドプロンプトも使いようだな。 ■ 1/18 Liva の簡易 UPS がなかなか手を付けられてないので、サーバとして設置できて いない。一旦、UPS なしで設置してしまおうかと考えて、今動いている LAN-iCN2 の uptime を表示してみた。 > uptime uptime: Command not found. コマンドが入っていない。仕方ない、/proc から拾ってくる。 > cat /proc/uptime 23343701.23 21628852.04 これを casio の ke!san にあった日時計算で何度か値を入れて、起動したのは 2015年4月23日というのがわかった。このページの4月23日を見ると、何も書かれて いないし、その前のような気がしてならない。この /proc/uptime の値は 32bit なので、オーバーフローした可能性がある。32bit の最大値は 4294967295 だけど 小数点第二位まで使っているので、42949672.95 が最大値。42949673秒で計算 すると、497日2時間27分53秒になる。2015年4月23日の497日前の日付を出さないと いけない。手作業でやることではないので、javascript で計算するものを書いて みた。 この html に uptime を入れて計算させた。uptime の値は。 > cat /proc/uptime 23347684.05 21632612.20 この 23347684.05 を使って出た結果は。 と出た。2011年3月24日あたり、地震後の計画停電のときかと思ったけど、この ページを検索してみたら、2011年9月21日に台風の影響で停電している。なので、 その後になる。2012年8月2日はロシアに行ってた気がしたけど、行っていたのは 2013年8月だったので、可能性はある。2012年8月2日と2013年12月12日のここの ページを確認したり、当日の天気を確認してみたけど、結局わからなかった。 どちらにしても、最近はほとんど停電がおきてないので、Liva の先設置をしても 良い気がしてきた。 ■ 1/19 昨日の続き。数字を入力するときに、form の中で <input type="number"> という type が HTML5 で使えるということで、使ってみたのだけど、どうも使い 勝手が悪い。e が入力できたり、-が入力できたり。5-e..4 とか入力できちゃう ので、結局チェックが必要になってくるし、ブラウザによってかもしれないけど、 ペーストもできてしまう。どっちにしても入力できてしまうので、type="text" にして作成した。 それともう1つ。/proc/uptime の値ってハードウェアクロックベースのような 気がしてきた。そして、ハードウェアクロックに狂いがなくても、昨日作成した プログラムではうるう秒のことは考えられてないので、秒単位でずれてしまう。 そもそも、この web サーバのハードウェアクロックは1日で9秒もずれるので、 それが溜まりに溜まって、結果はかなりずれていることになる。10日で90秒、 100日で900秒なので15分、1000日で9000秒なので2時間半か。このずれまで考慮 して uptime を計算しないといけなさそう。 そこまではできないけど、昨日作った javascript に21世紀のうるう秒の情報と、 少しアルゴリズムを変更して作り直した。 ■ 1/20 16日の続き。仮想メモリの容量を変更して、4日経った。今日 Photoshop を起動 したら、Firefox が落ちた。コミットチャージを見ると。 やっぱり上がってる。物理メモリは余裕があるのに。おとなしく 4GB のメモリ でも買った方が楽そうな気がしてきた。 ■ 1/21 そう言えば、VPS な環境があったのを思い出した。容量に余裕があるので、先月 やった squid の環境を入れてみようかと。で、OpenSSH でポートフォワード接続 をしてみる。squid は一般ユーザで動かすので、コンパイルから。 [toyota@vjun ~]$ cd src [toyota@vjun src]$ mkdir squid [toyota@vjun src]$ cd squid/ [toyota@vjun squid]$ wget -q http://www.squid-cache.org/Versions/v3/3.5/squid-3 .5.13.tar.gz [toyota@vjun squid]$ tar xfz squid-3.5.13.tar.gz [toyota@vjun squid]$ cd squid-3.5.13 [toyota@vjun squid]$ ./configure --help 適当にオプションを付けて、make までやってみる。 [toyota@vjun squid]$ ./configure --disable-icmp --disable-snmp --disable-eui \ --disable-htcp --disable-auth --disable-win32-service --disable-ipv6 \ --disable-zph-qos --disable-translation --prefix=/home/toyota/squid (省略) [toyota@vjun squid-3.5.13]$ make (省略) [toyota@vjun squid-3.5.13]$ mkdir /home/toyota/squid [toyota@vjun squid-3.5.13]$ make install (省略) あっさり make が通って、インストールまでできた。でも、Liva でコンパイルする より時間がかかった。設定ファイルの編集をする。一般ユーザーなので、ポート 番号の変更をしたり。 [toyota@vjun squid-3.5.13]$ cd ~/squid/etc [toyota@vjun etc]$ vi squid.conf [toyota@vjun etc]$ diff squid.conf.default squid.conf 8,12c8 < acl localnet src 10.0.0.0/8 # RFC1918 possible internal network < acl localnet src 172.16.0.0/12 # RFC1918 possible internal network < acl localnet src 192.168.0.0/16 # RFC1918 possible internal network < acl localnet src fc00::/7 # RFC 4193 local private network range < acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) mach ines --- > acl localnet src 127.0.0.0/24 59c55 < http_port 3128 --- > http_port 13128 簡単な実験なので、2行だけの変更なんだけど。これで squid の起動をしてみる。 動くかどうか。 [toyota@vjun etc]$ ../sbin [toyota@vjun sbin]$ ./squid 2016/01/21 20:37:28| WARNING: BCP 177 violation. IPv6 transport forced OFF by b uild parameters. 2016/01/21 20:37:28| WARNING: Could not determine this machines public hostname . Please configure one or set 'visible_hostname'. 2016/01/21 20:37:28| WARNING: Could not determine this machines public hostname . Please configure one or set 'visible_hostname'. 2016/01/21 20:37:28| WARNING: Could not determine this machines public hostname . Please configure one or set 'visible_hostname'. [toyota@vjun sbin]$ pgrep squid プロセスは動いていない。フォアグランドで実行するオプション -N を付けて 動かしてみた。 [toyota@vjun sbin]$ ./squid -N 2016/01/21 20:38:23| WARNING: BCP 177 violation. IPv6 transport forced OFF by b uild parameters. 2016/01/21 20:38:23| WARNING: Could not determine this machines public hostname . Please configure one or set 'visible_hostname'. 2016/01/21 20:38:23| WARNING: Could not determine this machines public hostname . Please configure one or set 'visible_hostname'. 2016/01/21 20:38:23| WARNING: Could not determine this machines public hostname . Please configure one or set 'visible_hostname'. hostname の問題なのかな。違っている気がするけど、WARNING を消すことに。 root になって /etc/hosts の編集。 [toyota@vjun sbin]$ su [root@vjun sbin]# vi /etc/hosts [root@vjun sbin]# exit [toyota@vjun sbin]$ cat /etc/hosts 127.0.0.1 localhost.localdomain localhost vjun ping vjun で応答するので hostname の問題は大丈夫でしょう。これで実行して みる。 [toyota@vjun sbin]$ ./squid -N 2016/01/21 20:38:23| WARNING: BCP 177 violation. IPv6 transport forced OFF by b uild parameters. やっぱり落ちる。原因が出てないので、-X オプションを付けて、フルデバッグに してみた。 [toyota@vjun sbin]$ ./squid -N -X (省略) 出力が多すぎて、逆にわからない。-d オプションで 1 を指定して実行してみる。 何かわかると良いのだけど。 [toyota@vjun sbin]$ ./squid -N -d 1 2016/01/21 20:41:27| WARNING: BCP 177 violation. IPv6 transport forced OFF by b uild parameters. 2016/01/21 20:41:27| storeDirWriteCleanLogs: Starting... 2016/01/21 20:41:27| Finished. Wrote 0 entries. 2016/01/21 20:41:27| Took 0.00 seconds ( 0.00 entries/sec). FATAL: Ipc::Mem::Segment::create failed to shm_open(/squid-cf__metadata.shm): ( 13) Permission denied 出てきた。shm_open でこけてる。共有メモリか。root じゃないから問題なのか、 切り分けるために root で実行してみる。しかし同じように落ちた。man shm_open を見ると、 Programs using these functions must specify the -lrt flag to cc in order to link against the required ("realtime") library. Permission denied だから関係ないと思うけど、一応ソースの中を確認すると、 このオプションは付いていた。man の続きを読むと、 The POSIX shared memory object implementation on Linux 2.4 makes use of a dedicated file system, which is normally mounted under /dev/shm. とある。/dev/shm のパーミッションの確認。 [toyota@vjun sbin]$ ls -ld /dev/shm drwxr-xr-x 2 root root 40 Sep 11 2014 /dev/shm 一般ユーザに書き込み権限がないな。root なら書けそうだけど、root でも同じ エラーが起きたし。ちょっとソースを眺めてみる。 [toyota@vjun sbin]$ cd ~/src/squid/squid-3.5.13 [toyota@vjun sbin]$ vi src/ipc/mem/Segment.cc HAVE_SHM を無効にしたら、shm_open を使わずに済みそうな感じ。HAVE_SHM を 無効にしてみる。 [toyota@vjun sbin]$ less configure [toyota@vjun sbin]$ cp -p include/autoconf.h include/autoconf.h_ [toyota@vjun sbin]$ vi include/autoconf.h [toyota@vjun squid-3.5.13]$ diff include/autoconf.h_ include/autoconf.h 836c836 < #define HAVE_SHM 1 --- > /* #undef HAVE_SHM */ これで無効になったので再度 make して、出来上がったものを sbin にコピー する。 [toyota@vjun squid-3.5.13]$ make (省略) [toyota@vjun squid-3.5.13]$ cp src/squid ~/squid/sbin/squid_noshm make に時間がかかった。できあがったファイルを実行してみる。 [toyota@vjun squid-3.5.13]$ cd ~/squid/sbin [toyota@vjun sbin]$ ./squid_noshm -d 1 -N 2016/01/21 20:32:27| WARNING: BCP 177 violation. IPv6 transport forced OFF by b uild parameters. 2016/01/21 20:32:27| Set Current Directory to /home/toyota/squid/var/cache/squi d 2016/01/21 20:32:27| Starting Squid Cache version 3.5.13 for i686-pc-linux-gnu. .. 2016/01/21 20:32:27| Service Name: squid 2016/01/21 20:32:27| Process ID 17622 2016/01/21 20:32:27| Process Roles: master worker 2016/01/21 20:32:27| With 1024 file descriptors available 2016/01/21 20:32:27| Initializing IP Cache... 2016/01/21 20:32:27| DNS Socket created at 0.0.0.0, FD 5 2016/01/21 20:32:27| Adding nameserver 202.216.**.*** from /etc/resolv.conf 2016/01/21 20:32:27| Logfile: opening log daemon:/home/toyota/squid/var/logs/ac cess.log 2016/01/21 20:32:27| Logfile Daemon: opening log /home/toyota/squid/var/logs/ac cess.log 2016/01/21 20:32:27| WARNING: no_suid: setuid(0): (1) Operation not permitted 2016/01/21 20:32:27| Store logging disabled 2016/01/21 20:32:27| Swap maxSize 0 + 262144 KB, estimated 20164 objects 2016/01/21 20:32:27| Target number of buckets: 1008 2016/01/21 20:32:27| Using 8192 Store buckets 2016/01/21 20:32:27| Max Mem size: 262144 KB 2016/01/21 20:32:27| Max Swap size: 0 KB 2016/01/21 20:32:27| Using Least Load store dir selection 2016/01/21 20:32:27| Set Current Directory to /home/toyota/squid/var/cache/squi d 2016/01/21 20:32:27| Finished loading MIME types and icons. 2016/01/21 20:32:27| Squid plugin modules loaded: 0 2016/01/21 20:32:27| Adaptation support is off. 2016/01/21 20:32:27| Accepting HTTP Socket connections at local=0.0.0.0:13128 r emote=[::] FD 8 flags=9 2016/01/21 20:32:28| storeLateRelease: released 0 objects 動いたっぽい。別のターミナルから中に入って接続してみる。 [toyota@vjun ~]$ telnet localhost 13128 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. GET http://www.tatsuyoshi.net/ HTTP/1.0 Host: www.tatsuyoshi.net HTTP/1.1 200 OK (略) やっと動いた。外からはアクセス制限がかかっていて接続できないことを確認 したので、続きは後日。 ■ 1/22 昨日の続き。昨日、OS 書くの忘れてた。環境はこんな感じ。 [toyota@vjun ~]$ uname -a Linux vjun 2.6.32-042stab092.2 #1 SMP Tue Jul 8 10:35:55 MSK 2014 i686 i686 i38 6 GNU/Linux [toyota@vjun ~]$ cat /etc/redhat-release CentOS release 5.11 (Final) まず、この VPS のサーバに直接ログインできない。オペレーションするときは 実家のサーバ経由で入っている。直接ログインできない理由は、わざとそうした のか、家の IP アドレスが変わってしまったためか、どちらか。どちらにしても 直接ログインできるように変更する。 OS が CentOS 5 なので iptables の設定を確認する。 [root@vjun toyota]# /sbin/iptables --list Chain INPUT (policy DROP) (省略) どうも設定が古い IP アドレスのままだったので、編集して iptables を再起動 する。 [root@vjun toyota]# vi /etc/sysconfig/iptables [root@vjun toyota]# /etc/init.d/iptables restart これで家から直接接続できるようになった。次は OpenSSH でトンネルを作る。 いつも使っている Poderosa には、ポートフォワードの設定があるようなので、 利用してみようかと。 ポートフォワーディングツールというのを起動してみた。Poderosa にこんな機能が 付いていたなんて知らなかった。 新規プロファイルの作成をしてみる。これ、人が作った環境だったら感覚的に わからないな。 入力して接続してみた。IE で実験してみる。なんだか、IE というか OS の設定を 変えると Chrome とか Opera にも影響与えるようで。実験してみたら、Poderosa の方でエラーが起きて接続が切れた。 何でだろうと調べてみたら、squid を起動してなかった。squid を起動したら あっさりつながった。接続したときの環境変数を見てみた。 SCRIPT_FILENAME=/home/toyota/www/cgi-bin/env.cgi SERVER_NAME=www.tatsuyoshi.net HTTP_CONNECTION=keep-alive HTTP_CACHE_CONTROL=max-age=259200 HTTP_DNT=1 REMOTE_ADDR=183.181.*.** HTTP_X_FORWARDED_FOR=127.0.0.1 REQUEST_URI=/toyota/cgi-bin/env.cgi TERM=dumb HTTP_COOKIE=(長いので省略) HOSTTYPE=i386 PATH=/usr/bin:/bin:/usr/sbin:/sbin HTTP_HOST=www.tatsuyoshi.net REMOTE_PORT=56402 REQUEST_METHOD=GET SHELL=/bin/false GATEWAY_INTERFACE=CGI/1.1 QUERY_STRING= SERVER_ADDR=192.168.6.19 SERVER_SOFTWARE=Apache/1.3.29 (Unix) HTTP_VIA=1.1 vjun (squid/3.5.13) SERVER_PROTOCOL=HTTP/1.1 REMOTE_HOST=vjun SERVER_PORT=80 DOCUMENT_ROOT=/usr/local/apache/html OSTYPE=Linux HTTP_USER_AGENT=Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; ASU2JS; rv:11. 0) like Gecko HTTP_ACCEPT=text/html, application/xhtml+xml, */* SCRIPT_NAME=/toyota/cgi-bin/env.cgi SHLVL=1 SERVER_ADMIN=toyota@example.net HTTP_ACCEPT_ENCODING=gzip, deflate _=/usr/bin/env HTTP_X_FORWARDED_FOR と HTTP_VIA が出てるのでプロキシ丸出しな感じだな。 HTTP_X_FORWARDED_FOR は 127.0.0.1 だから元 IP が出ていなくて、そんなに 悪くはないけど、squid の設定を変更してみる。squid.conf に forwarded_for off を追加して、やってみた。結果の差異は。 [toyota@mygeeto tmp]$ diff resp00 resp01 6c6 < HTTP_X_FORWARDED_FOR=127.0.0.1 --- > HTTP_X_FORWARDED_FOR=unknown 14c14 < REMOTE_PORT=56402 --- > REMOTE_PORT=53657 こんな感じになった。unknown になっただけだな。もう少し調べてみて、設定に request_header_access を付けることで削除できるみたい。やってみた。 request_header_access X_FORWARDED_FOR deny all request_header_access VIA deny all これを入れたら、HTTP_VIA は消えたけど、HTTP_X_FORWARDED_FOR は unknown の まま。調べてみたら、_ は - に変えて設定するみたいなので、 request_header_access X-FORWARDED-FOR deny all に変更したら HTTP_X_FORWARDED_FOR が消えた。これで完成。 ■ 1/23 昨日の続きで。一度やってみたかった、ssh のポートフォワードを2回してみよう かと。 PC - PC内 - サーバ1 - サーバ2 - サーバ2 proxy - 外 PC のブラウザ的には、localhost のポートに接続しているけど、サーバ2つ経由 して、外の web サーバに繋がっている感じ。で、トイレに入っているときに色々 考えていたら、サーバ1の実家サーバだと BB ルータでポートフォワードをして いるので、もう1つ別なポートを開けないといけない。どうしたものかと少し 考えながら布団に入ったが、ポート 22 で既に中のネットワークに入っている ので、関係ないかと気が付いた。 ということで、さっそくやってみる。まずは、サーバ1である実家サーバに入って トンネル2の作成。 > ssh -L 9999:vjun.tatsuyoshi.net:13128 -p 919 -l toyota vjun.tatsuyoshi.net これでパスワードを入力したらログインした形になったけど、これで合っている のかな。次は、Poderosa でトンネル1の作成。 ブラウザでプロキシの設定をしたら、繋がったけれども squid でエラーが出て いる。少なくとも ssh のポートフォワード2回というのは達成できているので 問題ないと言えば問題ないのだけど。 squid の access.log を見てみたら、外側の IP アドレスから接続に来ていた。 少し考えて、トンネル2の作成を変更。 > ssh -L 9999:localhost:13128 -p 919 -l toyota vjun.tatsuyoshi.net これで接続できるようになった。しばらくしたら、Poderosa の Portforwarding が落ちた。 少し調べたけど原因不明。今日は実験なので気にしないことにした。 ■ 1/24 Android 端末でネットワークの内容をキャプチャできないものかと調べると、 root 権限無しでも動く tPacketCapture というものがあった。面白そうなので 使ってみる。 VPN 接続を使うことで、root 無しでもトラフィックをキャプチャできるように なっているみたい。 キャプチャを開始して、適当なアプリで接続してみた。停止しようとしたら、 停止はアプリで行うのではなく通知バーから行うことに2分後気が付いた。少し わかり辛い、というかちゃんと読んでないだけか。このアプリ自体はキャプチャ したデータを見ることができないようで、tcpdump なり Wireshark なんかに読み 込ませてデータを見る必要がある。Windows に投げて Wireshark で見てみたら、 ちゃんと取れてた。これは便利なので、覚えておこう。 ■ 1/25 ファイルをダウンロードしたら、json というファイルだった。テキストファイル なので中を見ると、CSV の進化した感じというか。少し調べてみると、json は JavaScript Object Notation の略で、名前にある通り JavaScript で扱うことが できるものみたい。CSV を構造的にしたいけど、xml を使うほどでもない、という ことを実現したような印象。ブラウザの JavaScript で扱えるのはありがたいけど xml じゃ駄目だったの?と感じてならない。 ■ 1/26 別なことを調べていたらダウンロードするのに PHP を使っている web サイトを 見つけた。目的のもの以外もダウンロードできそうで、ダウンロードする PHP ファイル自体をダウンロードしてきた。少し省いたけど、こんな感じ。 $name = basename($filename); header("Cache-Control: "); header("Pragma: "); header("Content-Type: application/octet-stream"); header("Content-Length: " .(string)(filesize($filename))); header('Content-Disposition: attachment; filename="'.$name.'"'); header("Content-Transfer-Encoding: binary\n"); if($fp = fopen($filename, 'rb')) { while( (!feof($fp)) && (connection_status()==0)) { print(fread($fp, 8192)); flush(); } fclose($fp); } /etc/passwd とか /etc/hosts は見られなかったけど、イントラネット用の認証 周りの PHP とか見える。CEO は何を操作できるとか、そのぐらいわかったけど、 肝心の PHP は IP アドレスの制限があるし、データは DB に格納しているので 引っ張れないし。そこの会社に報告するには、インパクトないな。 PHP の fopen 関数をを見ていたら、ディレクトリ指定もできるとあったので、 ちょっとやってみた。ダウンロードしようとするものの一向に容量が増えない。 fread 辺りで止まっているのかな。さらに、 filename が "スキーム://..." の形式である場合、 それは URL とみなされ、 PHP はそのプロトコルのハンドラ (ラッパーともいいます) を探します。 と書いてあったので、サポートするプロトコル/ラッパーのページを見てみたら、 glob:// パターンにマッチするパス名の検索というものがあった。これを fopen に投げたら、ちゃんと返ってくるのかなということでやってみた。エラーが返って きた。コードを見たら、省略した部分に file_exists でチェックしていたので、 そこでエラーが出たみたい。file_exists がない PHP もあったため、そっちで やってみた。応答が返ってきたので、ファイルの中を見てみたら。 Warning: filesize() [function.filesize]: stat failed for glob://(省略) Warning: fopen(glob://(省略) [function.fopen]: failed to open stream: No error in (省略) などのエラーが入っていた。ただ、エラーのおかげで Windows で動いていて、 D ドライブの配下にファイル群があるのがわかった。今さらながら、サーバの ヘッダを見てみると。 Server: Microsoft-IIS/7.5 X-Powered-By: PHP/5.2.6 X-Powered-By: ASP.NET やっぱり Windows で。そりゃ /etc/passwd なんかないな。商用の IIS で PHP を動かしているのを初めて見たかも。 ■ 1/27 昨日の続き。ファイル指定のパラメタに C:\WINDOWS\system32\drivers\etc\hosts を指定してみたら、あっさりとファイルが読み込めてしまった。大した内容も 入っていないので /etc/passwd ほどのインパクトはないな。ls というか dir できれば、ファイル名がわかってもう少しできるのだけど。 C:\Windows\Inf\usb.inf は取得できた、 C:\Users\Administrator\ntuser.ini は Permission denied で駄目、あとは何の ファイルを見られるのか考えたけど、決め打ち状態だと限界かな。ログイン後の 流れの PHP を取得していったらセッションや IP アドレスのチェックをしてない ものがあったので、アクセスしてみた。そんなこんなで、やってみたらいくつも アクセスできて、売り上げ情報とか小売店への販売価格とか、見ちゃいけない だろうものにアクセスできた。 ということで、その元ページにあった管理者らしきメールアドレスにその内容を 送って、日本法人にも送っておいた。さて、どうなることだろう。 ■ 1/28 Windows でプログラミングをしようと、Vusual Studio を久しぶりに起動して、 Window フォームを作ろうとしたが、C++ だとリソースの配置とか面倒になって きた。仕方なく、C# も入れるかとインストールして、ついでに update を確認 した。 Service Pack 1 があったので、インストールしてみた。500MB 以上あるみたい なので、しばらく放置していたらエラーが発生していた。コード 13EC だって。 「このエラーに関するヘルプの取得」をクリックしてみたが、000013EC の結果は 見つからないとか。 仕方なく、Microsoft のページなんかを調べたら community のページで同じエラー コードのものを見つけた。 trying to install the Service Pack 1 for Visual Studio 2010 and I get a Code 13EC .NET Framework 4.0 component をアンインストールしてから再実行するのだと あるけど、アンインストールしてもエラーが出ている人もいて。SP1 installer を使うと解決したとあったので、ダウンロードしてくる。容量が 1.5G もある ので、ダウンロードが終わるのは明日の朝だな。 ■ 1/29 昨日の ISO ファイルは無事ダウンロードできて、Service Pack も問題なく適用 することができた。ということで、早速プログラミング。 C# でファイルをダウンロードして、解析するプログラムを作る。最初 webBrowser を使ってやってみたけど、ファイルの保存するウィンドウが出てきたり、Cookie の設定が勝手に行われて嫌な感じなので、WebClient を使うことにした。しかし、 実際に使ってみたら。 サーバーによってプロトコル違反が発生しました. Section=ResponseHeader Detail=CR の後には LF を指定しなければなりません。 と出た。Wireshark で通信を見てみたら、全て CR + LF を送っているようには 見えるけど、HTTP ヘッダの1つにスペースで始まっているものがあった。Wireshark でもそのヘッダは表示できていないし、原因はこれかな。サーバ側の問題で、 こちらでは対処できないものなので、MSDN のページを参考にして、app.config ファイルを作成して、以下を追加。 <system.net> <settings> <httpWebRequest useUnsafeHeaderParsing="true" /> </settings> </system.net> これでエラーは起きずデータを取得することができた。データを解析しないと いけないし、先はまだまだ長い。 ■ 1/30 東京 MX テレビが見たいなということで、テレビのチャンネルを合わせてみたが、 ノイズしか映らず。出力が低いから無理だろうけど、周波数と出力と、TVTest の 感度を出してみた。
■ 1/31 あるファイルがロックされているようで、消せないし読み込みさえもできない。 どうしたものかと考え、せっかく今プログラムを書いているので、プログラムで ファイルを読み込みさせ、try ~ catch で拾って Exception の内容を表示して みた。 メモ帳と変わらず、アクセスの拒否ということで。このファイルを誰がロックして いるのか調べたい。web を検索すると、openfiles というコマンドを使えば、 誰がロックしているかわかるみたい。で、使ってみようとしたら、このコマンドを 使うには、一度設定した後に OS を再起動する必要があるのだと。多分、再起動 したらロックも解除されるだろうから意味がないな、なんて考えて他を探す。 Sysinternals の Handle コマンドを使えば見られるということで、ダウンロード して実行してみた。が、使っているプログラムは見つからず。 このファイルが使えないと困るんだよな、という状況だったので、少し考えて、 名前の変更はできるかやってみた。あっさりできた。別名に変えた後に同じ内容で 同じ名前のファイルを用意して、今日のところは解決した。 |
by Tatsuyoshi since 2003 |