中文请点击这里.
rsock não é acelerador nem VPN. Ele simplesmente transforma uma conexão UDP em múltiplas conexões TCP falsas, ou em múltiplas conexões UDP normais, ou ambas. É muito semelhante ao udp porque não é confiável e não possui controle de fluxo, algoritmos de retransmissão de tempo limite, etc. Deve ser usado junto com o kcptun ou outro cliente udp com ARQ. O objetivo do rsock é evitar qos para udp do ISP, se houver. Suporta Windows, Mac e Linux . Para ver a introdução e o uso do kcptun, clique aqui. E shadowocks, clique aqui.
REPETIR : A transferência de dados do rsock NÃO é confiável. A transferência confiável de dados deve ser feita pelo nível do aplicativo (kcptun).
A imagem a seguir mostra brevemente os princípios
Existem binários pré-compilados para Linux de 64 bits, Mac de 64 bits e Windows x86/x64. Eles podem ser baixados aqui.
Para usuários do Windows , você deve primeiro instalar o winpcap. winpcap
Para outras plataformas, você pode baixar o código-fonte e compilá-lo sozinho. O guia de compilação está aqui
Lembre-se de adicionar uma regra de firewall se o firewall estiver ativado.
Veja o Linux como exemplo:
# port=10000
# while [ $port -le 10010 ]
do
sudo ufw allow $port
port=$[ $port + 1]
done
Significa permitir que o cliente se conecte ao servidor da porta 10000 a 10010. ( rsock usa o intervalo de portas 10001-10010 por padrão. Se você deseja alterar o valor padrão, verifique a seção Explicação dos parâmetros. )
sudo ./server_rsock_Linux -t 127.0.0.1:9999
Explicação dos parâmetros:
127.0.0.1:9999, endereço de destino, também conhecido como endereço do servidor kcptun em funcionamento.
Tome o mac como exemplo:
sudo ./client_rsock_Darwin --taddr=xxxx -l 127.0.0.1:30000
Explicação dos parâmetros:
-t xxxx , Endereço do servidor rsock。Atenção. Isso é diferente do servidor. Ele contém apenas ip.
-l , endereço udp escutado local, também conhecido como endereço de destino do cliente kcptun (o endereço especificado por -t).
Se o rsock não funcionar, você deverá verificar se sua NIC suporta winpcap. E os roteadores também podem filtrar pacotes, especialmente quando você usa o Windows.
Para usuários do Windows, a velocidade é muito mais lenta do que o rsock no mac/Linux. (500-800KB/s durante meu teste), por exemplo, no Mac/Linux, o rsock pode suportar a exibição de vídeos do YouTube em 1080P sem problemas. Para usuários do Windows, o rsock só suporta vídeo do YouTube em 720P.
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.
No modo tcp, como não enviamos/recebemos dados do soquete, ele enviará uma confirmação com comprimento 0, informando ao peer a próxima sequência que espera. Isso devido ao padrão. E isso desperdiçará largura de banda.
Comparando objetos:rsock, kcptun
digitalocean NY vps. 1 GB de RAM
rsock (somente tcp, 11 portas). 1,25 milhão
rsock(somente udp, 11 portas). 1,5 milhões
rsock (doc/tcp e udp, 11 portas cada. 1,1M
kcptun. O mais rápido, cerca de 1,5 MB.
rsock (somente tcp, 11 portas). 1,4 milhões
rsock (somente udp, 11 portas. 1,7M
rsock (udp e tcp, 11 portas cada) 900K. Testei duas vezes. A velocidade é mais lenta.
kcptun. extremamente rápido. Cerca de 2 MB.
nota: não há evidências de que quanto mais portas o rsock usar, mais rápido ele será. É determinado principalmente pela sua largura de banda.
rsock tem apenas 70% -90% de velocidade do kcptun.
Se você não encontrar nenhuma conexão de rede, verifique se o rsock e o kcptun ainda estão em execução.
Você pode executar comandos fluidos para verificar:
ps axu|egrep 'kcptun|rsock'
É altamente recomendável que o servidor kcptun e o servidor rsock sejam executados em segundo plano. Para o servidor kcptun, execute
nohup sudo -u nobody ./server_linux_amd64 -r ":port1" -l ":port2" -mode fast2 -key aKey >/dev/null 2>&1 &
Para servidor rsock, só é necessário especificar o parâmetro --daemon=1
Se os servidores funcionarem normalmente, tente reiniciar o cliente kcptun (ligar/desligar shadowsocks, isso irá reiniciar o kcptun).
rsock NÃO criptografa dados . A criptografia acontece no nível do aplicativo (kcptun).
túnel udp2raw
kcptun-raw
túnel icmp
Refatorar código.
Adicione escuta de porta aleatória.
Adicione o modo inativo. Não conecte-se repetidamente ao servidor se não houver dados por um período.
Adicione outra conexão falsa. por exemplo, ICMP, DNS.