Jump to content

IAmYourBatya

Forum Members
  • Posts

    3
  • Joined

  • Last visited

Everything posted by IAmYourBatya

  1. Странно. Сделал iptables -t mangle -L -nv | grep -i ssredir iptables -t nat -L -nv | grep -i ssredir Получаю ненулевые результаты, счетчики пакетов меняются. Если вас не затруднит, сможете прояснить? А то гуглёж выдает только скромную статью на сайте кинетика https://help.keenetic.com/hc/ru/articles/214470905-Сетевой-ускоритель. Может, просто не все пакеты будут проходить через эти таблицы? Или правила все-таки не должны срабатывать полностью?
  2. Как я упомянул: ss-redir запускаю с ключом -u, потому что в инструкции описано как "Enable UDP relay. TPROXY is required in redir mode. You may need root permission". Этого недостаточно? Подскажите, пожалуйста, что тогда делать? Только отключать аппаратный сетевой ускоритель?
  3. Привет! Расскажу, как я настроил свой аппарат. Исходные данные: Keenetic Ultra KN-1810, версия ОС 3.7.4. Домашняя сеть 172.22.0.0/16, через прозрачный прокси будет ходить диапазон 172.22.12.0/24. Настройки сделаны намеренно таким образом, чтобы при обрыве связи в туннеле или остановке демона устройства не ходили в интернет через основной канал. Все можете настроить под себя. 1. Установить необходимые пакеты: # opkg install shadowsocks-libev-ss-redir iptables ipset bind-dig kmod 2. Создать файл /opt/etc/config/ssredir.conf с содержимым: SS_SERVER_HOST="ИМЯ_СЕРВЕРА" SS_SERVER_IP=`/opt/bin/dig +short $SS_SERVER_HOST | tail -1` SS_SERVER_PORT=ПОРТ_СЕРВЕРА SS_SERVER_PASSWORD="ПАРОЛЬ" SS_SERVER_METHOD="АЛГОРИТМ_ШИФРОВАНИЯ" SOURCE_NETWORK="172.22.12.0/24" # ЗДЕСЬ УКАЖИТЕ ТО, ЧТО АКТУАЛЬНО ДЛЯ ВАС PIDFILE="/opt/var/run/ss-redir.pid" SSREDIR="/opt/bin/ss-redir" SSREDIR_CONFIG="/opt/etc/shadowsocks.json" SSREDIR_LOCAL_ADDRESS="0.0.0.0" SSREDIR_LOCAL_PORT="10800" SSREDIR_TIMEOUT=300 3. Создать и сделать исполняемым файл /opt/etc/init.d/S100ssredir: #!/bin/sh PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin . /opt/etc/config/ssredir.conf write_config() { echo "{">"${SSREDIR_CONFIG}" echo "\"server\": [\"${SS_SERVER_IP}\"],">>"${SSREDIR_CONFIG}" echo "\"server_port\": ${SS_SERVER_PORT},">>"${SSREDIR_CONFIG}" echo "\"password\": \"${SS_SERVER_PASSWORD}\",">>"${SSREDIR_CONFIG}" echo "\"method\": \"${SS_SERVER_METHOD}\",">>"${SSREDIR_CONFIG}" echo "\"mode\": \"tcp_and_udp\",">>"${SSREDIR_CONFIG}" echo "\"local_address\": \"${SSREDIR_LOCAL_ADDRESS}\",">>"${SSREDIR_CONFIG}" echo "\"local_port\": \"${SSREDIR_LOCAL_PORT}\",">>"${SSREDIR_CONFIG}" echo "\"timeout\": \"${SSREDIR_TIMEOUT}\",">>"${SSREDIR_CONFIG}" echo "}">>"${SSREDIR_CONFIG}" } ssredir_status () { [ -f $PIDFILE ] && [ -d /proc/`cat $PIDFILE` ] } start() { $SSREDIR -u -c "${SSREDIR_CONFIG}" -f "${PIDFILE}" } stop() { kill `cat $PIDFILE` } case "$1" in start) if ssredir_status then echo ss-redir already running else write_config start fi ;; stop) if ssredir_status then stop else echo ss-redir is not running fi ;; status) if ssredir_status then echo ss-redir already running with pid `cat $PIDFILE` else echo ss-redir is not running fi ;; restart) stop sleep 3 start ;; *) echo "Usage: $0 {start|stop|restart|status}" ;; esac 4. Создать и сделать исполняемым файл /opt/etc/ndm/fs.d/100-ssredir.sh: #!/bin/sh [ "$1" != "start" ] && exit 0 . /opt/etc/config/ssredir.conf BYPASS_RESERVED_IPS="${SS_SERVER_IP} \ 0.0.0.0/8 \ 10.0.0.0/8 \ 127.0.0.0/8 \ 169.254.0.0/16 \ 172.16.0.0/12 \ 192.168.0.0/16 \ 224.0.0.0/4 \ 240.0.0.0/4 \ " ipset create ss_bypass_set hash:net >/dev/null 2>&1 ipset flush ss_bypass_set for line in $BYPASS_RESERVED_IPS; do ipset add ss_bypass_set $line done if [ -z "$(ip route list table 100)" ]; then ip route add local default dev lo table 100 ip rule add fwmark 1 lookup 100 fi exit 0 5. Создать и сделать исполняемым файл /opt/etc/ndm/netfilter.d/100-ssredir.sh: #!/bin/sh [ "$type" == "ip6tables" ] && exit 0 [ $(iptables-save | grep :SSREDIR | wc -l) -eq 2 ] && exit 0 insmod /lib/modules/$(uname -r)/xt_TPROXY.ko iptables -w -t nat -N SSREDIR iptables -w -t mangle -N SSREDIR exit 0 6. Создать и сделать исполняемым файл /opt/etc/ndm/netfilter.d/101-ssredir.sh: #!/bin/sh [ "$type" == "ip6tables" ] && exit 0 [ "$table" != "nat" ] && exit 0 [ ! -z "$(iptables-save | grep tcp | grep ss_bypass_set)" ] && exit 0 . /opt/etc/config/ssredir.conf iptables -w -t nat -A SSREDIR -p tcp -m set --match-set ss_bypass_set dst -j RETURN iptables -w -t nat -A SSREDIR -p tcp -j REDIRECT --to-ports "${SSREDIR_LOCAL_PORT}" iptables -w -t nat -A PREROUTING -s "${SOURCE_NETWORK}" -p tcp -j SSREDIR exit 0 7. Создать и сделать исполняемым файл /opt/etc/ndm/netfilter.d/102-ssredir.sh: #!/bin/sh [ "$type" == "ip6tables" ] && exit 0 [ "$table" != "mangle" ] && exit 0 [ ! -z "$(iptables-save | grep udp | grep ss_bypass_set)" ] && exit 0 . /opt/etc/config/ssredir.conf iptables -w -t mangle -A SSREDIR -p udp -m set --match-set ss_bypass_set dst -j RETURN iptables -w -t mangle -A SSREDIR -p udp -j TPROXY --on-port "${SSREDIR_LOCAL_PORT}" --tproxy-mark 0x01/0x01 iptables -w -t mangle -A SSREDIR -p udp -j MARK --set-mark 1 iptables -w -t mangle -A PREROUTING -s "${SOURCE_NETWORK}" -p udp -j SSREDIR exit 0 Ужасно не нравится метод генерации конфига json, но более красивого способа не знаю, потому что не разбираюсь в этих ваших компухтерах. Еще пересборку ipset'а BYPASS_RESERVED_IPS можно было бы добавить не к инициализации внешних устройств, а привязать в старту и остановке демона в init.d, но мне и так нормально.
×
×
  • Create New...