0x01 Сначала проверьте вопрос
Тестовая среда Подсказка платежного канала WeChat网络环境未能通过安全验证,请稍后再试, обычно это первое
Подумав, что могут быть нестыковки в участии WeChat Fangzhen в сетевом взаимодействии двух сторон, я пролистал руководство и определил, что именно с такой проблемы начинается процесс устранения неполадок.
-
Может быть неправильный способ получить настоящий IP
getenv('HTTP_CLIENT_IP')getenv('HTTP_X_FORWARDED_FOR')getenv('REMOTE_ADDR')filter_var($remote_ip, FILTER_VALIDATE_IP)- были получены и отфильтрованы последовательно
- С твердой программой проблем нет, расходится вверх
-
Обратный ли прокси
После обратного прокси, из-за
webМежду серверами добавляется промежуточный слой, поэтому веб-сервер не может напрямую получать данные клиента.ip, только через$remote_addrПеременная получит IP-адрес обратного прокси-сервера, проверит, что такой проблемы нет, а затем пойдет вверх, студенты, которые хорошо разбираются в сетевых коммуникациях, говорят, что они никогда не признают поражение -
возможный
NATвыход из наделаIP, или распределение службы балансировки нагрузки ненормально- Сначала получите мой локальный IP-адрес в интрасети и экстрасети, чтобы облегчить устранение неполадок позже.
# 本机IP ifconfig | grep -A 1 "en" | grep broadcast | cut -d " " -f 2 # 外网IP curl --silent http://icanhazip.com- Проверьте, кто является целью установления соединения с портом 80
netstat -tn|grep 80|akw '{print $5}'|awk -F '{print $1}' | grep [本地IP]Здесь есть проблема, шахты нет
IP, затем сnginx $remote_addrПолучите IP в качестве ссылки, этоnginxпоследнее рукопожатиеIP,$remote_addr = 10.168.0.0/16частьсуществует
nginxпечатать в$remote_addr, И вserver_nameДобавить текущую машинуip, проверьте IP-адрес балансировки нагрузки и локальный IP-адрес соответственно и, наконец, определите, что проблема возникает, когда сервер балансировки нагрузки работает ненормально.
0x02 Стек LNMP принимает реальный IP-адрес
LNMPвнутри стекаPHPвсе полученоTCPИнформация о работе находится спередиNginxпройти черезfastcgiперешел к нему вроде$_SERVER['REMOTE_ADDR']Зависит отinclude fastcgi.conf;импорт, равныйnginxиз$remote_addr
NginxНесколько переменных в:
-
$remote_addr
от имени клиента
IP, но его значение не предоставляется клиентом, а указывается сервером по ip клиента,icanhazipПринцип тот же, когда ваш браузер обращается к веб-сайту, при условии, что посередине нет прокси-сервера, веб-сервер веб-сайтаremote_addrУстановите его на IP-адрес, который вы предоставляете в общедоступной сети.Если вы используете прокси-сервер, ваш браузер сначала получит доступ к прокси-серверу, а затем перенаправит его на веб-сайт через прокси-сервер, так чтоwebСервер поставитremote_addrУстановите IP-адрес этого прокси-сервера, если только прокси-сервер не добавит ваш IP-адрес к запросу.headerпереданwebсервер. -
$proxy_add_x_forwarded_for
$proxy_add_x_forwarded_forПеременная содержит "" в заголовке клиентского запроса.X-Forwarded-For",и$remote_addrДве части разделяются запятыми.X-Forwarded-For(называемый XFF),X-Forwarded-Forявляется заголовком расширения HTTP.RFC 2616Протокол не определяет его, он изначально был определенSquidЭто кэширующее прокси-программное обеспечение введено для представленияHTTPРеальный IP запрашивающего. В настоящее время он стал стандартом де-факто и используется большинствомHTTPСлужбы пересылки, такие как прокси и балансировка нагрузки, широко используются и пишутсяRFC 7239(Стандарт переадресованного HTTP-расширения. -
$proxy_set_header
Это было объяснено в устранении неполадок, и заголовок пост-прокси можно установить
proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; -
X-Real-IP
Как правило, такие как
X-Real-IPЭто настраиваемое поле заголовка, обычноHTTPПрокси используется для представления поколения, с которым онTCPподключенное устройствоIP, это устройство может быть другими прокси, а может быть и реальным запросчиком, что зависит от количества уровней, пройденных через прокси или всегда будет реальнымIPВсю дорогу прошел. (Помните: все, что отправлено клиентом, не заслуживает доверия)
При использовании многоуровневого прокси или CDN, если прокси-сервер не передает реальный IP-адрес пользователя, сервер никогда не сможет получить реальный IP-адрес пользователя.
0x03 Откуда реальный IP пользователя
-
Провайдер широкополосного доступа предлагает выделенный IPНапример, если у телекома широкополосный доступ в интернет дома, телеком присвоил общедоступный сетевой ip, то ip-путь, по которому проходит запрос, выглядит следующим образом:
В этой ситуации,119.147.19.234получите116.1.2.3добавленная к заголовку информация, переданная10.168.0.0/32, поэтому в этом случае мы получаем IP-адрес пользователя:116.1.2.3. если119.110.0.0/16не ставил116.1.2.3Прикрепленный к информации заголовка и переданный на бизнес-сервер, бизнес-сервер может принимать только IP-адрес верхнего уровня. -
Провайдеры широкополосного доступа не могут предоставить выделенный IP
У провайдера широкополосного доступа недостаточно общедоступной сети
ip, размещение является внутренней сетьюip, такие как небольшие ISP, такие как длина и ширина. Путь запроса может быть следующим:IP-адрес пользователя, полученный в этом случае,
211.162.78.1. При этом одному IP могут соответствовать десятки и сотни пользователей. -
Мобильный доступ в Интернет 2G
Сетевые провайдеры не могут напрямую предоставлять IP одному пользовательскому терминалу, поэтому China MobilecmwapВозьмем, к примеру, Интернет, поэтому путь запроса может быть таким:
202.96.75.1. В 2008 году у всего Guangdong Unicom было только три общедоступных сетевых IP-адреса для мобильного доступа в Интернет, поэтому в этом случае появление сотен тысяч пользователей на одном и том же IP-адресе является нормальным явлением.
-
Компании с десятками или сотнями тысяч сотрудников
Это также происходит из того же
ipОн может охватывать десятки тысяч пользователей, но экспортных IP-адресов может быть всего несколько.
0x04 NAT [Network Address Translation]
Китайские средства网络地址转换, что позволяет всей организации использовать общийIPАдрес появляется вInternetначальство.
NATсуществуетOSI参考模型Сетевой уровень (уровень 3), представляющий собой технологию, преобразующую внутренние частные сетевые адреса (IP-адреса) в законные сетевые IP-адреса.NATПозволяет тем внутренним сетям, которые используют частные адреса, подключаться кInternetили другойIPонлайн.NATКогда маршрутизатор отправляет пакеты из внутренней сети в сеть общего пользования, онIPзаголовок пакетачастный адреспреобразовать в законныйIPадрес.
RFC1918Указаны три выделенных адреса, которые используются как частная внутренняя сеть.
- Класс А: 10.0.0.0 — 10.255.255.255 10.0.0.0/8
- Класс Б: 172.16.0.0 — 172.31.255.255 172.16.0.0/12
- Класс С: 192.168.0.0 — 192.168.255.255 192.168.0.0/16
эти троечастный адресОн маршрутизируется сам по себе, но маршрутизатор в общедоступной сети не будет пересылать эти три блока.частный адрестрафика; когда компания внутренне настраивает этичастный адресПосле того, как внутренний компьютер свяжется с внешней сетью, пограничный маршрут компании будет проходить черезNATилиPATтехнология, внутреннеечастный адресПреобразованный в IP-адрес внешней сети, исходный адрес, видимый извне, представляет собой общедоступную сеть, преобразованную граничным маршрутом компании.IPадрес, что в некотором смысле также повышает безопасность внутренней сети
Этот процесс проходит черезNATЭто реализовано с помощью записи локального адреса и записи сопоставления глобальных адресов вNATНастройте такую запись сопоставления на маршрутизаторе.
公网 IPВ личном доступе внизуIPадрес.
0x05 IPV6 идет?
Когда я писал эту статью, я увидел толчок, говорящий о том, что Али полностью применяетсяIPV6, это дело весьма существенное
Мы знаем, что периодIPv4стандартныйIPадрес, всего4 X 8 = 32состоит из двоичных цифр, теоретически существует2^32IP-адреса. равный4,294,967,296,42более 100 миллионовIPv4адрес г.
Ссылаться наМировая статистика пользователей ИнтернетаСогласно отчету, сейчас в мире около4,208,571,287Люди в сети, а это значит, что это почти здесьipv4адрес дизайн максимумIPподсчитано
Но не волнуйтесь, вышеупомянутоеNAT,позволятьIPv4общественная сетьIPДаже если вы иссякнете, вы сможете справиться с этим.
прибытьIPv6,по сравнению сIPv4Самым большим улучшением является то, что количество цифр было значительно увеличено, и оно стало 8 4-значными шестнадцатеричными цифрами. То есть есть2^128КусокIPv6адрес. Одной из каждой песчинки на земле достаточно
место хранения2^128Что такое концепция теории байтов?На сегодняшнем квантовом уровне, предполагая, что вычислительные устройства могут работать на атомном уровне, каждый килограмм массы может хранить около 10 битов в 25-й степени, а для хранения 2 в степени требуется около 128 байтов. из 2.272 trillion = 2720000亿公斤.
Наконец, хороших выходных, Beijing Unicom поддержалipv6Теперь я тестирую в Ванцзине, я могу получить егоipv6адрес