proxy2ch


概要

CUI。
起動する前にショートカットやBATファイル等に設定を書いておくタイプ。
起動すると、コマンドプロンプト(黒い画面)が立ち上がり、設定が表示されて使える状態になる。
以降はエラーが起きる度にエラーメッセージが表示される。
何も設定しないで起動した場合、
ユーザーエージェントは接続したブラウザの設定、待ち受けポートは9080で立ち上がる。

通信速度が高速で、メモリ消費量が少ないのが特長。

作者  
動作環境 Windows / Mac / Linux(※C++ソース同梱、要コンパイル)
動作タイプ API
HTML
最新版 Version 20230713
https://notabug.org/NanashiNoGombe/proxy2ch/releases
公開gitリポジトリ https://notabug.org/NanashiNoGombe/proxy2ch
備考 必要に応じて[GUIツール][iOS版]なども参照してください。

※20220319 版以降は、新 bbs.cgiへのPOST仕様に対応。
※20210528 版以降は、Luaスクリプトを用いたリクエストヘッダ・ボディの書き換えに対応。
※20171002 版以降は、2ch.net/5ch.netドメイン両対応バージョン。
※20170422 版以降は、新 read.cgi (ver 07.0.0)の新フォーマットへのhtml対応バージョン。
※20170307 版以降は、bbspinkの新フォーマットhtml対応バージョン。
※20151114 版以降は、新 read.cgi(従来のHTMLモードで取得できない鯖)への対応バージョン。

(専用スレ)
2ch.netの仕様変更に対策するスレ

(関連スレ)
proxy2ch愛好会 Part4
専用ブラウザを助けるプロクシ作らね?27串目
5ch専用ブラウザ用Proxy 総合01

使い方

同梱の README.txt を参照。

●HTML(read.cgi 経由)モード で使う (proxy2ch + JaneXeno)

【1】 先に、「JaneXeno」の設定をする。

【2】 「JaneXeno」で、ツール→設定 - 【通信】 を、以下のように設定する。

 ・「Proxyを使う」をチェック
 ・受信用の鯖を localhost 、ポートを 9080 に設定する。(送信用は空欄でよい)

  ポート
受信用 localhost 9080
送信用    

 ※ポート番号 9080 が、「proxy2ch」のデフォルトなので、「proxy2ch」の設定ポートに合わせるのがポイント。

【3】 「JaneXeno」で、ツール→ビューア設定にいき、[書庫,通信] タブを開き、「Proxyを使う」のチェックを外す。

【4】 ここで、一旦「JaneXeno」を終了させる。(※設定を反映させるには、「JaneXeno」の再起動が必要。)

【5】 「proxy2ch」の最新版を、上記のリンクから入手。ウイルスチェック等を済ませ、任意の場所に解凍する。

【6】 解凍して出てきた「proxy2ch-20210416」フォルダの中の「Win32」フォルダにある proxy2ch.exe をクリックして起動。
 ※起動に必要なファイルは、proxy2ch.exelibcurl.dlllibwinpthread-1.dll の3つ。

【7】 コマンドプロンプトが起動すればOK。

【8】 続いて、「JaneXeno」を起動すれば、いつも通り閲覧できる。


(起動画面)
Process start...
proxy2ch version 20210519 with curl 7.76.1 (TLS/SSL backend: Schannel)
Global User-Agent: n/a
Listening on port 9080...
_




コマンドオプション

同梱の README.txt を参照。

