Веб-сайт не может загрузить определенные ресурсы только на ядре Linux + мой интернет-соединение


1

Сайт в вопросе Ingress Intel , Вы, вероятно, не сможете получить к нему доступ, если не будете приглашены в Ingress, но вам это не нужно, потому что я могу сообщить обо всех ошибках и проблемах здесь.

Когда я захожу на сайт в любой версии linux, загружается базовая карта Google, а другие ресурсы сервера - нет. Вызовы ресурсов - это вызовы ajax на следующий URL: http://www.ingress.com/rpc/dashboard.getThinnedEntitiesV2 и полный запрос curl выглядит следующим образом:

curl "http://www.ingress.com/rpc/dashboard.getThinnedEntitiesV2" -H "Accept: application/json, text/javascript, */*; q=0.01" -H "Referer: http://www.ingress.com/intel" -H "Origin: http://www.ingress.com" -H "X-Requested-With: XMLHttpRequest" -H "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31" -H "X-CSRFToken: 8rL0UkKhAVDq1rjkUPyWZ69R6DAuHY9A" -H "Content-Type: application/json; charset=UTF-8" --data-binary "{\"method\":\"dashboard.getThinnedEntitiesV2\",\"minLevelOfDetail\":-1,\"boundsParamsList\":[{\"id\":\"01202303221220\",\"qk\":\"01202303221220\",\"minLatE6\":45367584,\"minLngE6\":14414063,\"maxLatE6\":45398450,\"maxLngE6\":14458008},{\"id\":\"01202303221222\",\"qk\":\"01202303221222\",\"minLatE6\":45336702,\"minLngE6\":14414063,\"maxLatE6\":45367584,\"maxLngE6\":14458008}]}"

Теперь то, что происходит, не является ошибкой - вместо этого запросы никогда не завершаются. Через некоторое время они истекают и переходят из режима ожидания в состояние отмены, но по сути, в браузере ответа не дается.

enter image description here

Теперь я говорю «в браузере», потому что когда я скручиваю эту строку там, я получаю следующее:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta name="robots" content="NONE,NOARCHIVE">
  <title>403 Forbidden</title>
  <style type="text/css">
    html * { padding:0; margin:0; }
    body * { padding:10px 20px; }
    body * * { padding:0; }
    body { font:small sans-serif; background:#eee; }
    body>div { border-bottom:1px solid #ddd; }
    h1 { font-weight:normal; margin-bottom:.4em; }
    h1 span { font-size:60%; color:#666; font-weight:normal; }
    #info { background:#f6f6f6; }
    #info ul { margin: 0.5em 4em; }
    #info p, #summary p { padding-top:10px; }
    #summary { background: #ffc; }
    #explanation { background:#eee; border-bottom: 0px none; }
  </style>
</head>
<body>
<div id="summary">
  <h1>Forbidden <span>(403)</span></h1>
  <p>CSRF verification failed. Request aborted.</p>

</div>

<div id="explanation">
  <p><small>More information is available with DEBUG=True.</small></p>
</div>

</body>
</html>

Это сейчас, где это становится интересным. Это происходит на каждой комбинации Linux и моего подключения к Интернету. Я попытался загрузить его на Macbook с OS X, подключенной к моему WiFi, на моем рабочем столе с Windows 7, подключенной через Ethernet, и это работает. Но если я попытаюсь открыть сайт с помощью Ubuntu на Macbook через Wi-Fi, Mint на моем ноутбуке через WiFi, Mint на моем рабочем столе через Ethernet или на моем телефоне Android - эта проблема снова возникнет. Это было протестировано на IE, Chrome 26+, Firefox и Safari на всех системах (IE был протестирован только на Win).

Если я возьму свои машины с Linux, где-нибудь еще и использую их соединение, это работает как шарм. Если я подключу свои компьютеры к телефону и использую мобильное соединение для передачи данных, это тоже работает. Только очень специфическая комбинация Linux + мое интернет-соединение вызывает эту проблему. Я даже пытался установить Windows7 и WindowsXP в виртуальной машине на ноутбуке Mint, просто чтобы посмотреть, будет ли открывать его из IE на виртуальной машине Windows, и это не сработает.

Роутер и прошивка, о которых идет речь, таковы: http://screenshots.portforward.com/routers/Iskon/A1521-I/

Вопрос уже несколько обсуждался Вот но безрезультатно.

Я готов протестировать любую возможную комбинацию, которую вы можете придумать.

Ответы:


2

403 ошибки, которые вы получаете для ваших запросов на основе curl, показывают, что вы не используете тот же путь кода сервера; В этом отношении они немного красная сельдь.

Поведение выглядит так, как будто была проблема с Открытие PMTU между ingress.com и вами; Ваш запрос делает это, но ответы отброшены. Самый простой способ выяснить, так ли это, - сбросить MTU для интерфейса вашей Linux-машины; вполне вероятно, что 1492 будет в порядке, но это может быть и меньше (менее распространенные, но встречающиеся значения 1480, 1460 и 1454) - начните с низкого уровня, посмотрите, работает ли это, затем вернитесь назад, пока не перестанет работать; затем используйте значение, которое вы нашли в вашей стандартной конфигурации (зависит от распределения).

Чтобы установить MTU, sudo ifconfig eth0 mtu 1454 (используя правильное имя интерфейса, конечно).

Если это устранит вашу проблему, точная причина зависит от модели и конфигурации вашего маршрутизатора и ваших iptables или других правил (похожих на брандмауэр).


Хм, эта команда разрывает мое интернет-соединение до перезагрузки.
Swader

1
Было бы, извините @Swader. Исправлена ​​команда.
Gabe

Боги, кажется, работают! Я протестирую в течение дня и отмечу как правильное, если оно не исчезнет, ​​но не могли бы вы отредактировать ответ, объяснив, почему это происходит и чем MTU на самом деле отличается в Linux от других ОС? Мне искренне любопытно сейчас
Swader
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.