Я пытаюсь переслать все пакеты на порт 80 с любого интерфейса на мой SOCKS-прокси (Сервер). Я не уверен, правильно ли я его настроил, но я не могу заставить его пересылать пакеты.
Я создаю SOCKS-прокси и т. д.Машина А:
ssh -D 5948 user@server
Это позволяет мне выходить в Интернет через мой SOCKS-прокси, если я изменю настройки прокси в Chrome.
Все хорошо, за исключением того, что я подключаю устройство (Устройство Б) кМашина Аиспользуя Bluetooth, я хочу получить доступ к Интернету через прокси-сервер SOCKS с этого устройства, проходящего через мой компьютер.
+---------------+ +---------------+ +--------------+
| | | | | |
| | | | | |
Internet | Server <----+ Machine A <----+ Device B |
| | | | | |
| | | | | |
+---------------+ +---------------+ +--------------+
Connected via Bluetooth
Подключение и раздача интернета через Bluetooth работают нормально, за исключением того, что вместо прокси-сервера SOCKS используется мой интернет-провайдер.
Вместо этого я хочу pf
пересылать любой пакет с любого интерфейса на порту 80 на мой прокси SOCKS.
Я попытался сделать это, создав файл привязки со следующим содержимым:
rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 5948
Я включил якорь pf.conf
и включил переадресацию на всех интерфейсах следующим образом:
net.inet.ip.forwarding=1
net.inet6.ip6.forwarding=1
Пересылка не происходит, и я могу только предположить, что мое pf
правило неверно. Я проверил его с помощью:
sudo pfctl -vnf /etc/pf.anchors/org.jj.forwarding
Есть идеи, где я ошибаюсь?
решение1
Поскольку вы включили переадресацию, добавление следующего правила iptable должно сработать
iptables -t nat -A ПРЕДВАРИТЕЛЬНАЯ МАРШРУТИЗАЦИЯ -i bl1 -p tcp --dport 80 -j DNAT --to 127.0.0.1:5948
bl1 — это ваш интерфейс Bluetooth