(proxy2ch -h の実行結果例)
proxy2ch version 20220522 with curl 7.82.0 (TLS/SSL backend: Schannel)
Scripting enabled with Lua 5.4.2
usage: proxy2ch [OPTIONS]
available options:
  -p <port> : Listen on port <port> (default: 9080)
   -t <timeout> : Set connection timeout to <timeout> seconds (default: 30)
   -a <user-agent> : Overwrite user-agent for connection
   -g : Accept all incoming connections (default: localhost only)
   -c : Accept HTTP CONNECT method (act as an HTTPS proxy)
   -4 : Force IPv4 DNS resolution
   -b <backlog> : Set backlog value to <backlog> for listen() (default: 32)
   -s : Force https connection for 5ch.net/bbspink.com URLs
   --proxy <server:port> : Use proxy <server:port> for connection
   --api <AppKey:HmacKey> : Use API for reading/posting
   --api-usage <read|post|all> : Specify operations where API is used (default: all)
   --api-auth-ua <user-agent> : Specify user-agent for API authentication
   --api-dat-ua <user-agent> : Specify user-agent for dat retrieving via API
   --api-auth-xua <X-2ch-UA> : Specify X-2ch-UA for API authentication
   --api-dat-xua <X-2ch-UA> : Specify X-2ch-UA for dat retrieving via API
   --api-server <server> : Specify gateway server for API
   --bbsmenu <URL> : Replace "5ch.net" occurrences in links for URL
   --chunked : Preserve "chunked" transfer encoding
   --bbscgi-header <header: value> : Force replace header when sending request to bbs.cgi
   --bbscgi-postorder <field1,field2,...> : Specify a field order in request body being sent to bbs.cgi
   --bbscgi-utf8 <none|api|all> : Specify whether a request body being sent to bbs.cgi should be converted to UTF-8
   --bbscgi-lua <path> : Process request header/body being sent to bbs.cgi with a Lua script at <path>
   --verbose : Print logs in detail
   --gikofix : Fix invalid HTTP POST body (for gikoNavi)
   --keystore <path> : Use a file at <path> as a persistent storage for MonaKey
   --num-threads <num> : Specify number of threads in a thread pool


テスト版

通常配布版の入手先は上記の[概要]を参照。

※20170422ベース 20170427 test4

※20170422ベース 20170426 test1,2,3



過去のリリース

(関連レス)

※Tor板、5chスレの投稿



派生版、ツール

GUIフロントエンドツール

proxy2ch の実行を補助するためのツール。
GUI画面から proxy2ch を起動でき、またツールとの連携で同時に起動・終了が可能。

更新日時 ツール名 実行形式 入手先
2017/10/09
02:52
proxy2ch helper HTMLアプリ https://pastebin.com/F4AZNPdX
2017/10/06
01:59
proxy2ch Frontend バイナリ 専用ページを参照

■proxy2ch Frontend
専用ページを参照。

■proxy2ch helper
proxy2ch と同じフォルダにダウンロード後、拡張子 .hta にリネームして実行する。
必要な項目を設定後、「開始」ボタンを押すと proxy2ch が起動される。
なお、設定した項目内容は、「保存」ボタンを押すか helper 終了時に .hta ファイル内に記録される。

(設定画面の一覧)
 proxy2ch_helper.png


iOS版 proxy2ch

作者  
動作環境 iOS(※Jailbreak環境、iOS4.3/6.1/7 SDK)
動作タイプ API(iOS6.1/7のみ?)
HTML
最新版(iOS4.3) proxy2ch-20150326-ios.tar.gz (※2015/03/28 03:24 更新)
http://xiwayy2kn32bo3ko.onion.city/test/download.cgi?board=tor&id=2015032803244217913&filetype=.gz
最新版(iOS6.1) proxy2ch-20150326-ios6.zip (※2015/04/18 15:51 更新)
http://xiwayy2kn32bo3ko.onion.city/test/download.cgi?board=tor&id=2015041815513704204&filetype=.zip
最新版(iOS7) proxy2ch-20150326-ios7.zip (※2015/04/18 12:58 更新)
http://xiwayy2kn32bo3ko.onion.city/test/download.cgi?board=tor&id=2015041812583008276&filetype=.zip

