「HTTP・SOCKS・透過プロキシ・UDP」の版間の差分

Notion-MW
Notion-MW
 
10行目: 10行目:
==== gost ====
==== gost ====


GO Simple Tunnelの略らしい。安定版のv2系([https://github.com/ginuerzh/gost https://github.com/ginuerzh/gost], [https://v2.gost.run/ https://v2.gost.run/])と開発中のv3系([https://github.com/go-gost https://github.com/go-gost], [https://gost.run/ https://gost.run/])で大きく仕様が異なる。v3は開発中と言いつつv2系のページを見るとかなりv3推しに見える。
GO Simple Tunnelの略らしい。安定版のv2系([https://github.com/ginuerzh/gost <span>https://github.com/ginuerzh/gost</span>], [https://v2.gost.run/ https&#58;//v2.gost.run/])と開発中のv3系([https://github.com/go-gost https&#58;//github.com/go&#45;gost], [https://gost.run/ https&#58;//gost.run/])で大きく仕様が異なる。v3は開発中と言いつつv2系のページを見るとかなりv3推しに見える。


starはバージョン2が16k、バージョン3が5kほど。
starはバージョン2が16k、バージョン3が5kほど。
22行目: 22行目:
<syntaxhighlight lang="javascript">gost -L "auto://:8480?udp=true&relay=udp" -F socks5://192.168.1.13:3129</syntaxhighlight>
<syntaxhighlight lang="javascript">gost -L "auto://:8480?udp=true&relay=udp" -F socks5://192.168.1.13:3129</syntaxhighlight>
<p>などとしても、 05f3 0001 0000 0000 0000みたいなよくわからんリクエストが送られてしまう。このf3のところは下記の独自拡張っぽい。</p>
<p>などとしても、 05f3 0001 0000 0000 0000みたいなよくわからんリクエストが送られてしまう。このf3のところは下記の独自拡張っぽい。</p>
<p>[https://github.com/go-gost/x/blob/04d1587a77964636d8e50f5cce475ee8621bece7/internal/util/socks/socks.go#L17 https://github.com/go-gost/x/blob/04d1587a77964636d8e50f5cce475ee8621bece7/internal/util/socks/socks.go#L17]</p></li></ul>
<p>[https://github.com/go-gost/x/blob/04d1587a77964636d8e50f5cce475ee8621bece7/internal/util/socks/socks.go#L17 <span>https://github.com/go-gost/x/blob/04d1587a77964636d8e50f5cce475ee8621bece7/internal/util/socks/socks.go#L17</span>]</p></li></ul>


==== go&#45;proxy ====
==== go&#45;proxy ====


[https://github.com/snail007/goproxy https://github.com/snail007/goproxy]
[https://github.com/snail007/goproxy <span>https://github.com/snail007/goproxy</span>]


これも見た感じgostと同じくらいか一部では上回るくらい多機能に見えるが、この雰囲気にしては珍しく有料版があり、無料版だと一部機能が制限されているようなので、あまり使ったことはない。
これも見た感じgostと同じくらいか一部では上回るくらい多機能に見えるが、この雰囲気にしては珍しく有料版があり、無料版だと一部機能が制限されているようなので、あまり使ったことはない。
37行目: 37行目:
==== shadowsocks ====
==== shadowsocks ====


SOCKSに暗号化を施した独自プロトコルで、いくつかの実装がある。[https://github.com/shadowsocks/shadowsocks-rust https://github.com/shadowsocks/shadowsocks-rust]などが主流とみられる。
SOCKSに暗号化を施した独自プロトコルで、いくつかの実装がある。[https://github.com/shadowsocks/shadowsocks-rust <span>https://github.com/shadowsocks/shadowsocks-rust</span>]などが主流とみられる。


VPN以外のGFW回避ソフトウェアだとおそらくもっともメジャー。
VPN以外のGFW回避ソフトウェアだとおそらくもっともメジャー。
60行目: 60行目:
==== dlundquist/sniproxy ====
==== dlundquist/sniproxy ====


[https://github.com/dlundquist/sniproxy https://github.com/dlundquist/sniproxy] starは2.6kほど。2024年に更新あり。非推奨である理由(HTTP/2とかQUICでうまくいかないとか)も書いてある。
[https://github.com/dlundquist/sniproxy <span>https://github.com/dlundquist/sniproxy</span>] starは2.6kほど。2024年に更新あり。非推奨である理由(HTTP/2とかQUICでうまくいかないとか)も書いてある。


==== tcpproxy ====
==== tcpproxy ====


[https://github.com/inetaf/tcpproxy https://github.com/inetaf/tcpproxy] starは1.3kほど。ライブラリ用途がメインか。
[https://github.com/inetaf/tcpproxy <span>https://github.com/inetaf/tcpproxy</span>] starは1.3kほど。ライブラリ用途がメインか。


<span id="ameshkovsniproxy"></span>
<span id="ameshkovsniproxy"></span>
==== ameshkov/sniproxy ====
==== ameshkov/sniproxy ====


[https://github.com/ameshkov/sniproxy https://github.com/ameshkov/sniproxy] starは70ほど。上流のSOCKS5, HTTPプロキシへの転送機能がある。
[https://github.com/ameshkov/sniproxy <span>https://github.com/ameshkov/sniproxy</span>] starは70ほど。上流のSOCKS5, HTTPプロキシへの転送機能がある。


<span id="puxxustcsniproxy"></span>
<span id="puxxustcsniproxy"></span>
==== puxxustc/sniproxy ====
==== puxxustc/sniproxy ====


[https://github.com/puxxustc/sniproxy https://github.com/puxxustc/sniproxy] starもほぼなく更新も9年前。
[https://github.com/puxxustc/sniproxy <span>https://github.com/puxxustc/sniproxy</span>] starもほぼなく更新も9年前。


<span id="socksプロキシサーバー"></span>
<span id="socksプロキシサーバー"></span>
103行目: 103行目:
==== socks&#45;with&#45;udp&#45;over&#45;ssh ====
==== socks&#45;with&#45;udp&#45;over&#45;ssh ====


[https://github.com/ge9/socks-with-udp-over-ssh https://github.com/ge9/socks-with-udp-over-ssh]
[https://github.com/ge9/socks-with-udp-over-ssh <span>https://github.com/ge9/socks-with-udp-over-ssh</span>]


これ自体はSOCKS5サーバーではなく、TCP接続(あるいは任意のバイトストリーム)の上にUDP付きのSOCKS5を通すために自分が実装したツール。サーバー側とクライアント側に分かれている。しかし実装した後にgostで同じことができることに気付いた。
これ自体はSOCKS5サーバーではなく、TCP接続(あるいは任意のバイトストリーム)の上にUDP付きのSOCKS5を通すために自分が実装したツール。サーバー側とクライアント側に分かれている。しかし実装した後にgostで同じことができることに気付いた。
115行目: 115行目:
[https://3proxy.ru/ 3proxy tiny free proxy server for Windows, Linux, Unix: SOCKS, HTTP, FTP proxy]
[https://3proxy.ru/ 3proxy tiny free proxy server for Windows, Linux, Unix: SOCKS, HTTP, FTP proxy]


[https://github.com/3proxy/3proxy https://github.com/3proxy/3proxy]
[https://github.com/3proxy/3proxy <span>https://github.com/3proxy/3proxy</span>]


ロシア系。SOCKS・HTTP・POP3・SMTPなどいくつかのプロキシを含む。エラーメッセージなどがかなり不親切だが、結構多機能で、ちゃんと動くソフト。<code>3proxy</code>というメインの実行ファイルとあわせて、各プロキシに対応した<code>socks</code>や<code>proxy</code>といった検索性の低い名前の実行ファイルがいくつか含まれているちょっと謎の構成。
ロシア系。SOCKS・HTTP・POP3・SMTPなどいくつかのプロキシを含む。エラーメッセージなどがかなり不親切だが、結構多機能で、ちゃんと動くソフト。<code>3proxy</code>というメインの実行ファイルとあわせて、各プロキシに対応した<code>socks</code>や<code>proxy</code>といった検索性の低い名前の実行ファイルがいくつか含まれているちょっと謎の構成。
121行目: 121行目:
==== fast&#45;socks5 ====
==== fast&#45;socks5 ====


[https://github.com/dizda/fast-socks5 https://github.com/dizda/fast-socks5] Rust製では最も有名か。starは500ほど。使ったことなし
[https://github.com/dizda/fast-socks5 <span>https://github.com/dizda/fast-socks5</span>] Rust製では最も有名か。starは500ほど。使ったことなし


<span id="txthinkingsocks5"></span>
<span id="txthinkingsocks5"></span>
==== txthinking/socks5 ====
==== txthinking/socks5 ====


[https://github.com/txthinking/socks5 https://github.com/txthinking/socks5]
[https://github.com/txthinking/socks5 <span>https://github.com/txthinking/socks5</span>]


starは700前後。hysteriaやtrojan&#45;goなどいくつかの大きなプロジェクトで使われており、現在もメンテされているgo製のSOCKS5関連ライブラリでは一番メジャーか。
starは700前後。hysteriaやtrojan&#45;goなどいくつかの大きなプロジェクトで使われており、現在もメンテされているgo製のSOCKS5関連ライブラリでは一番メジャーか。
132行目: 132行目:
クライアントもある。
クライアントもある。


自分のfork([https://github.com/ge9/socks5 https://github.com/ge9/socks5])ではFull Cone NATを追加した
自分のfork([https://github.com/ge9/socks5 <span>https://github.com/ge9/socks5</span>])ではFull Cone NATを追加した


<span id="armongo&#45;socks5"></span>
<span id="armongo&#45;socks5"></span>
==== armon/go&#45;socks5 ====
==== armon/go&#45;socks5 ====


[https://github.com/armon/go-socks5 https://github.com/armon/go-socks5]
[https://github.com/armon/go-socks5 <span>https://github.com/armon/go-socks5</span>]


starは2kだが、最終更新2016年でUDP Associateも無し。Wireproxyで以前使われていたが使われなくなった([https://github.com/whyvl/wireproxy/issues/15 https://github.com/whyvl/wireproxy/issues/15])。
starは2kだが、最終更新2016年でUDP Associateも無し。Wireproxyで以前使われていたが使われなくなった([https://github.com/whyvl/wireproxy/issues/15 <span>https://github.com/whyvl/wireproxy/issues/15</span>])。


ここからフォークされたものが複数ある。
ここからフォークされたものが複数ある。
146行目: 146行目:
==== things&#45;go/go&#45;socks5 ====
==== things&#45;go/go&#45;socks5 ====


[https://github.com/things-go/go-socks5 https://github.com/things-go/go-socks5]
[https://github.com/things-go/go-socks5 <span>https://github.com/things-go/go-socks5</span>]


armon/go&#45;socks5からのフォーク(GitHub上ではfork扱いではない)。starは400個ほど。UDP Associateはサポートしているがバグあり(自分のPRが採用されるかどうかで揉めてる[https://github.com/things-go/go-socks5/pull/63 https://github.com/things-go/go-socks5/pull/63])。
armon/go&#45;socks5からのフォーク(GitHub上ではfork扱いではない)。starは400個ほど。UDP Associateはサポートしているがバグあり(自分のPRが採用されるかどうかで揉めてる[https://github.com/things-go/go-socks5/pull/63 <span>https://github.com/things-go/go-socks5/pull/63</span>])。


Wireproxyで使われている。
Wireproxyで使われている。


自分のフォーク [https://github.com/ge9/go-socks5 https://github.com/ge9/go-socks5] ではFull Cone NATを追加した
自分のフォーク [https://github.com/ge9/go-socks5 <span>https://github.com/ge9/go-socks5</span>] ではFull Cone NATを追加した


<span id="haxiisocks5"></span>
<span id="haxiisocks5"></span>
==== haxii/socks5 ====
==== haxii/socks5 ====


[https://github.com/haxii/socks5 https://github.com/haxii/socks5]
[https://github.com/haxii/socks5 <span>https://github.com/haxii/socks5</span>]


armon/go&#45;socks5からのfork。UDP Associate対応。starは50個前後。最終更新2019年。
armon/go&#45;socks5からのfork。UDP Associate対応。starは50個前後。最終更新2019年。
164行目: 164行目:
==== wzshiming/socks5 ====
==== wzshiming/socks5 ====


[https://github.com/wzshiming/socks5 https://github.com/wzshiming/socks5]
[https://github.com/wzshiming/socks5 <span>https://github.com/wzshiming/socks5</span>]


クライアントもある。
クライアントもある。
172行目: 172行目:
とりあえずredsocksと組み合わせでUDP透過プロキシ動作確認済。
とりあえずredsocksと組み合わせでUDP透過プロキシ動作確認済。


Wireproxyで使用が検討された([https://github.com/whyvl/wireproxy/issues/15 https://github.com/whyvl/wireproxy/issues/15])が結局使用されず。
Wireproxyで使用が検討された([https://github.com/whyvl/wireproxy/issues/15 <span>https://github.com/whyvl/wireproxy/issues/15</span>])が結局使用されず。


<span id="haochen233socks5"></span>
<span id="haochen233socks5"></span>
==== haochen233/socks5 ====
==== haochen233/socks5 ====


[https://github.com/haochen233/socks5 https://github.com/haochen233/socks5]
[https://github.com/haochen233/socks5 <span>https://github.com/haochen233/socks5</span>]


クライアントもある。
クライアントもある。
183行目: 183行目:
UDP Associateはサポートしているが、starは49とさらに少なく、最終更新も2021年。
UDP Associateはサポートしているが、starは49とさらに少なく、最終更新も2021年。


同じくWireproxyで使用が検討された([https://github.com/whyvl/wireproxy/issues/15 https://github.com/whyvl/wireproxy/issues/15])が結局使用されず。
同じくWireproxyで使用が検討された([https://github.com/whyvl/wireproxy/issues/15 <span>https://github.com/whyvl/wireproxy/issues/15</span>])が結局使用されず。


<span id="透過socksプロキシクライアント"></span>
<span id="透過socksプロキシクライアント"></span>
202行目: 202行目:
==== hev&#45;socks5&#45;tproxy ====
==== hev&#45;socks5&#45;tproxy ====


[https://github.com/heiher/hev-socks5-tproxy https://github.com/heiher/hev-socks5-tproxy] Linux向け。redsocksより若干知名度は下がるものの、きちんとメンテされている。
[https://github.com/heiher/hev-socks5-tproxy <span>https://github.com/heiher/hev-socks5-tproxy</span>] Linux向け。redsocksより若干知名度は下がるものの、きちんとメンテされている。


<span id="proxifyre"></span>
<span id="proxifyre"></span>
==== ProxiFyre ====
==== ProxiFyre ====


[https://github.com/wiresock/proxifyre https://github.com/wiresock/proxifyre] Windows用の透過SOCKSクライアント。管理者権限必要。TCP/UDP両方対応。インストールも簡単で、よくできている。
[https://github.com/wiresock/proxifyre <span>https://github.com/wiresock/proxifyre</span>] Windows用の透過SOCKSクライアント。管理者権限必要。TCP/UDP両方対応。インストールも簡単で、よくできている。


<span id="proxifier"></span>
<span id="proxifier"></span>
223行目: 223行目:
==== tun2proxy ====
==== tun2proxy ====


[https://github.com/tun2proxy/tun2proxy https://github.com/tun2proxy/tun2proxy]
[https://github.com/tun2proxy/tun2proxy <span>https://github.com/tun2proxy/tun2proxy</span>]


Rust製。starは700ほど。SOCKSとHTTPをtunにしてくれる。
Rust製。starは700ほど。SOCKSとHTTPをtunにしてくれる。
229行目: 229行目:
==== hev&#45;socks5&#45;tunnel ====
==== hev&#45;socks5&#45;tunnel ====


[https://github.com/heiher/hev-socks5-tunnel https://github.com/heiher/hev-socks5-tunnel]
[https://github.com/heiher/hev-socks5-tunnel <span>https://github.com/heiher/hev-socks5-tunnel</span>]


hev&#45;socks5&#45;tproxyの作者による。Androidアプリの[https://github.com/heiher/sockstun https://github.com/heiher/sockstun]もここから。
hev&#45;socks5&#45;tproxyの作者による。Androidアプリの[https://github.com/heiher/sockstun <span>https://github.com/heiher/sockstun</span>]もここから。


== ライブラリ関数ハック系 ==
== ライブラリ関数ハック系 ==
260行目: 260行目:
多段プロキシを構成するためのソフトウェア。
多段プロキシを構成するためのソフトウェア。


UDP非対応([https://github.com/rofl0r/proxychains-ng/issues/336 https://github.com/rofl0r/proxychains-ng/issues/336])。ただしDNSに対応したproxy_dnsというオプションがあり、これを有効にするとDNS以外のUDP通信が正常に機能しなくなる副作用がある([https://github.com/rofl0r/proxychains-ng/issues/103 https://github.com/rofl0r/proxychains-ng/issues/103])。
UDP非対応([https://github.com/rofl0r/proxychains-ng/issues/336 <span>https://github.com/rofl0r/proxychains-ng/issues/336</span>])。ただしDNSに対応したproxy_dnsというオプションがあり、これを有効にするとDNS以外のUDP通信が正常に機能しなくなる副作用がある([https://github.com/rofl0r/proxychains-ng/issues/103 <span>https://github.com/rofl0r/proxychains-ng/issues/103</span>])。


<span id="torsockstsocks"></span>
<span id="torsockstsocks"></span>
278行目: 278行目:
==== discord&#45;drover ====
==== discord&#45;drover ====


[https://github.com/hdrover/discord-drover https://github.com/hdrover/discord-drover]
[https://github.com/hdrover/discord-drover <span>https://github.com/hdrover/discord-drover</span>]


==== discord&#45;voice&#45;proxy ====
==== discord&#45;voice&#45;proxy ====


[https://github.com/runetfreedom/discord-voice-proxy https://github.com/runetfreedom/discord-voice-proxy]
[https://github.com/runetfreedom/discord-voice-proxy <span>https://github.com/runetfreedom/discord-voice-proxy</span>]


<span id="httpプロキシ"></span>
<span id="httpプロキシ"></span>
384行目: 384行目:
SOCKS5(SOCKS4aも?)では、クライアントがCONNECTなどの要求をする際、接続先をIPアドレスではなくホスト名(ドメイン名)で指定することができる仕様になっている。これによりクライアント側ではなくSOCKS5サーバー側でドメイン解決が行われる。
SOCKS5(SOCKS4aも?)では、クライアントがCONNECTなどの要求をする際、接続先をIPアドレスではなくホスト名(ドメイン名)で指定することができる仕様になっている。これによりクライアント側ではなくSOCKS5サーバー側でドメイン解決が行われる。


透過SOCKSプロキシの場合、TCP/UDPレイヤでのプロキシとなるので、この機能が使われることはない([https://turgenev.hatenablog.com/entry/2024/03/25/160556 透過プロキシを用いて特定アプリケーションのTCP・UDP通信をSOCKS5経由にする方法(Windows・Linux(iptables TPROXY)・Androidなど) - turgenev’s blog])(さらに、繰り返しになるが付け加えておくと、普通にセットアップした場合はDNSにプロキシは使われない)。一方、HTTPのレイヤで動作するWebブラウザでは、この機能が使われる場合がある。2018年時点での[https://github.com/FelisCatus/SwitchyOmega/issues/1379 https://github.com/FelisCatus/SwitchyOmega/issues/1379]によれば、Chromeでは必ずSOCKS5サーバー側でドメイン解決が行われる(これは[https://github.com/FelisCatus/SwitchyOmega/wiki/FAQ FAQ]にも書いてある)一方、Firefoxではそうでなかったようである。現在のFirefoxでは「SOCKS v5 を使用するときは DNS もプロキシーを使用する(Proxy DNS when using SOCKS v5)」(v4についても同様のオプションがあるが、SOCKS4aではないSOCKS4でどうなるかは未検証)というオプションがあってデフォルトで有効になっているため、やはり基本的にはSOCKSサーバー側でドメイン解決が行われる。AndroidのFirefox(この設定項目がない)にProxy SwitchyOmegaを入れた場合もそのように動作した。
透過SOCKSプロキシの場合、TCP/UDPレイヤでのプロキシとなるので、この機能が使われることはない([https://turgenev.hatenablog.com/entry/2024/03/25/160556 透過プロキシを用いて特定アプリケーションのTCP・UDP通信をSOCKS5経由にする方法(Windows・Linux(iptables TPROXY)・Androidなど) - turgenev’s blog])(さらに、繰り返しになるが付け加えておくと、普通にセットアップした場合はDNSにプロキシは使われない)。一方、HTTPのレイヤで動作するWebブラウザでは、この機能が使われる場合がある。2018年時点での[https://github.com/FelisCatus/SwitchyOmega/issues/1379 <span>https://github.com/FelisCatus/SwitchyOmega/issues/1379</span>]によれば、Chromeでは必ずSOCKS5サーバー側でドメイン解決が行われる(これは[https://github.com/FelisCatus/SwitchyOmega/wiki/FAQ FAQ]にも書いてある)一方、Firefoxではそうでなかったようである。現在のFirefoxでは「SOCKS v5 を使用するときは DNS もプロキシーを使用する(Proxy DNS when using SOCKS v5)」(v4についても同様のオプションがあるが、SOCKS4aではないSOCKS4でどうなるかは未検証)というオプションがあってデフォルトで有効になっているため、やはり基本的にはSOCKSサーバー側でドメイン解決が行われる。AndroidのFirefox(この設定項目がない)にProxy SwitchyOmegaを入れた場合もそのように動作した。


なお、HTTPプロキシについても、ブラウザで普通に使う分には、(HTTP/HTTPS共に)ドメイン解決は基本的にプロキシサーバー側で行われる。
なお、HTTPプロキシについても、ブラウザで普通に使う分には、(HTTP/HTTPS共に)ドメイン解決は基本的にプロキシサーバー側で行われる。


* 拡張機能などではうまく動作しない場合がある模様。 [https://github.com/FelisCatus/SwitchyOmega/issues/2304 https://github.com/FelisCatus/SwitchyOmega/issues/2304]
* 拡張機能などではうまく動作しない場合がある模様。 [https://github.com/FelisCatus/SwitchyOmega/issues/2304 <span>https://github.com/FelisCatus/SwitchyOmega/issues/2304</span>]


<span id="ブラウザのsocks5プロキシのwebrtc対応"></span>
<span id="ブラウザのsocks5プロキシのwebrtc対応"></span>
412行目: 412行目:
この部分に誤って<strong>クライアント側が通信したい宛先ポート</strong>を入れるよう実装していたSOCKS5クライアントがいくつかある。
この部分に誤って<strong>クライアント側が通信したい宛先ポート</strong>を入れるよう実装していたSOCKS5クライアントがいくつかある。


* semigodking/redsocks…自分の[https://github.com/semigodking/redsocks/issues/210 https://github.com/semigodking/redsocks/issues/210]で修正済み。
* semigodking/redsocks…自分の[https://github.com/semigodking/redsocks/issues/210 <span>https://github.com/semigodking/redsocks/issues/210</span>]で修正済み。
* gost…[https://github.com/ginuerzh/gost/issues/96 https://github.com/ginuerzh/gost/issues/96]で修正済み。
* gost…[https://github.com/ginuerzh/gost/issues/96 <span>https://github.com/ginuerzh/gost/issues/96</span>]で修正済み。
* txthinking/socks5…[https://github.com/txthinking/socks5/issues/15 https://github.com/txthinking/socks5/issues/15]で修正済み。
* txthinking/socks5…[https://github.com/txthinking/socks5/issues/15 <span>https://github.com/txthinking/socks5/issues/15</span>]で修正済み。
* things&#45;go/go&#45;socks5…これはサーバー側。[https://github.com/things-go/go-socks5/issues/29 https://github.com/things-go/go-socks5/issues/29]の通り、クライアントが必ずアドレス・ポートを通知してくれる(ゼロ埋めしない)と仮定していたが、修正された。
* things&#45;go/go&#45;socks5…これはサーバー側。[https://github.com/things-go/go-socks5/issues/29 <span>https://github.com/things-go/go-socks5/issues/29</span>]の通り、クライアントが必ずアドレス・ポートを通知してくれる(ゼロ埋めしない)と仮定していたが、修正された。


== プロキシプロトコル間の変換 ==
== プロキシプロトコル間の変換 ==
421行目: 421行目:
==== socks&#45;to&#45;http&#45;proxy ====
==== socks&#45;to&#45;http&#45;proxy ====


[https://github.com/KaranGauswami/socks-to-http-proxy https://github.com/KaranGauswami/socks-to-http-proxy]
[https://github.com/KaranGauswami/socks-to-http-proxy <span>https://github.com/KaranGauswami/socks-to-http-proxy</span>]


名前の通り、socksをhttpにしてくれる。starは250ほど。
名前の通り、socksをhttpにしてくれる。starは250ほど。
435行目: 435行目:
==== UDPでサーバー→クライアントにデータ送信 ====
==== UDPでサーバー→クライアントにデータ送信 ====


[https://github.com/prof7bit/udp-reverse-tunnel https://github.com/prof7bit/udp-reverse-tunnel]
[https://github.com/prof7bit/udp-reverse-tunnel <span>https://github.com/prof7bit/udp-reverse-tunnel</span>]


これを使うと、<strong>サーバー側だけでポートが開けられるとしても事実上クライアント側で開けられるのと同等</strong>になるのでreverseをするのが楽になる
これを使うと、<strong>サーバー側だけでポートが開けられるとしても事実上クライアント側で開けられるのと同等</strong>になるのでreverseをするのが楽になる
444行目: 444行目:
==== wgslirpy ====
==== wgslirpy ====


[https://github.com/vi/wgslirpy https://github.com/vi/wgslirpy]
[https://github.com/vi/wgslirpy <span>https://github.com/vi/wgslirpy</span>]


Slirp(ユーザーランドで動くPPPサーバーのようなもの)のような形で実装されたWireguardサーバー。rootなしでWireguardサーバーとして動作する。
Slirp(ユーザーランドで動くPPPサーバーのようなもの)のような形で実装されたWireguardサーバー。rootなしでWireguardサーバーとして動作する。
450行目: 450行目:
==== wireproxy ====
==== wireproxy ====


[https://github.com/whyvl/wireproxy https://github.com/whyvl/wireproxy]
[https://github.com/whyvl/wireproxy <span>https://github.com/whyvl/wireproxy</span>]


wgslirpyの逆のような(?)ツール。Wireguardクライアントであるが、SOCKSサーバーとして動作する。
wgslirpyの逆のような(?)ツール。Wireguardクライアントであるが、SOCKSサーバーとして動作する。


依存ライブラリのUDP Associate対応が不完全(自分がプルリクを送っている)だが、クライアントによってはうまくUDP Associateが動く([https://github.com/whyvl/wireproxy/issues/30 https://github.com/whyvl/wireproxy/issues/30])。
依存ライブラリのUDP Associate対応が不完全(自分がプルリクを送っている)だが、クライアントによってはうまくUDP Associateが動く([https://github.com/whyvl/wireproxy/issues/30 <span>https://github.com/whyvl/wireproxy/issues/30</span>])。


<ul>
<ul>