中文请点击这里.
rsock은 가속기나 VPN이 아닙니다. 이는 단지 UDP 연결을 여러 개의 가짜 TCP 연결이나 여러 개의 일반 UDP 연결 또는 둘 다로 전환하는 것뿐입니다. 신뢰할 수 없고 흐름 제어, 시간 초과 재전송 알고리즘 등이 없기 때문에 udp와 매우 유사합니다. 크로스 플랫폼 입니다. kcptun 또는 ARQ가 있는 다른 UDP 클라이언트와 함께 사용되어야 합니다. RSock의 목적은 ISP에서 UDP로의 QOS를 방지하는 것입니다. 그것은 Windows, Mac 및 Linux를 지원합니다. kcptun 소개 및 사용법을 보려면 여기를 클릭하세요. Shadowsocks는 여기를 클릭하세요.
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-800KB/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 램
rsock(tcp 전용, 11개 포트). 125만
rsock(udp만 해당, 11개 포트). 150만
rsock(doc/tcp 및 udp, 각각 11개 포트. 1.1M
kcptun. 가장 빠른 속도는 약 1.5MB입니다.
rsock(tcp 전용, 11개 포트). 140만
rsock(udp 전용, 11개 포트. 1.7M
rsock(udp 및 tcp, 각 11포트)900K. 두 번 테스트했는데 속도가 느려졌습니다.
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 클라이언트를 다시 시작해 보십시오(shadowsock을 켜거나 끄면 kcptun이 다시 시작됩니다).
RSock은 데이터를 암호화하지 않습니다 . 암호화는 앱 수준(kcptun)에서 발생합니다.
udp2raw-터널
kcptun-raw
ICMP 터널
코드를 리팩터링합니다.
무작위 포트 수신을 추가합니다.
유휴 모드를 추가합니다. 일정 기간 동안 데이터가 없으면 서버에 반복적으로 연결하지 마십시오.
다른 가짜 연결을 추가하세요. 예: ICMP, DNS.