(関連レス)

 138 :完全匿名の名無しさん:2015/03/28(土) 03:24
 proxy2chをiOS向けにビルドしたもの
 Jailbreak環境でしか動かないよ
 iOS4.3 SDKでビルドしたよ
 iOS4.3 SDKだとcurlがSSLサポートを有効にできなかったのでAPIモードでは動かんよ
 骨董品のiPod touch 4th with iOS 5で動いてるけど他で動くのかは知らんよ

 167 :完全匿名の名無しさん:2015/04/18(土) 12:58
 iOS7 SDKでビルドしたもの
 実機持ってないから動くのかはシラネ

 169 :完全匿名の名無しさん:2015/04/18(土) 15:51
 iOS6.1 SDKを引っ張ってきた



 770 名前:名無しさん@お腹いっぱい。[] 投稿日:2015/03/30(月) 14:50:06.70 ID:0O9WdxNm0 [2/3]
 iOS版のproxy2ch使う場合proxypacはどこに置いとけばええの

 773 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/03/30(月) 14:58:04.63 ID:xtqNvXU00 [2/3]
 >>770
 ORE KOKO NI SITERU
 URL:file:///private/var/preferences/***.pac

 778 名前:名無しさん@お腹いっぱい。[] 投稿日:2015/03/30(月) 16:50:44.91 ID:0O9WdxNm0 [3/3]
 >>773
 2chだけ読み込めない・・・ぼすけて

 788 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/03/30(月) 17:40:49.64 ID:xtqNvXU00 [3/3]
 >>778
 KORE DE DOU?

 function FindProxyForURL(url, host)
 {
  if (shExpMatch(url, "http://*.2ch.net/*.dat")) return "PROXY 127.0.0.1:9080";
  else if (shExpMatch(url, "http://*.bbspink.com/*.dat")) return "PROXY 127.0.0.1:9080";
  else return "DIRECT";
 }

 829 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/03/31(火) 08:48:57.17 ID:trwEQsZf0
 >>788
 いけたありがと



 【twinkle他API未対応ブラウザで2chを見る方法・単独編】

 ・下準備
 1.
 脱獄し、MobileTerminalとiFileをインストール
 2.
 http://xiwayy2kn32bo3ko.onion.city/test/download.cgi?board=tor&id=2015032803244217913&filetype=.gz
 ↑をダウンロードし、解凍したproxy2chを/var/Mobileに入れる
 3.
 Terminalを起動し、root権限を取得
 su→パスワード入力(初期値はalpine)
 4.
 以下のコマンドを順に入力
 chmod 755 ./proxy2ch
 nohup ./proxy2ch &
 以後、iPhone再起動の度にTerminalでnohup ./proxy2ch &と入力する必要がある
 5.
 http://xiwayy2kn32bo3ko.onion.city/test/download.cgi?board=tor&id=2015032700020101441&filetype=.zip
 ↑をダウンロードし、解凍したproxy.pacをvar/preferencesに入れる

 ・wifi用設定
 設定→Wi-Fiを開き、使用したいwifi設定の右のiボタンを押す
 一番下のHTTPプロキシで自動を選択し、URLにfile:///var/preferences/proxy.pacと入力

 ・3G 4G用設定
 /var/preferences/SystemConfiguration/preferences.plistのをiFileのテキストビューアーで編集
 https://code.google.com/p/wallproxy/wiki/iOSFAQ
 ↑の<!-- 下行开始 -->から<!-- 上行结束 -->の間の文字列を追加し、
 http://127.0.0.1:8086/proxy.pacをfile:///var/preferences/proxy.pacに書き換え、
 保存でiPhone再起動
 この際、文字列追加箇所を間違えやすいので、(ip1)を目印に探すこと
 慎重に行くならpreferences.plistのバックアップも取っておくこと

 5.
 終了時には以下のコマンドを入力
 killall proxy2ch
  


 596 名前:iOS[sage] 投稿日:2015/03/31(火) 15:10:15.04 ID:uFC/NGzn [1/4]
 うーん一度いけてそのあとはこうなってしまうなぜだろうだれかなんかご教授ください
 http://i.imgur.com/t1RFKgn.jpg

 598 名前:iOS[sage] 投稿日:2015/03/31(火) 15:19:48.15 ID:3MPXfd57 [4/5]
 >>596
 それmobile terminal(ios7)でしょ
 iOS terminal使え
 そのままがいいならcore utilities入れればいけるはず
 前者のやつ俺入れてたが同じようにコマンド入ってなかったから自動追加されないんだろうな
   


