Cable basura
Función: Mejorar la usabilidad de redes malas.
UDP se disfraza de TCP: reduce la QoS después de hacerse pasar por TCP
Se pueden configurar varios servidores, desconexión automática, reconexión y cambio de servidor, sin reconocimiento de capa superior: detección de latidos, envío de 5 paquetes de latidos por segundo. Si se pierden los cinco paquetes de latidos, cambie al siguiente servidor. Se puede completar en 2 segundos.
Corrección de errores de reenvío FEC opcional: 20 paquetes originales más 10 paquetes de corrección de errores pueden reducir la tasa de pérdida de paquetes a una diezmilésima.
Codificación entrelazada: puede distribuir uniformemente la pérdida de paquetes concentrada en un corto período de tiempo para evitar que se pierdan tanto los paquetes originales como los paquetes de corrección de errores.
Método de configuración
Junkwire utiliza dispositivos tun para la transmisión de datos, así que primero asegúrese de que el entorno operativo admita dispositivos tun. Después de ejecutarlo, se creará un dispositivo tun llamado faketcp. La dirección IP de este dispositivo se puede configurar a través del archivo de configuración. Generalmente, se puede escribir como 10.1.1.1, siempre que no entre en conflicto con su entorno de red local. Después de ejecutarlo, se virtualizará un dispositivo de red 10.1.1.2.
Configuración del servidor
Primero, configure el servidor DNAT para reenviar los paquetes del puerto correspondiente a junkwire para su procesamiento.
Primero habilite el reenvío ipv4, agregue net.ipv4.ip_forward=1 al archivo /etc/sysctl.conf y luego ejecute sysctl -p para que surta efecto.
Agregar reglas de iptables iptables -t nat -A PREROUTING -i nombre de la tarjeta de red -d IP de la tarjeta de red -p tcp --dport 17021 (puerto de conexión del cliente) -j DNAT --to-destination 10.1.1.2:17021
Ejemplo de configuración de Wireguard, cambiar según la situación real
[Interface]
Address = 10.200.201.1/24
ListenPort = 21007
#ListenPort = 12273
PrivateKey = xxx
MTU = 1340
[Peer]
PublicKey = xxx
AllowedIPs = 10.200.201.2/32
PersistentKeepalive = 25
Ejemplo de archivo de configuración de junkwire del lado del servidor
{
"mode": "server",
"queue":500,
"server": {
"tun": {
"deviceIP": "10.1.1.1",
"port": "17021",
"srcIP": "10.1.1.2"
},
"socket": {
"dstIP": "127.0.0.1",
"dstPort": "21007"
}
},
"fec": {
"enable":false, //是否启用fec
"seg": 20, //几个数据包
"parity": 20, //几个纠错包
"duration":0, //交织编码的时长
"stageTimeout":8, //桶没装满的话最长等多久
"cap":500,
"row":1000
}
}
Inicie el archivo de configuración junkwire ./junkwire -c
Iniciar wireguard wg-quick up wg0
Configuración del cliente
El cliente debe permitir que los datos del dispositivo virtual 10.1.1.2 se envíen sin problemas y se requiere snat.
iptables -t nat -A POSTROUTING -s 10.1.1.2 -p tcp -o eth0 -j SNAT --IP de la tarjeta de red local de origen
Configuración de enrutamiento para evitar que la IP de exportación ingrese a Wireguard
ruta ip agregar servidor ip/32 a través de la puerta de enlace local dev eth0
configuración de protección de cables
[Interface]
Address = 10.200.201.2/24
PrivateKey = yJAu/oI+Oo/Mhswqbm3I/3PWYi+WSxX7JpTQ8IoQqWU=
MTU = 1340
[Peer]
PublicKey = 5/SgVv3hc3f5Fa/XoLo4isBzyrwwATs5sfQv7oWhiTM=
Endpoint = 127.0.0.1:21007
AllowedIPs = 0.0.0.0/1,128.0.0.0/1
PersistentKeepalive = 25
ejemplo de configuración de cable basura
{
"mode": "client",
"queue":500,
"client": {
"tun": {
"deviceIP": "10.1.1.1",
"port": "8978",
"srcIP": "10.1.1.2",
"peers": [
{
"ip":"线路1",
"port":"50018"
},
{
"ip":"线路2",
"port":"17021"
},
{
"ip":"线路3",
"port":"17021"
}
]
},
"socket": {
"listenPort": "21007"
}
},
"fec": {
"enable":false,
"seg": 20,
"parity": 10,
"stageTimeout": 8,
"duration": 0,
"cap": 500,
"row": 1000
}
}
Inicie el archivo de configuración junkwire ./junkwire -c
Iniciar wireguard wg-quick up wg0