Jump to content

wolowizard

Forum Members
  • Content Count

    7
  • Joined

  • Last visited

Community Reputation

0 Neutral

About wolowizard

  • Rank
    Newbie

Equipment

  • Keenetic
    Giga II, GIGA

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Здравствуйте! Пытаюсь собрать свой пакет, который будет использовать входящую в состав Entware библиотеку libmodbus. Успешно установил тулчейн, собрал и запустил "Helloworld" отсюда: https://github.com/zyxmon/zyxel-keenetic-packages/tree/master/package/built/helloworld Далее пытаюсь запустить свой пакет modsensor, который будет использовать функционал библиотеки libmodbus. Программа собирается, но на роутере не работает, выдавая ошибку /opt/bin/sh: modsensor: not found Ошибка возникает, когда я пытаюсь слинковать исполняемый файл с библиотекой libmodbus. Функции библиотеки пока что даже не используются. Библиотека на роутере установлена, сам файл тоже есть в наличии: root@Keenetic_Giga:/opt/bin# file modsensor modsensor: ELF 32-bit LSB executable, MIPS, MIPS32 rel2 version 1 (SYSV), dynamically linked, interpreter /lib/ld.so.1, for GNU/Linux 3.2.0, stripped strace выдает следующее: root@Keenetic_Giga:/opt/bin# strace modsensor execve("/opt/bin/modsensor", ["modsensor"], 0x7fe7bda0 /* 20 vars */) = -1 ENOENT (No such file or directory) fstat64(2, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 1), ...}) = 0 write(2, "strace: exec: No such file or di"..., 40strace: exec: No such file or directory ) = 40 getpid() = 6013 exit_group(1) = ? +++ exited with 1 +++ вывод ldd: root@Keenetic_Giga:/opt/bin# ldd modsensor libmodbus.so.5 => /opt/lib/libmodbus.so.5 (0x77b76000) libgcc_s.so.1 => /opt/lib/libgcc_s.so.1 (0x77b50000) libc.so.6 => /opt/lib/libc.so.6 (0x779c2000) /lib/ld.so.1 => /opt/lib/ld.so.1 (0x77b8f000) Вроде как и файл есть, и ссылки на библиотеки верные, однако программа не работает. Подозреваю, что ошибка может быть в Makefile. Makefile для исполняемого файла: LIBS=-lmodbus modsensor: modsensor.o $(CC) $(LDFLAGS) $(LIBS) modsensor.o -o modsensor modsensor.o: modsensor.c $(CC) $(CFLAGS) -c modsensor.c clean: rm *.o modsensor Makefile для пакета: include $(TOPDIR)/rules.mk PKG_NAME:=modsensor PKG_VERSION:=1.0.0 PKG_RELEASE:=1 TARGET_CFLAGS=-I$(STAGING_DIR)/opt/include/modbus TARGET_LDFLAGS=-L$(STAGING_DIR)/opt/lib PKG_BUILD_DEPENDS:=libmodbus PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) include $(INCLUDE_DIR)/package.mk define Package/$(PKG_NAME) SECTION:=utils CATEGORY:=Utilities DEPENDS:=+libmodbus TITLE:=$(PKG_NAME) MAINTAINER:=SuperExpert endef define Package/$(PKG_NAME)/description reading sensor`s values from modbus device. endef define Build/Compile $(MAKE) -C $(PKG_BUILD_DIR) \ CFLAGS="$(TARGET_CFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)" \ $(TARGET_CONFIGURE_OPTS) endef CONFIGURE_VARS+=\ CC="$(TOOLCHAIN_DIR)/bin/$(TARGET_CC)" define Package/$(PKG_NAME)/install $(INSTALL_DIR) $(1)/opt/bin $(CP) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/opt/bin endef $(eval $(call BuildPackage,$(PKG_NAME))) Если убрать линковку с libmodbus, то программа работает. Помогите составить Makefile с линковкой библиотеки. Возможно, если библиотеку включить непосредственно в программу то все заработает, но хотелось бы разобраться как сделать правильно.
  2. На роутере Keenetic GIGA c прошивкой 2.12.B.0.0-2 (с белым IP) поднят IPsec туннель, к которому подключается роутер Zyxel Keenetic GIGA 2 с прошивкой 2.11.C.1.0-3 (с серым IP). Также на роутере поднят L2TP VPN сервер, к которому подключается Android-клиент. После подключения Android-клиента все работает, и GIGA 2, и Android видят основной роутер, однако при наступлении времени планового обновления ключей IPsec туннель между роутерами падает, и больше не поднимается.
  3. Задуманное получилось реализовать, используя стандартный PPTP сервер. Хотелось бы увидеть комментарии разработчиков, чем отличается маршрутизация трафика клиентов в PPTP сервере и IPsec VPN.
  4. Интересно. Не могу себя назвать большим специалистом по iptables, но разве в этом случае не будет работать правило iptables -t nat -A OUTPUT -p tcp -m multiport --dports 80,443 -m set --match-set rublock dst -j REDIRECT --to-ports 9040 которое перенаправляет в Тор внутренний трафик роутера? Видел, что в iptables еще появляется цепочка _NDM_IPSEC_POSTROUTING_NAT при подключении VPN клиента, однако как это использовать пока не сообразил. Подскажите, пожалуйста, как. Или данная задача вообще не решается средствами iptables и нужно создавать собственную таблицу маршрутизации?
  5. Спасибо за ответ А обязательно создавать таблицу маршрутизации для маркированных пакетов? Сейчас выборочный роутинг осуществляется средствами iptables. В netfilter.d добавлен файл с правилами: #!/bin/sh [ "$table" != "nat" ] && exit 0 iptables -t nat -A PREROUTING -p tcp -m multiport --dports 80,443 -m set --match-set rublock dst -j REDIRECT --to-ports 9040 iptables -t nat -A OUTPUT -p tcp -m multiport --dports 80,443 -m set --match-set rublock dst -j REDIRECT --to-ports 9040 iptables -t nat -A PREROUTING -p tcp -d 10.192.0.0/8 -j REDIRECT --to-port 9040 iptables -t nat -A OUTPUT -p tcp -d 10.192.0.0/8 -j REDIRECT --to-port 9040 Все, что есть в ipset уходит через порт 9040 в Тор, onion-ресурсы транслируются в подсеть 10.192.0.0/8 и тоже уходят в Тор. Повторюсь, выборочный роутинг отлично работает для локальных клиентов, однако не работает для клиентов VPN. Получается, трафик от клиентов VPN маршрутизируется как-то иначе по сравнению с трафиком локальных клиентов. Как происходит маршрутизация для клиентов VPN?
  6. Здравствуйте! Подскажите, как происходит взаимодействие между IPsec VPN и компонентами Entware. Имеется следующая ситуация: роутер Keneetic Giga 2 с прошивкой 2.09, на котором поднят Тор и dnsmasq. На роутере средствами ipset трафик на заблокированные ресурсы и .onion-сайты заворачивается через Тор, все отлично работает для всех клиентов роутера, проводных и беспроводных. Возникла идея включить на роутере IPsec VPN, чтобы можно было подключаться с Android-телефона через мобильный интернет, рабочий вайфай и т.п. и иметь отовсюду доступ к заблокированным ресурсам и onion-сайту Флибусты. После включения IPsec VPN и настройки подключения на Андроиде (разрешен NAT, в качестве DNS-сервера указан роутер) трафик с телефона идет через роутер (сайты определяют внешний IP роутера), однако доступа к заблокированным ресурсам и onion-ресурсам нет. Думал, что возможно на телефоне не сбрасывается DNS-кэш, однако по IP-адресу заблокированные сайты тоже не открываются. Подозреваю, что трафик с VPN-клиентов может идти сразу через внешнее подключение, минуя правила маршрутизации для заблокированных ресурсов. Подскажите, как можно реализовать задуманное - чтобы VPN-клиенты могли использовать настроенный на роутере обход блокировок.
×