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^32
IP-адреса. равный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
адрес