IAmYourBatya
-
Posts
3 -
Joined
-
Last visited
Content Type
Profiles
Forums
Gallery
Downloads
Blogs
Events
Posts posted by IAmYourBatya
-
-
36 минут назад, avn сказал:
Штатно на роутере правила работать не будут из-за hwnat
iptables -w -t mangle -A SSREDIR -p udp -j MARK --set-mark 1 iptables -w -t mangle -A SSREDIR -p udp -j TPROXY --on-port "${SSREDIR_LOCAL_PORT}" --tproxy-mark 0x01/0x01
И так же, нужно у приложения ss-redir включить режим tproxy.
Как я упомянул:
Цитатане разбираюсь в этих ваших компухтерах
ss-redir запускаю с ключом -u, потому что в инструкции описано как "Enable UDP relay. TPROXY is required in redir mode. You may need root permission". Этого недостаточно?
ЦитатаШтатно на роутере правила работать не будут из-за hwnat
Подскажите, пожалуйста, что тогда делать? Только отключать аппаратный сетевой ускоритель?
-
Привет!
Расскажу, как я настроил свой аппарат. Исходные данные:
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, но мне и так нормально.
shadowsocks-libev как настроить
in Вопросы по сборке и настройке Opkg
Posted
Странно. Сделал
Получаю ненулевые результаты, счетчики пакетов меняются. Если вас не затруднит, сможете прояснить? А то гуглёж выдает только скромную статью на сайте кинетика https://help.keenetic.com/hc/ru/articles/214470905-Сетевой-ускоритель. Может, просто не все пакеты будут проходить через эти таблицы? Или правила все-таки не должны срабатывать полностью?