中文请点击这里。
rsock はアクセラレータでも VPN でもありません。これは、udp 接続を複数の偽の tcp 接続、複数の通常の udp 接続、またはその両方に変えるだけです。信頼性が低く、フロー制御やタイムアウト再送信アルゴリズムなどがないため、udp と非常によく似ています。クロスプラットフォームです。 kcptun または ARQ を備えた他の udp クライアントと併用することを想定しています。 rsock の目的は、ISP からの udp への QOS が存在する場合にそれを防ぐことです。 Windows、Mac、Linux をサポートしています。 kcptun の概要と使用法を確認するには、ここをクリックしてください。シャドウソックスは、ここをクリックしてください。
REPEAT : rsock のデータ転送は信頼できません。信頼性の高いデータ転送はアプリ レベル (kcptun) で処理する必要があります。
次の図は原則を簡単に示しています
64 ビット Linux、64 ビット Mac、および x86/x64 Windows 用のプリコンパイル済みバイナリがあります。ここからダウンロードできます。
Windowsユーザーの場合は、最初に winpcap をインストールする必要があります。ウィンキャップ
他のプラットフォームの場合は、ソース コードをダウンロードして自分でコンパイルできます。コンパイルガイドはこちら
ファイアウォールが有効な場合は、必ずファイアウォール ルールを追加してください。
Linux を例に挙げます。
# port=10000
# while [ $port -le 10010 ]
do
sudo ufw allow $port
port=$[ $port + 1]
done
これは、クライアントがポート 10000 ~ 10010 からサーバーに接続できるようにすることを意味します。 ( rsock は、デフォルトでポート範囲 10001 ~ 10010 を使用します。デフォルト値を変更したい場合は、パラメータの説明セクションを確認してください。 )
sudo ./server_rsock_Linux -t 127.0.0.1:9999
パラメータの説明:
127.0.0.1:9999、ターゲット アドレス、別名、動作している kcptun サーバーのアドレス。
mac を例に挙げます。
sudo ./client_rsock_Darwin --taddr=xxxx -l 127.0.0.1:30000
パラメータの説明:
-t xxxx 、rsock サーバーのアドレス。注意。ここがサーバーとは異なります。 IPのみが含まれています。
-l 、ローカルでリッスンされる udp アドレス、別名 kcptun クライアントのターゲット アドレス (-t で指定されたアドレス)。
rsock が機能しない場合は、NIC が winpcap をサポートしているかどうかを確認する必要があります。また、特に Windows を使用している場合、ルーターはパケットをフィルタリングすることもあります。
Windows ユーザーの場合、速度は Mac/Linux 上の rsock よりもはるかに遅くなります。 (テスト中は 500 ~ 800 KB/s) たとえば、Mac/Linux では、rsock は 1080P YouTube ビデオのスムーズな視聴をサポートできます。 Windows ユーザーの場合、rsock は 720P YouTube ビデオのみをサポートします。
ps axu|grep rsock
sudo kill -SIGUSR1 pid # pid is id of rsock. It's 72294 in image above.
-t, --taddr=[addr] target address. e.g. 8.8.8.8:88,7.7.7.7. Required.
-l, --ludp=[addr] local listened udp address. Only valid for client. Required by client.
-d, --dev=[device] name of network interface card of Internet.e.g,eth0, en0. rsock can auto detect right device to work on. Use this when the default can't work.
-h, --help Display help menu. Not available now.
-f json config file
--lcapIp=[ip] Internet IP. Can omit the -d if this parameter sepcified. rsock can auto detect right device to work on. Use this when the default can't work.
--unPath Local unix domain socket. Not available now.
-p, --ports=[...] tcp/udp port list for rsock server. e.g.10001,10010(2 ports); 10001-10010(11 ports); 80,443,10001-10010(12 ports). **NO** white spaces allowed. Default value: 10001-10010
--duration=[timeSec] Time for app connection to persist if no data is transfered in the app connection. unit: seconds. defalt 30s
--hash=[hashKey] Not for encryption. Only for judgement if data belong to rsock. REPEAT: rsock don't encrypt data. Encryption is done by kcptun.
--type=[tcp|udp|all] type of communication. One of tcp, udp or all. Default is tcp.
--daemon=[1|0] Run as daemon. 1 yes. 0 no. default 1.
-v verbose mode. (Better not change default value. There is an unsolved bug that will cause slow speed right now)
--log=[path/to/log] Directory of log. Will create if not exist. Default: /var/log/rsock
--cap_timeout timeout of libpcap. Don't change this value if know what it really means.
tcp モードでは、ソケットからデータを送受信しないため、長さ 0 の ack を送信し、期待する次のシーケンスをピアに伝えます。これは標準によるものです。そしてそれは帯域幅を無駄にすることになります。
オブジェクトの比較:rsock、kcptun
デジタルオーシャンニューヨークのvps。 1G RAM
rsock(TCP のみ、11 ポート)。 125万
rsock(udp のみ、11 ポート)。 1.5M
rsock(doc/tcp および udp、それぞれ 11 ポート。1.1M
kcptun。最速で約 1.5MB。
rsock(TCP のみ、11 ポート)。 1.4M
rsock(udp のみ、11 ポート。1.7M
rsock(udpとtcp、各11ポート)900K。2回テストしました。速度は遅くなります。
kcptun。非常に速い。 2MBくらい。
注: rsock が使用するポートが多いほど高速になるという証拠はありません。それは主に帯域幅によって決まります。
rsock は kcptun の 70% ~ 90% の速度しかありません。
ネットワーク接続が見つからない場合は、rsock と kcptun がまだ実行されているかどうかを確認してください。
フローコマンドを実行して以下を確認できます。
ps axu|egrep 'kcptun|rsock'
kcptun サーバーと rsock サーバーをバックグラウンドで実行することを強くお勧めします。 kcptun サーバーの場合は、次を実行します。
nohup sudo -u nobody ./server_linux_amd64 -r ":port1" -l ":port2" -mode fast2 -key aKey >/dev/null 2>&1 &
rsock サーバーの場合は、パラメーター--daemon=1
を指定するだけです。
サーバーが正常に実行されている場合は、kcptun クライアントを再起動してみます (Shadowsocks をオン/オフにすると、kcptun が再起動されます)。
rsock はデータを暗号化しません。暗号化はアプリ レベル (kcptun) で発生します。
udp2raw-トンネル
kcptun-raw
icmptunnel
コードをリファクタリングします。
ランダム化ポートリスニングを追加します。
アイドルモードを追加します。一定期間データがない場合は、サーバーに繰り返し接続しないでください。
他の偽コンを追加します。例: ICMP、DNS。