Есть роутер с таким процессором
cat /proc/cpuinfo
system type : Broadlight Jasmine (BL2348 Evaluation) board
processor : 0
cpu model : MIPS 24K V7.12
BogoMIPS : 297.98
wait instruction : yes
microsecond timers : yes
tlb_entries : 16
extra interrupt vector : yes
hardware watchpoint : yes
ASEs implemented : mips16
VCED exceptions : not available
VCEI exceptions : not available
А как автоматизировать включение прокси? И чтобы не нужно было настраивать прокси на каждом устройстве и в каждом приложении (а в каких-то приложениях и это и вовсе нельзя). SOCKS5 прокси слушает порт 1080
на ip 192.168.1.1/24
. Надо, чтобы трафик, который идет со всех устройств этой сети на сайт example.com (видимо порт TCP 443), шел через этот прокси-сервер.
Я предположил, что нужно воспользоваться transocks_ev. README.
TL DR
Дальше идет попытка собрать эту прогу. Статически не собирается, ругань приведена далее в этом посте, динамически собирается, но не работает, redsocks ругается аналогично. Есть предположение, что бинарники, которые я запускаю, не того формата.
----
Поправил Makefile
CC = mipsel-linux-gnu-gcc
LIBEVENT_DIR=/usr/mipsel-linux-gnu
LIBEVENT_STATIC_DIR=$(LIBEVENT_DIR)/lib
LIBEVENT_LIB_FILE=$(LIBEVENT_DIR)/lib/libevent.a
LIBEVENT_INC_DIR=$(LIBEVENT_DIR)/include
CFLAGS = -g -O2 -DSOCKS -I$(LIBEVENT_INC_DIR)
OBJ = transocks_ev.o
all: transocks_ev
clean:
rm -f *.o transocks_ev
transocks_ev: $(OBJ)
$(CC) -o transocks_ev $(OBJ) \
-L$(LIBEVENT_STATIC_DIR) \
-Wl,-Bstatic \
-Wl,--rpath -Wl,$(LIBEVENT_STATIC_DIR) \
$(LIBEVENT_LIB_FILE)
.c.o:
$(CC) -c $(CFLAGS) $<
Устанавливаю libevent
sudo apt install gcc-mipsel-linux-gnu g++-mipsel-linux-gnu
wget https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
tar xvf libevent-2.1.12-stable.tar.gz
cd libevent-2.1.12-stable
./configure --host=mipsel-linux-gnu --disable-openssl --prefix=/usr/mipsel-linux-gnu
make -j5
sudo checkinstall
make -j5
mipsel-linux-gnu-gcc -c -g -O2 -DSOCKS -I/usr/mipsel-linux-gnu/include transocks_ev.c
transocks_ev.c: In function ‘main’:
transocks_ev.c:927:51: warning: format ‘%s’ expects a matching ‘char *’ argument [-Wformat=]
fprintf (stderr, "can't open /dev/urandom: %s (%d). continuing, but will not randomize dns replies.\n");
~^
transocks_ev.c:927:55: warning: format ‘%d’ expects a matching ‘int’ argument [-Wformat=]
fprintf (stderr, "can't open /dev/urandom: %s (%d). continuing, but will not randomize dns replies.\n");
~^
mipsel-linux-gnu-gcc -o transocks_ev transocks_ev.o \
-L/usr/mipsel-linux-gnu/lib \
-Wl,-Bstatic \
-Wl,--rpath -Wl,/usr/mipsel-linux-gnu/lib \
/usr/mipsel-linux-gnu/lib/libevent.a
/usr/lib/gcc-cross/mipsel-linux-gnu/7/../../../../mipsel-linux-gnu/bin/ld: cannot find -lgcc_s
/usr/mipsel-linux-gnu/lib/libevent.a(evutil.o): In function `test_for_getaddrinfo_hacks':
/home/homa/Документы/code/tranSOCKS_ev/libevent-2.1.12-stable/evutil.c:1300: warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/mipsel-linux-gnu/lib/libevent.a(evutil.o): In function `evutil_unparse_protoname':
/home/homa/Документы/code/tranSOCKS_ev/libevent-2.1.12-stable/evutil.c:928: warning: Using 'getprotobynumber' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/mipsel-linux-gnu/lib/libevent.a(evutil.o): In function `evutil_parse_servname':
/home/homa/Документы/code/tranSOCKS_ev/libevent-2.1.12-stable/evutil.c:913: warning: Using 'getservbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/gcc-cross/mipsel-linux-gnu/7/../../../../mipsel-linux-gnu/bin/ld: cannot find -lgcc_s
collect2: error: ld returned 1 exit status
Makefile:16: recipe for target 'transocks_ev' failed
make: *** [transocks_ev] Error 1