Windows9x版 proxy2ch

古いWindowsで使えるように有志によりパッチ当てされたproxy2ch。

作者  
動作環境 proxy2ch9x : Windows 95/98/98SE/Me
proxy2chCE : Windows CE 3.0,4.0,5.0 (ARM)/PocketPC 2000,WindowsMobile 5,6 (ARM)
動作タイプ API(20151114-rev2以降)
HTML
最新版 proxy2ch9x-20220522 (※2022/05/23 更新)
https://1drv.ms/f/s!AvNsCKBzSl7rgxKoc9mCrjzCDtsN

(関連レス)



OpenWrt版 proxy2ch

OpenWrt/LEDEファームウェアで稼働中のルーターで使えるように有志によりパッチ当てされたproxy2ch。

作者  
動作環境 OpenWrt 21.02 / ath79 アーキテクチャ用
動作タイプ API
HTML
最新版 proxy2ch_20220522-1_mips_24kc (※2022/05/23 更新)
http://alicubi.starfree.jp/openwrt/21.02/packages/mips_24kc/test/proxy2ch_20220522-1_mips_24kc.ipk

(関連レス)



Tips

ウインドウを非表示で起動するVBS

ウインドウが出ないので、起動してるかどうかはタスクマネージャで確認する。
終了させるのもタスクマネージャで。


CreateObject("WScript.Shell").Run """C:\フォルダ名\proxy2ch.exe"" -p ""ポート番号"" -a ""好きなUser-Agent""",0


上の1行をコピペしてテキストファイルを作って、(適当な名前).vbs で保存。
C:\フォルダ名ポート番号好きなUser-Agent は適当に書き換える。
次からは、vbs をダブルクリックで起動。

最後の「,0」は、ウィンドウの表示(1)・非表示(0)。
最後の「,0」の後は、改行しないこと。半角スペースもNG。

(例)

CreateObject("WScript.Shell").Run """D:\Program Files\JaneXeno\proxy2ch\proxy2ch.exe"" -p ""8080"" -a ""Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0""",0




※ショートカットをいじって「最小化」という手も。

【1】 proxy2ch.exe を右クリック → ショートカットの作成
【2】 ショートカット を右クリック → プロパティ → 実行時の大きさを「最小化」

(設定例)

proxy2chを起動・終了させるAHKスクリプト


 908 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/03/26(木) 07:21:21.06 ID:kxJ0z2Ai0
 proxy2chを起動したり終了したりするAHKスクリプト適当

 DetectHiddenWindows, On
 Process, Exist, proxy2ch.exe
 if (ERRORLEVEL <> 0)
 WinClose, ahk_pid %ERRORLEVEL%
 else
 Run, D:\hogehoge\proxy2ch.exe,, Hide



Linuxでのコンパイルエラー回避


 24 :名無しさん@お腹いっぱい。 [sage] :2015/03/28(土) 09:31:26.85 ID:1JXaWHbD0
 proxy2ch-20150326.zip
 makeが通りません。

 proxy2ch-20150326$ make
 g++ -O2 -c main.cpp
 main.cpp: In function ‘void log_printf(int, const char*, ...)’:
 main.cpp:43:23: error: ‘va_start’ was not declared in this scope
 va_start(argp, format);
 ^
 main.cpp:45:13: error: ‘va_end’ was not declared in this scope
 va_end(argp);
 ^
 make: *** [main.o] Error 1
 よろしくお願いします

 25 :名無しさん@お腹いっぱい。 [sage] :2015/03/28(土) 09:39:24.89 ID:XchxShWn0
 >>24
 Linux環境ならmain.cppに#include <stdarg.h>を追加するとかなんとか
 過去ログにあった



UNIXシェルによるproxy2ch起動

