Доступ non-port80 веб-сервер с помощью IPv6

В нормальной сети IPv4 я могу войти в любой браузер, такой как Firefox и просмотреть сервер на адресе IPv4, не размещенном на порте 80:

http://192.168.42.6:8080/

Это получает доступ к серверу на порте 8080 на 192.168.42.6. Однако, если я пробую это IP IPv6, я не получаю удачи. Это пробует к порту доступа 8080 на fe80::520:ff0f:ece0:1 :

http://[fe80::520:ff0f:ece0:1]:8080/

Firefox автоматически "прикрепит" этот URL к:

http://[www.fe80::520:ff0f:ece0:1.com]:8080/

который не помогает мне получить доступ к нему вообще. Так или я делаю что-то действительно неправильно ИЛИ существует что-то действительно неправильно с IPv6. Не удалось найти ничего, что даже удаленно помогло в Интернете. (И да, существует сервер, работающий на рассматриваемом IPv6.)

8
задан 06.02.2011, 18:54

1 ответ

В первую очередь: Я не эксперт IPv6.

Если Вы не можете добавить имя DNS (или хотеть удостовериться, что IPv6 является used1), то почему бы не использовать исполнительный адрес, а не fe80 локальный для ссылки? На Mac с OS X, и на Версии для домашнего использования Windows XP, это (с фактическим IPv6 address2) хорошо работает для меня во всех браузерах:

http://[2001:db8::216:cbff:xx:xx]:8080/

(Обратите внимание, что некоторые браузеры автоматически не снабжают префиксом http:// часть для адресов IPv6. Добавление фиктивного имени в Вашем файле hosts только для адреса IPv6 делает жизнь еще легче.)

Для fe80 адреса, это - вероятно, не только номер порта, который дает Вам проблемы; при использовании порта по умолчанию 80, Вы, вероятно, не можете соединиться также, если Вы также не указываете индекс зоны. (Таким образом: исходящий интерфейс, который должен установить связь, как проводной Ethernet или беспроводная связь, которая могла бы отличаться на каждом компьютере, который Вы используете.)

На Версии для домашнего использования Windows XP, и с соединил проводом Ethernet и с беспроводную связь (последнее неактивное существо), следующее хорошо работает для меня в Firefox 3.5 и 3.6. Здесь, 4 мой сетевой интерфейс index3:

http://[fe80::216:cbff:xx:xx%4]/
http://[fe80::216:cbff:xx:xx%4]:8080/

В Internet Explorer 8 символ процента должен быть закодирован процентом в %25:

http://[fe80::216:cbff:xx:xx%254]:8080/

(Для меня это не работает без %4 или %254; если это делает на других установках затем, возможно, Windows или IE предпочитают внешние соединения, и та установка только имеет единственный сетевой интерфейс?)

На Mac следующее хорошо работает в Firefox:

http://[fe80::216:cbff:xx:xx%en0]:8080/

Определение индекса зоны с помощью нотации процента неприятно, учитывая конфликт с URL notations4. Я не мог заставить вышеупомянутое работать в Chrome 8 и 9 на Windows XP, ни в Safari или Chrome на Mac.

На Mac, вместо % синтаксис, Вы можете (ab) использовать индекс объема (2-е слово или 3-и и 4-е байты) для определения индекса сетевого интерфейса. Как fe80:0004 хорошо работает во всех моих браузерах:

http://[fe80:4::216:cbff:xx:xx]/
http://[fe80:4::216:cbff:xx:xx]:8080/

Обратите внимание, однако, что я сомневаюсь, что это официально поддерживается, поскольку это не работает над моим Windows XP, и некоторая документация утверждает, что альтернативы должны всегда использоваться вместо этого. Как:

ping6 -I en0 fe80::216:cbff:xx:xx  (en0 = wired ethernet on my Mac)
ping6 fe80::216:cbff:xx:xx%en1     (en1 = wireless)

... вместо:

ping6 fe80:4::216:cbff:xx:xx
ping6 fe80:6::216:cbff:xx:xx

Заключительное примечание: можно было бы дурачиться в использование :: или ::ffff: сопровождаемый адресом IPv4, как указано в RFC 4291. Но, это на самом деле не использует IPv6, хотя он дает ответ на моем Mac:

http://[::ffff:192.168.178.25]:8080/

Это может также использовать шестнадцатеричную нотацию, и некоторые браузеры перепишут ее автоматически:

http://[::ffff:c0a8:b219]:8080/

Но независимо от того, что: это использует соединение IPv4 на моих Mac. На моих Mac, [::192.168.178.25] не работает. Я не мог заставить форму работать над Windows XP.


1 Некоторые браузеры предпочитают IPv4 по IPv6. См. test-ipv6.com. Это также - зависимый платформы.
2 В IPv6, веб-серверы могли бы видеть MAC-адрес Вашего компьютера, будучи 216:cbff:xx:xx в этих примерах. Я не опубликовал бы этот супер cookie в сети. См. также, Как постараться не выставлять мой MAC-адрес при использовании IPv6?
3 На Mac: ищите значение для scopeid в выводе ifconfig. В Windows: посмотрите значение для Idx в выводе netsh interface ipv6 show interface. Я видел, что это число изменяется после перезагрузок!
4 Это кажется этим когда-то ведомым к RFC, который никогда не делал его из проекта. Этот проект предлагает использовать плюс символ вместо этого, но это не работает над моими Mac или Windows XP также.

5
ответ дан 07.12.2019, 14:17

Теги

Похожие вопросы