NAKAMURA Minoru の日記 (2023年1月)

先月の日記(2022年12月) 今月の日記(2023年01月)
2002 | 10 | 11 | 12
2003 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2004 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2005 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2006 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2007 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2008 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2009 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2010 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2011 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2012 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2013 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2014 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2015 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2016 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2017 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2018 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2019 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2020 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2021 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2022 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2023 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2024 | 1 | 2 | 3 | 4
ホームページ | 最新のコメント50
インデックス: 食べ歩き | Java | プログラム | UNIX | 画像
最新の日記へのリンク | この日記ページをはてなアンテナに追加 この日記ページをはてなブックマークに追加
はてな ダイアリー アンテナ ブックマーク ブログ
Twitter | mixi | Facebook | slideshare | github | Qiita



1/22 (日)

[Movie] ノースマン 導かれし復讐者

チネチッタで『ノースマン 導かれし復讐者』(原題: The Northman)の字幕版を観る。 客の入りは2割ぐらい。

スカンディナヴィアの伝説上の人物アムレートの復讐譚を基にした映画らしい。 映画の宣伝とか見なかったので、上映時間の都合が良かったので行きなり入ってみた。 全編が暗くて寒い北欧が舞台にして、物悲しい雰囲気を感じる。


1/21 (土)

[Movie] ヒトラーのための虐殺会議

チネチッタで『ヒトラーのための虐殺会議』(原題: Die Wannseekonferenz)の字幕版を観る。 客の入りは2割ぐらい。

ドイツ映画を観るのは随分久しぶり。 1942年にナチス高官によって開催されたというヴァンゼー会議を議事録を元に脚本化した映画のようだ。 会議に出席した15名の中でライハンルト・ハイドリヒ、ハインリヒ・ミュラー、アドルフ・アイヒマンは知っていたが、他はよく知らない。 映画全体を通してずっと会話劇であまり盛り上がるシーンはない。 史実への興味という点で見ていられるが、映画としてはつまらない。


1/10 (火)

GitLab Runner がエラーになる

GitLab の CI/CD が突然動かなくなる。 GitLab Runner のコンテナの先頭で git リポジトリからフェッチする段階でアクセスエラーが発生している。 原因は究明中だがなかなか理由が分からない。

Running with gitlab-runner 11.6.1 (8d829975)
  on myproject-devel y1Yt2HsR
Using Docker executor with image registry.gitlab.example.com/myproject/myproject-devel ...
Pulling docker image registry.gitlab.example.com/myproject/myproject-devel ...
Using docker image sha256:179936d for registry.gitlab.example.com/myproject/myproject-devel ...
Running on runner-y1Yt2HsR-project-31-concurrent-0 via myproject-2.fcxlocal...
Cloning repository...
Cloning into '/builds/myteam/myproject'...
fatal:unable to access 'http://gitlab-ci-token:xxxxxxx@gitlab.example.com/myteam/myproject.git/': The requested URL returned error: 503

追記

原因は HTTP プロキシの挙動が変わったことだった。

GitLab サーバーはイントラネット内にあったので、全てのアクセスを HTTP プロキシを介するようにしていた。 HTTP プロキシは当初は(社内のホストも含めて)全てのホストに対してプロキシしていた。 しかし、ある時期から社外のホストに絞ってプロキシするようになった。

GitLab は自身の URL である gitlab.example.com を指定してのアクセスをしていたが、これも HTTP プロキシに送られ、HTTP プロキシが社内のホストと判断して gitlab.example.com に折り返しアクセスしていた。 HTTP プロキシの挙動が変わったことでエラーになっていた。


1/6 (金)

[MyWeb] SSH over HTTP

