新月の開発

新月 開発

851a6704 anonymous 2025-01-20 11:30
いつかは 3.13 になるでしょ

>>8c599f9f
da177087 anonymous 2025-01-20 13:01
じゃあそのときに対応すればいいだろ
a2fe2f73 anonymous 2025-01-23 12:05
latest が 3.13.1 だからそのときがいまなんだっていう話じゃん
0db2db3e anonymous 2025-01-23 14:07
eol はまだ先ですけど... 開発したことない人って簡単にできるんだと思って適当なこと言いますよね (´・ω・`)
fbd462a9 anonymous 2025-01-23 17:00
EoL ギリギリになって突貫工事する開発者っていますよね
eeb05bdd anonymous 2025-01-26 08:47
おお、なんかアップデート来てる (横から失礼しました)
b0292dd3 anonymous 2025-01-27 12:13
年末にバージョンが上がってたの気づかなかった。早速新しい版に入れ変えてみました。

CGIモジュールのレガシー版入れるのかな?と思ったら自前で用意したのかぁ。すごい。
0757d6a9 anonymous 2025-02-01 08:18
cgi の削除対応入ってきてるけどまだ一部で `import cgi` が残ってる。
1f8f3bfc anonymous 2025-02-01 08:19
```
% git grep 'import cgi'
shingetsu/mch/post.py:import cgi
```
647b56fd anonymous 2025-02-01 09:38
使ってない import でした。
4f24ba38 anonymous 2025-02-01 10:00
Python 3.13 で動作するようになりましたね。
34cf4335 anonymous 2025-02-12 14:02
v5.1.0 リリース
お疲れさまです。
https://github.com/shingetsu/saku/tags
064d4ab3 anonymous 2025-02-12 17:37
bind_addr: 0.0.0.0
VPN越しだと上の設定が要るようです。Saku 5.1.0 です。
73f8d9cd anonymous 2025-02-13 15:25
いつの間にか v5.2.0 でてました。
44d8c39b anonymous 2025-02-15 01:53
IPv6対応が一通りできたはず
https://shingetsu.info/manage/ipv6
8df6f41e anonymous 2025-02-15 05:43
IPv6対応、おつかれさまです。

うちのノードは IPv4/v6のデュアルスタックで名前付きです。
・IPv4/IPv6両対応のノード
 ・dnsname設定済み

ログを見ている限りでは
「回線はIPv4/IPv6両対応だが、ポート開放がIPv4のみのノード」
へ自ノードからの接続リクエストに失敗する位で、これは想定内なので問題なさそうです。

------

別件ですが、死活確認のpingがnode.txtを2回なめているようにみえます。
これは仕様でしょうか?バージョンは、5.2.0で、githubからcloneしてきた最新版です。

% cat -n /usr/local/saku/var/run/saku/node.txt
     1  july.kot.jp:8000/server.cgi
     2  123.224.60.65:8000/server.cgi
     3  116.82.102.140:8000/server.cgi
     4  116.58.180.227:8000/server.cgi
     5  saku.loneb.net:8000/server.cgi
     6  node-ipv4.shingetsu.info:8000/server.cgi
     7  node.shingetsu.info:8000/server.cgi
     8  bbs.rep4649.freemyip.com:8001/server.cgi
     9  shingetsu.h3z.jp:80/server.cgi
    10  node.fuktommy.com:8000/server.cgi
    11  [2401:2500:204:1150:133:125:52:31]:8000/server.cgi

% grep -a '14:33:' /usr/local/saku/var/log/saku/2025-02-15| grep 'talk:'| awk '{print $3}'| sort| uniq -c| sort| cat -n
     1        2 http://116.58.180.227:8000/server.cgi/ping
     2        2 http://116.82.102.140:8000/server.cgi/ping
     3        2 http://123.224.60.65:8000/server.cgi/ping
     4        2 http://[2401:2500:204:1150:133:125:52:31]:8000/server.cgi/ping
     5        2 http://bbs.rep4649.freemyip.com:8001/server.cgi/ping
     6        2 http://july.kot.jp:8000/server.cgi/ping
     7        2 http://node-ipv4.shingetsu.info:8000/server.cgi/ping
     8        2 http://node.fuktommy.com:8000/server.cgi/ping
     9        2 http://node.shingetsu.info:8000/server.cgi/ping
    10        2 http://saku.loneb.net:8000/server.cgi/ping
    11        2 http://shingetsu.h3z.jp:80/server.cgi/ping
9e3b7d7a anonymous 2025-02-15 14:39
use_x_forwarded_for: yes
↑を設定すると、内部からのアクセスがおかしくなるので、
util.py 93行を↓にしてみた。
if 'HTTP_X_FORWARDED_FOR' in env and env['HTTP_X_FORWARDED_FOR'] != "unknown" :
e537bfd3 anonymous 2025-02-16 10:55
IPv6はポート開放不要と聞いたけど設定が必要なの?
aaa020af anonymous 2025-02-16 14:51
>>e537bfd3
IPv6対応のノードとして動かすのにポート開放の作業が必要かという意味なら
回線契約とプロバイダー契約とルーターの設定とOSの設定次第
b39eae42 anonymous 2025-02-17 00:13
dnsname を設定すると
内部からのping に対して error: invalid http host を返すのだが
server_cgi.py 51行からの5行の判定は不要なのでは?
7400f19d anonymous 2025-02-17 01:12
>>b39eae42
IPアドレス指定での接続を拒否する設定なので必要です。
リバースプロキシ云々という説明が誤り。
5df95d9e anonymous 2025-02-17 09:05
>>7400f19d
わかりました。
内部networkの経路制御が問題のようです。
3dad43f3 anonymous 2025-02-19 11:46
>>aaa020af
何か複雑そう
b699b003 anonymous 2025-02-23 02:33
朔5.2.2。ルーターの設定なしで使える環境もけっこう多いのではと思います。
https://shingetsu.info/news/saku-5.2.2
a236206a anonymous 2025-02-26 00:50
5.2.3 いれました。
dual stack + 名前付き + reverse proxy環境で
特にエラー無しで動いてます。
5c56d36c anonymous 2025-03-03 01:58
3月2日 commitの最新版に差し替えました。
nodeへ2回pingを送っているの直ったようです。
ありがとうございます。
3a5f5401 anonymous 2025-03-03 23:44
ついでに python 3.13 で動かすようにしてみました。

$ python3 -V
Python 3.13.2

問題ありません :)
abb2081a anonymous 2025-03-04 03:37
>>3a5f5401
助かります。
Dockerfileも3.13にしてみました。
3b00d358 anonymous 2025-03-08 09:42
[[嫌儲避難所/735fc866]]
d24545c5 anonymous 2025-03-09 09:45
Ansible用のサンプル。実際に使っている設定そのものではないけど。
https://github.com/shingetsu/saku/blob/master/doc/sample/ansible.yml
49ac2ba9 anonymous 2025-03-09 12:55
>>9e3b7d7a
5.4.0 では
ValueError: 'unknown' does not appear to be an IPv4 or IPv6 address
となります。
address.py の82行で
if config.use_x_forwarded_for and 'HTTP_X_FORWARDED_FOR' in env and env['HTTP_X_FORWARDED_FOR'] != "unknown" :
としてみました。
3a478761 anonymous 2025-03-09 13:20
>>49ac2ba9
HTTP_X_FORWARDED_FOR に "unknown" と入るのはどういう環境でしょうか?
b8b46ba4 anonymous 2025-03-09 14:26
WireGuardでVPNを作り、VPSの上のApacheでProxyPassして、宅内のPCのVMWareの上のLinuxで動いてるsakuへ繋いでます。
そして、PCのブラウザでsakuへアクセスしたときに起きる現象です。
1cd23183 anonymous 2025-03-09 15:41
>>b8b46ba4
PC→Apache→WireGuard→VMWare→saku
ということでしょうか?
e52eba4c anonymous 2025-03-09 21:55
>>1cd23183
インターネットからアクセスできるのはVPSだけなので、VPSにApacheとWireGuardのサーバーを置いています。
9791be9a anonymous 2025-03-10 15:59
>>e52eba4c
>>9e3b7d7a とは同じ人ですか?
もしそうなら「内部からのアクセス」というのはどういうことですか?
「内部からのアクセス」と「PCのブラウザでsakuへアクセス」は別のことを指していますか?
後者は「PC→Apache→WireGuard→VMWare→saku」という理解で本当に合ってますか?
VMWareは具体的にはどの製品ですか? (VMware Workstation Pro とか VMware NSX とか)
d95e9fe2 anonymous 2025-03-11 12:47
https://qiita.com/naka_kyon/items/8532cea02675180cb878

> unknown: 先行するエンティティが不明な場合 (およびリクエストの転送が行われたことを示したい場合)

知りませんでした。
c0cc279a anonymous 2025-03-11 13:23
>>d95e9fe2
ForwardedヘッダーはRFCの日付を見たら10年前に定義されてるけど使われてるところ見たことない…
Apacheも設定してくれない。少なくともデフォルトでは設定しないし、ドキュメントを読んだ範囲でもオプションがなさそう。
47662f4a anonymous 2025-03-11 22:41
現段階での情報を元に考えているのですが

Apacheから見てクライアントのIPアドレスがわからないことがあるか→ないと思う
Apacheが特定の条件でunknownと設定するか→一般的にはなさそう
ApacheにX-Forwarded-For:unknownでアクセスするとどうか→普通はApacheから見たクライアントのIPアドレスが追加される
VPNがヘッダーを書き換えるか→一般的にはない
仮想マシンがヘッダーを書き換えるか→一般的にはない
VMWareでありそうなのは→VMWareの名前を冠するロードバランサーやNATがあるらしい
X-Forwarded-For:unknownのときにクライアントのIPアドレスを使うのは妥当か→一般的にはIPアドレスがわからないのとlocalhostやプライベートネットワークにあるかもしれないリバースプロキシのIPアドレスを同一視することはできない

というわけでなぜunknownになるのかも、その時にクライアントのIPアドレスを代用していいかもわかりません。
5b7c0247 anonymous 2025-03-12 09:37
-外部
--VPS
---Apache,WireGuardサーバー

-内部
--PC
---ブラウザ
---VMware Workstation
----WireGuardクライアント,saku

Apacheでは

Listen 8000
<VirtualHost *:8000>
  ProxyRequests Off
  ProxyAddHeaders On
  ProxyPass  / http://Wireguardクライアントのポートへ/
</VirtualHost>

のような設定をしています。
まー、おま環ということで。
2ed681af anonymous 2025-03-12 12:01
>>5b7c0247
謎ですねえ…
e7d8020b anonymous 2025-03-15 05:57
>>5b7c0247
"unknown"と言われるなら設定すればいいじゃない、ということでproxyを通してヘッダーを設定しました。

---VMware Workstation
----nginx
----WireGuardクライアント,saku
2fe24976 anonymous 2025-03-16 23:59
>>e7d8020b
APIのPINGを叩いたときに、正しく接続元のIPアドレスが返ってきますか?
であれば問題ないのですが。

うちの環境では、X-Forwarded-For を使わないと以下のような挙動になります。
> use_x_forwarded_for: yes の場合
% curl -4 http://saku.loneb.net:8000/server.cgi/ping
PONG
123.224.60.65 <-- curlを叩いている端末のアドレス

> use_x_forwarded_for: no の場合
% curl -4 http://saku.loneb.net:8000/server.cgi/ping
PONG
::1  <-- reverse proxyのアドレス(loopbackへ転送しているので)

## 参考
新月プロトコル 0.8 ドラフト#1
https://shingetsu.info/protocol/protocol-0.8.d1#communication
> /ping
>ノードは「PONG\n相手ノードのIPアドレス」を返す。

c4b18a3f anonymous 2025-03-17 04:57
server.cgi/join/:8080+server.cgi
のipが壊れるとか
e39c3b05 anonymous 2025-03-17 13:14
>>2fe24976
PONGも確認して
隣接ノードも表示されました。
大丈夫でしょう。
5fa345c3 anonymous 2025-03-26 18:07
v5.5.1 にしました。
d73a71e3 anonymous 2025-03-29 07:07
"unknown"の件、squidが原因でした。
squid.confより
 #  TAG: forwarded_for   on|off|transparent|truncate|delete
 #       If set to "off", it will appear as
 #               X-Forwarded-For: unknown
0eecb77b anonymous 2025-03-30 03:24 1743305084.png (1144KB)
ChatGPTが新月のロゴを考えてくれたよ!
139012f0 anonymous 2025-03-30 06:24
>>0eecb77b
ライセンスどうするの…
aba8bedd anonymous 2025-04-03 04:04
>>139012f0
これ緑地にすればイスラムっぽいな
黒でもイスラム国とかでいけるかも

うっかり、アッラーの他に神はなしとか呟いてしまいそう

Top of this page. | 0 1 2 old>>

limit: 1536KB

新月 開発

(新月の開発/125/1.5MB)

Powered by shinGETsu.