中文请点击这里.
rsock не является ни ускорителем, ни впн. Он просто превращает udp-соединение в несколько поддельных TCP-соединений, или в несколько обычных udp-соединений, или в то и другое. Это очень похоже на udp, потому что он ненадежен и не имеет управления потоком, алгоритмов повторной передачи по тайм-ауту и т. д. Это кроссплатформенный протокол . Предполагается, что его следует использовать вместе с kcptun или другим клиентом udp с ARQ. Цель rsock – предотвратить передачу qos по udp от интернет-провайдера, если таковой имеется. Он поддерживает Windows, Mac и Linux . Чтобы ознакомиться с введением и использованием kcptun, нажмите здесь. И теневые носки, нажмите здесь.
ПОВТОР : Передача данных rsock НЕ надежна. Надежная передача данных должна обеспечиваться на уровне приложения (kcptun).
На следующем рисунке кратко показаны принципы
Существуют предварительно скомпилированные двоичные файлы для 64-битной версии Linux, 64-битной версии Mac и Windows x86/x64. Их можно скачать отсюда.
Пользователям Windows сначала необходимо установить winpcap. 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 не работает, вам необходимо проверить, поддерживает ли ваш сетевой адаптер winpcap. Маршрутизаторы также могут фильтровать пакеты, особенно если вы используете Windows.
Для пользователей Windows скорость намного ниже, чем у rsock на Mac/Linux. (500-800 КБ/с во время моего теста), например, на Mac/Linux rsock может поддерживать плавный просмотр видео на YouTube с разрешением 1080P. Для пользователей Windows rsock может поддерживать только видео на 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.
В режиме tcp, поскольку мы не отправляем и не получаем данные из сокета, он отправит подтверждение нулевой длины, сообщая одноранговому устройству следующую последовательность, которую он ожидает. Это из-за стандарта. И это приведет к потере полосы пропускания.
Сравнение объектов:rsock, kcptun
Digitalocean Нью-Йорк VPS. 1 ГБ ОЗУ
rsock(только TCP, 11 портов). 1,25 м
rsock(только udp, 11 портов). 1,5М
rsock(doc/tcp и udp, по 11 портов каждый. 1,1M
ккптун. Самый быстрый, около 1,5 МБ.
rsock(только TCP, 11 портов). 1,4 млн.
rsock(только udp, 11 портов. 1,7M
rsock(udp и tcp, по 11 портов) 900К. Тестировал дважды. Скорость медленнее.
ккптун. чрезвычайно быстро. Около 2 МБ.
Примечание. Нет никаких доказательств того, что чем больше портов использует 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.