※APIキー部分はオトナの事情で"ごにょごにょ"してます。

 27 :名無しさん@お腹いっぱい。 [sage] :2015/03/28(土) 16:09:16.51 ID:Zar3CLGZ0
 今、この下のスクリプトで起動してますが
 (途中、長すぎると出て書き込めなかったので改行してます)
 #!/bin/bash
 ~/proxy2ch -p 8080 -a 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko' --api 'ごにょごにょ:ごにょごにょ'
 --api-auth-ua 'Mozilla/3.0 (compatible; JaneStyle/3.83)' --api-dat-ua 'Mozilla/3.0 (compatible; JaneStyle/3.83)' --api-auth-xua 'JaneStyle/3.83' --api-dat-xua  'JaneStyle/3.83' &
 /home/assy/jd/jd && killall proxy2ch

 下記のような感じで訂正しやすくしたいのですがうまくできません

 #!/bin/bash

 IFS_BACKUP=$IFS
 IFS=$'\n'

 PORT=8080
 UA='Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'
 APPKEY='ごにょごにょ'
 HMKEY='ごにょごにょ'
 APIAUTHUA='Mozilla/3.0 (compatible; JaneStyle/3.83)'
 APIDATUA='Mozilla/3.0 (compatible; JaneStyle/3.83)'
 APIAUTHXUA='JaneStyle/3.83'
 APIDATXUA='JaneStyle/3.83'

 ~/proxy2ch -p $PORT -a $UA --api $APPKEY:$HMKEY --api-auth-ua $APIAUTHUA --api-dat-ua $APIDATUA --api-auth-xua $APIAUTHXUA --api-dat-xua $APIDATXUA &
 /home/assy/jd/jd && killall proxy2ch
 IFS=$IFS_BACKUP

 うまく行く方法無いでしょうか?

 28 :名無しさん@お腹いっぱい。 [sage] :2015/03/28(土) 17:27:05.08 ID:2Q2oQzZl0
 >>27
 そんなの、この程度で十分だろ

 #!/bin/sh

 APPKEY='~~~~'
 HMKEY='~~~~'

 path/to/proxy2ch -p 8080 --api "$APPKEY:$HMKEY" \
 -a 'Mozilla/5.0 ~~~' \
 --api-auth-ua '~~~~~' \
 --api-dat-ua '~~~~~' \
 --api-auth-xua '~~~~~' \
 --api-dat-xua '~~~~~' &
 /home/assy/jd/jd && killall proxy2ch

 29 :名無しさん@お腹いっぱい。 :2015/03/28(土) 17:57:34.08 ID:T7h7lGEm0
 >>27
 #!/bin/bash

 APIKEY='自分で調べてね'
 HMKEY='自分で調べてね'
 UA='Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko'
 APIAUTHUA='Mozilla/3.0 (compatible; JaneStyle/3.83)'
 PIDATUA='Mozilla/3.0 (compatible; JaneStyle/3.83)'
 APIAUTHXUA='JaneStyle/3.83'
 APIDATXUA="JaneStyle/3.83"
 PORT=8888
 TIMEOUT=9
 PROXY=''
 OPENPROXY=''
 eval CHPROXYPATH="~/2ch/proxy2ch"
 eval JDPATH="~/jd-2.8.9-150226/jd"
 [ -e "${CHPROXYPATH}" ] | | exit ; [ -x "${CHPROXYPATH}" ] | | exit ; [ -e "${JDPATH}" ] | | exit ; [ -x "${JDPATH}" ] | | exit
 if [ "${APIKEY}" -a "${HMKEY}" ]; then
 "${CHPROXYPATH}" ${PORT:+ -p "${PORT}"} ${TIMEOUT:+ -t "${TIMEOUT}"} ${UA:+ -a "${UA}"} ${OPENPROXY:+ -g} ${PROXY:+ --proxy "${PROXY}"} \
 --api ${APIKEY}:${HMKEY} \
 ${APIAUTHUA:+ --api-auth-ua "${APIAUTHUA}"} \
 ${APIDATUA:+ --api-dat-ua "${APIDATUA}"} \
 ${APIAUTHXUA:+ --api-auth-xua "${APIAUTHXUA}"} \
 ${APIDATXUA:+ --api-dat-xua "${APIDATXUA}"} &
 else
 "${CHPROXYPATH}" ${PORT:+ -p "${PORT}"} ${TIMEOUT:+ -t "${TIMEOUT}"} ${UA:+ -a "${UA}"} ${OPENPROXY:+ -g} ${PROXY:+ --proxy "${PROXY}"} &
 fi
 echo "proxy2ch PID= $!";sleep 1;"${JDPATH}";echo "JD $?";sleep 1;
 kill $!
 echo "kill $?";sleep 1
 exit

 30 :名無しさん@お腹いっぱい。 [sage] :2015/03/28(土) 18:35:15.35 ID:Zar3CLGZ0
 >>28
 "$APPKEY:$HMKEY" → ${APPKEY}:${HMKEY} に変更したらいけました
 ありがとう

 >>29
 すごいです・・・
 とても勉強になります
 ありがとう

 31 :名無しさん@お腹いっぱい。 :2015/03/28(土) 19:22:44.66 ID:T7h7lGEm0
 #これproxy起動前に付けてproxy2重起動防

 CHPROXYPID=$(pgrep -f "${CHPROXYPATH}")
 if [ ${CHPROXYPID} ]; then
 kill ${CHPROXYPID}
 echo "kill proxy2ch"
 fi



