中文请点击这里.
rsock no es ni acelerador ni vpn. Simplemente convierte una conexión udp en múltiples conexiones tcp falsas, en múltiples conexiones udp normales o en ambas. Es muy similar a udp porque no es confiable y no tiene control de flujo, algoritmos de retransmisión de tiempo de espera, etc. Es multiplataforma . Se supone que debe usarse junto con kcptun u otro cliente udp con ARQ. El propósito de rsock es evitar que qos pase a udp desde el ISP, si lo hubiera. Es compatible con Windows, Mac y Linux . Para ver la introducción y el uso de kcptun, haga clic aquí. Y calcetines de sombra, haz clic aquí.
REPETIR : La transferencia de datos de rsock NO es confiable. La transferencia de datos confiable debe estar a cargo del nivel de la aplicación (kcptun).
La siguiente imagen muestra brevemente los principios.
Hay binarios precompilados para Linux de 64 bits, Mac de 64 bits y Windows x86/x64. Se pueden descargar desde aquí.
Para los usuarios de Windows , primero deben instalar winpcap. winpcap
Para otras plataformas, puedes descargar el código fuente y compilarlo tú mismo. La guía de compilación está aquí.
Recuerde agregar una regla de firewall si el firewall está habilitado.
Tomemos Linux como ejemplo:
# port=10000
# while [ $port -le 10010 ]
do
sudo ufw allow $port
port=$[ $port + 1]
done
Significa permitir que el cliente se conecte al servidor desde el puerto 10000 al 10010. ( rsock usa el rango de puerto 10001-10010 de forma predeterminada. Si desea cambiar el valor predeterminado, consulte la sección Explicación de parámetros).
sudo ./server_rsock_Linux -t 127.0.0.1:9999
Explicación del parámetro:
127.0.0.1:9999, dirección de destino, también conocida como dirección del servidor kcptun en el que se está trabajando.
Tome mac como ejemplo:
sudo ./client_rsock_Darwin --taddr=xxxx -l 127.0.0.1:30000
Explicación del parámetro:
-t xxxx, Dirección del servidor rsock. Atención. Esto es diferente del servidor. Solo contiene ip.
-l, dirección udp escuchada local, también conocida como dirección de destino del cliente kcptun (la dirección especificada por -t).
Si rsock no funciona, debe verificar si su NIC es compatible con winpcap. Y los enrutadores también pueden filtrar paquetes, especialmente cuando usas Windows.
Para los usuarios de Windows, la velocidad es mucho más lenta que la de rsock en mac/Linux. (500-800 KB/s durante mi prueba), por ejemplo, en Mac/Linux, rsock puede admitir la visualización de vídeos de YouTube en 1080P sin problemas. Para usuarios de Windows, rsock solo admite videos de YouTube 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.
En el modo tcp, dado que no enviamos ni recibimos datos desde el socket, enviará un reconocimiento con longitud 0, indicando al par la siguiente secuencia que espera. Esto debido al estándar. Y eso desperdiciará ancho de banda.
Comparando objetos: rsock, kcptun
vicepresidentes de digitalocean NY. 1 GB de RAM
rsock (solo tcp, 11 puertos). 1,25 millones
rsock (solo udp, 11 puertos). 1,5 millones
rsock(doc/tcp y udp, 11 puertos cada uno. 1,1M
kcptún. El más rápido, alrededor de 1,5 MB.
rsock (solo tcp, 11 puertos). 1,4 millones
rsock (solo udp, 11 puertos. 1,7 M
rsock (udp y tcp, 11 puertos cada uno) 900K. Lo he probado dos veces. La velocidad es más lenta.
kcptún. extremadamente rápido. Alrededor de 2 MB.
nota: No hay evidencia de que cuantos más puertos se utilicen, más rápido será. Está determinado principalmente por su ancho de banda.
rsock solo tiene una velocidad del 70% al 90% de kcptun.
Si no encuentra ninguna conexión de red, verifique si rsock y kcptun aún se están ejecutando.
Puede ejecutar comandos fluidos para verificar:
ps axu|egrep 'kcptun|rsock'
Se recomienda encarecidamente que el servidor kcptun y el servidor rsock se ejecuten en segundo plano. Para el servidor kcptun, ejecute
nohup sudo -u nobody ./server_linux_amd64 -r ":port1" -l ":port2" -mode fast2 -key aKey >/dev/null 2>&1 &
Para el servidor rsock, solo es necesario especificar el parámetro --daemon=1
Si los servidores se ejecutan normalmente, intente reiniciar el cliente kcptun (active/desactive Shadowsocks, esto reiniciará kcptun).
rsock NO cifra datos . El cifrado ocurre en el nivel de la aplicación (kcptun).
túnel-udp2raw
kcptun-raw
túnel icmp
Código de refactorización.
Agregue escucha de puertos aleatoria.
Agregar modo inactivo. No se conecte repetidamente al servidor si no hay datos durante un período.
Agregue otras conexiones falsas. por ejemplo, ICMP, DNS.