У меня следующая настройка:
+-----------+ SSH Tunnels Over Socks5 Proxy +--------------+
| | | |
| Linux PC +------------------------------------+ Proxy Server |
| | | |
+-----------+ +--------------+
|
| SSH Tunnels
+-------------------------+
| |
| |
+-----------+ +-----------+
| | | |
| PI A | | PI B |
| | | |
+-----------+ +-----------+
| |
| WAN / Internet | WAN / Internet
| |
v v
Во-первых: я не пытаюсь обойти функцию идентификации ОС, как обсуждалось ранее.здесьили в других вопросах на SuperUser. Я использую Linux для всей цепочки/стека и не против, чтобы меня так идентифицировали.
Фон: Я получаю доступ в Интернет в другой стране из-за цензуры. У меня есть два идентичных Raspberry PI (модель 3B+, клонированная SD-карта, только измененный IP для работы в соответствующих локальных сетях) в двух отдельных жилых помещениях (разные интернет-провайдеры). Я использую их независимо друг от друга, и они служат в качестве жилых прокси для доступа в Интернет.
Трафик направляется через PI через SSH-туннели. Эти SSH-туннели сами туннелируются через зашифрованный Socks5-туннель через прокси-сервер (он одинаков для обоих PI), чтобы скрыть их от местных внутренних цензоров/блокировки IP.
Пока это работает.
Проблема: Когда я провожу тесты наhttps://browserleaks.com/ipиhttps://doileak.comЯ получаю разные результаты для «PI A» и «PI B».
Для «PI A» я получаю MTU 1500 и тип подключения «Ethernet или модем», а для «PI B» я получаю MTU 1440 и тип подключения «универсальный туннель или VPN».
Я хочу, чтобы оба они были идентифицированы как тип соединения "ethernet или модем", чтобы скрыть тот факт, что они являются прокси. На основе моих исследований эти тесты, похоже, используют TCP/IP-отпечатки с p0f.
Интерфейсы обоих PI установлены на MTU 1500, также идентичны конфигурации iptables. У них одинаковое оборудование, SD-карта в "PI B" по сути является клоном "PI A". Оба PI напрямую подключены к своим соответствующим маршрутизаторам через ethernet. Кроме того, для Linux PC и Proxy-сервера MTU установлен на 1500 (хотя, если я не ошибаюсь, это не должно иметь значения).
Учитывая тот факт, что ИП настроены одинаково, что я упускаю?
PS: название, возможно, не идеальное, но я не уверен, как описать проблему в нескольких словах
решение1
MTU 1500, настроенный в PI A и PI B, является MTU по умолчанию для пакетов Ethernet. Этот MTUтолькомежду первым маршрутизатором (вашим интернет-маршрутизатором) и PI.
Маршрутизатор, к которому подключен PI (маршрутизатор A), подключается к следующему маршрутизатору (маршрутизатор B). Затем маршрутизатор B подключается к другому маршрутизатору (маршрутизатор C). И так далее. Этот маршрут заканчивается в пункте назначения (например, на сервере browserleaks.com). Этот маршрут зависит от вашего географического положения и немного случаен. Также он меняется со временем.
MTU между маршрутизатором A и маршрутизатором B, вероятно, >= 1500, но это не гарантировано. Если он меньше 1500, то ваши пакеты разделяются, как вы можете прочитатьздесь. Также браузер browserleaks.com затем отобразит меньший MTU.
Заключение:
браузерleaks.com отображает максимально поддерживаемый MTUна всем маршрутеот клиента к серверу.
Нормально, что вы получаете разные MTU для PI A и PI B, поскольку они, вероятно, используют разные маршруты.
Чтобы убедиться, что они используют разные маршруты, вы можете запустить (на вашем компьютере с Linux):
traceroute browserleaks.com
Это список всех маршрутизаторов между вами и сервером (а также сервером). Запустите его один раз для каждого PI.
Также обратите внимание, что в IPv6 пакеты не могут быть разделены.