proxy2ch helperの画面レイアウトを自分用に変えたい

proxy2ch helper はHTMLベースのhtaファイルのため、HTML5の構文を知っていれば、自分用の設定画面にカスタマイズできる。
修正場所は以下の部分。


     :
 <BODY bgColor=threedface>
 <FORM action=javascript:void(start())>
     :
 (画面レイアウトのHTMLタグ群)
     :

 </FORM></BODY></HTML>


(カスタマイズした設定画面例)
 proxy2ch_helper_kai.png


『不正なPROXYを検出しました』を回避したい

--bbscgi-headerオプションを使いAcceptヘッダーを書き換えて対処する。


 proxy2ch.exe --bbscgi-header "Accept: text/html"



『アプリケーションを正しく起動できませんでした』ダイアログが出る

proxy2ch-20180624から付属してるlibcurl.dll(7.60.0)が原因。
対処法は別バージョンのlibcurl.dllを持ってくること。
(proxy2ch-20171003r以前にはlibcurl.dll(7.53.1.0)が付属している)


 794 名無しさん@お腹いっぱい。 2018/06/25(月) 01:59:30.80 ID:
 最新バージョンにしたらエラーが出て起動しないわ

 796 名無しさん@お腹いっぱい。 2018/06/25(月) 02:04:35.38 ID:
 >>794
 1個前のlibcurl.dll(7.53.1.0)に戻せばいい。


『送信された内容が破損しています』を回避したい

--gikofixオプションを使い対処する。


 proxy2ch.exe --gikofix


フィールド順序 --bbscgi-postorderオプション

bbs.cgiにPOSTされるリクエストボディのフィールドの順序を指定する。
カンマ区切りでフィールド名を並べて順序を指定。

例えば--bbscgi-postorder "FROM,mail,MESSAGE,bbs,key,time,submit"とすると、
FROM=A&mail=B&MESSAGE=C&bbs=D&key=E&time=F&submit=Gのように並び替えられる。


 proxy2ch.exe --bbscgi-postorder "FROM,mail,MESSAGE,bbs,key,time,submit"


指定しなかったフィールドは指定したものの後に続く。

これにより別のブラウザからの投稿に擬態できる。
以下はJane系ブラウザの一例。
submit=A&FROM=B&mail=C&MESSAGE=D&bbs=E&key=F&time=G


 proxy2ch.exe --bbscgi-postorder "submit,FROM,mail,MESSAGE,bbs,key,time"


  • 最終更新:2023-07-14 00:21:10

このWIKIを編集するにはパスワード入力が必要です

認証パスワード