ローカルサーバー(local server)からリモートサーバー(remote server)まで HTTP プロキシを経由して SSH を使えるように、httptunnel (https://www.gnu.org/software/httptunnel/)を使って SSH over HTTP を構築したのでメモを残していた。

コンパイル

GitHub の「<> Code」の「Download ZIP」からソースコードをダウンロードする。

サーバーとクライアントの両方の Linux 環境でコンパイルしてインストール。

unzip -x httptunnel-master.zip
./autogen
./configure --enable-debug
make
make install

systemd サービスユニットの作成と設定

ローカルサーバー側の /usr/lib/systemd/system/httptunnel.service
[Unit]
Description=httptunnel
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/usr/local/bin/htc -F 2222 -P proxy-address:proxy-port -A user:password hts.example.com:80
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=always

[Install]
WantedBy=multi-user.target
リモートサーバー側の /usr/lib/systemd/system/httptunnel.service
[Unit]
Description=httptunnel
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/usr/local/bin/hts -F remote-server:22 8888
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=always

[Install]
WantedBy=multi-user.target

ローカルサーバーとリモートサーバーの両方で実施。

# ln -s /usr/lib/systemd/system/httptunnel.service /etc/systemd/system/httptunnel.service
# systemctl enable httptunnel.service

nginx サーバーの設定

nginx サーバーに Web サーバーから httptunnel へのフォワーディングする設定をおこな。 nginx サーバーは 2022年12月28日に構築した設定を元に、以下を足す。

/etc/nginx/nginx.conf:
    server {
        listen       80;
        server_name  hts.example.com;

        location / {
            proxy_pass http://127.0.0.1:8888$request_uri;
            proxy_redirect ~^https?://.+?/(.+)$ http://hts.example.com/$1;

            # buffering
            proxy_buffering off;
            # retries off
            proxy_next_upstream off;
            # request buffering
            proxy_request_buffering off;
        }
    }

SSH の実行

クライアント環境で SSH を実行すると、httptunnel を介してリモートの SSH サーバーに接続できる。

ssh -p 2222 localhost

httptunnel の弱点

上記の構成だとリモート通信では問題がないが、大きなファイルをローカルサーバーからリモートサーバーへ scp へ転送するとエラーになった。 どうも httptunnel の通信は HTTP プロトコルとして問題があるようだ。 httptunnel へソケットが1つ接続されると、httptunnel クライアントから httptunnel サーバーへ GET メソッドと POST メソッドが貼られる。

  • httptunnel クライアントは POST メソッドのリクエストボディに元ソケットの送信側のデータが流す。 httptunnel サーバーはこれを受け取ってトンネル先に送信する。 元ソケットがクローズした場合は POST メソッドを中断し、httptunnel サーバーはステータスコード等は返さない。
  • httptunnel サーバーは GET メソッドのレスポンスボディで元ソケットの受信側のデータを流す。 受信のデータのサイズは事前に予想出来ないので、Content-Length は仮の値を入れ置き、トンネル先のソケットが終了した場合は GET メソッドを中断する。

このように httptunnel の GET/POST メソッドは HTTP の規約に違反している。 nginx のリバースプロキシは TCP ソケットとして動作を正しく模さずに、HTTP として解釈して丸めた処理をしている。 これが原因となって scp 転送が失敗していると思われる。


1/1 (日)

謹賀新年

明けましておめでとうございます。 今年もよろしくおねがいします。


先月の日記(2022年12月) 今月の日記(2023年01月)
2002 | 10 | 11 | 12
2003 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2004 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2005 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2006 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2007 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2008 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2009 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2010 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2011 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2012 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2013 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2014 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2015 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2016 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2017 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2018 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2019 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2020 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2021 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2022 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2023 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2024 | 1 | 2 | 3 | 4
ホームページ | 最新のコメント50
インデックス: 食べ歩き | Java | プログラム | UNIX | 画像
最新の日記へのリンク | この日記ページをはてなアンテナに追加 この日記ページをはてなブックマークに追加
はてな ダイアリー アンテナ ブックマーク ブログ
Twitter | mixi | Facebook | slideshare | github | Qiita


Written by NAKAMURA Minoru, Email: nminoru atmark nminoru dot jp, Twitter:@nminoru_jp