Прокси-сервер Dante SOCKS5 не работает на ipv6

В bash вы можете разделить каждую строку версии, используя IFS, и заполнить массив ее номерами. Затем используйте расширение параметра, чтобы получить длину чисел, и используйте printfдля форматирования полученных чисел :

.
#! /bin/bash
v=5.34.03
a=0.0.1

IFS=.
v=($v)
a=($a)

shopt -s extglob
for ((i=0; i<${#v[@]}; i++)) ; do
    v[i]=${v[i]%%+(0)}
    a[i]=${a[i]%%+(0)}
    v_length=${#v[i]}
    a_length=${#a[i]}
    v[i]=${v[i]##+(0)}
    a[i]=${a[i]##+(0)}
    if (( v_length < a_length )) ; then
        length=$a_length
        (( v[i] *= 10 ** (a_length - v_length) ))
    else
        length=$v_length
        (( a[i] *= 10 ** (v_length - a_length) ))
    fi
    (( v[i] += a[i] ))
    v[i]=$(printf %0"$length"d ${v[i]})
done
IFS=.
echo "${v[*]}"

IFS=$' \t\n'

Мне нужно было обработать ведущие и конечные нули, поскольку числа, такие как 010, обрабатываются как восьмеричные.

0
09.10.2020, 07:09
1 ответ

Начиная сhttps://www.inet.no/dante/doc/1.4.x/config/ipv6.html

Changes to sockd.conf in an IPv4-only usage scenarios are only necessary if either of Dante's internal or external interface addresses are specified in sockd.conf using interfacenames (e.g., external: eth0) or hostnames (e.g., internal: dante-int.example.com), and these interfacenames or hostnames now, or possibly in the future, will contain IPv6 addresses.

The Dante server will by default use all addresses found on an internal interface if the interface is specified by it's name (rather than by one of its IP-addresses). If the interface has one or more IPv6 addresses, this will result in the Dante server also using the IPv6 addresses.

Проверьте, назначен ли интерфейсу enp0s3адрес ipv6, и если да, то dante пытается его использовать. Имея это в виду, замена enp03sна адрес ipv4 должна исправить это.

Пример:

internal: 10.2.4.6 port = 1080
0
30.04.2021, 20:59

Теги

Похожие вопросы