Овърлей N2N не е прокси: начертайте двете връзки
Овърлеят може да достигне до партньора, докато браузърът все още получава отказ. Това е липсващ слушател или грешно свързване, а не повреда в маршрутизацията на N2N.
Firefox сочи към 127.0.0.1:8000, ръбът на N2N работи, партньорът отговаря на ping на овърлей адреса си, а браузърът все още съобщава, че проксито е отказало връзката. Нищо в тази верига не си противоречи. Овърлеят дава на хоста достъпен адрес в частна мрежа; той не създава процес, който говори протокола на проксито. Браузърът не иска маршрут до партньор. Той иска локален слушател.
Тук се бъркат две връзки и отделното им начертаване изчиства голяма част от объркването за минута.
Две връзки, не една
Първата връзка върви от браузъра към това, което слуша на loopback порта. Това е локален сокет и ако нищо не го притежава, връзката се отказва, преди дори един пакет да стигне до N2N. Втората върви от процеса на проксито към източника, който то изтегля. Този път се избира от таблицата за маршрутизация на хоста на проксито и може да е обичайната изходяща връзка, друг тунел или маршрут по политика, който няма нищо общо с овърлея.
Ping до партньора доказва, че овърлеят може да доставя пакети между адресите на ръбовете. Той не доказва нищо за слушател на порт 8000 и нищо за това дали този хост може да достигне източника. Отделни откази, отделни поправки.
Къде трябва да живее слушателят
Прокси, свързано към 127.0.0.1, е умишлено локално: то приема връзки само от машината, на която работи. Това е правилната настройка по подразбиране за лично прокси и грешната форма за споделянето му през овърлей. За обслужване на партньори в овърлея е нужен или адрес за свързване на овърлей интерфейса, или компонент за препращане, който прекратява loopback връзката и я препраща. Във всеки случай изрична политика трябва да решава кои източници от овърлея могат да използват услугата, защото отворено прокси в споделена мрежа е покана.
Проверявайте действителното свързване със списък на сокетите, а не с конфигурационния файл. Демон, стартиран преди овърлеят да се вдигне, може все още да е свързан с адрес, който вече не съществува.
localhost не е партньорът
В полето за прокси на браузъра localhost сочи към собствената машина на браузъра. Той не е ръбът, нито супервъзелът, нито хостът в далечния край на тунела. Ако проксито работи на друг партньор, поставете в полето достъпния овърлей адрес и порт на този партньор, след което потвърдете, че слушателят приема връзки от адреса на вашия ръб.
Супервъзлите помагат на ръбовете да се намират един друг; те не са прокси услуга. Третирането на адрес на супервъзел като крайна точка на прокси дава същия отказ с допълнителен скок на объркване.
Маршрутът не може да изпълни ръкостискане
Дори с правилен адрес, маршрутизацията не е проксиране. HTTP прокси връзката започва със заявка CONNECT или ред на заявка в абсолютна форма, а SOCKS проксито започва с договаряне на версия и метод. Маршрутизатор или овърлей препраща байтове; той не анализира тези съобщения и не отваря следващата връзка вместо вас. Ето защо маршрут, който работи за ping и SSH, може да се провали за прокси в браузър: браузърът се нуждае от съдействащ процес, не само от достъпност.
Ако целта е просто да достигнете услуга на партньора, премахнете настройката за прокси и използвайте овърлей адреса на услугата директно.
Тествайте границите по ред
Потвърдете, че овърлей адресът отговаря, след това потвърдете, че на конфигурирания порт има слушател, и запишете адреса му за свързване. Направете една контролирана заявка и прочетете журнала на проксито, за да знаете дали отказът е при слушателя, или при следващото изтегляне. Накрая проверете маршрута на хоста на проксито и DNS политиката за източника.
Проектът N2N документира ръбовете и супервъзлите като компоненти на овърлея. Той не превръща ръба в приложно прокси и никоя конфигурация за маршрутизация не добавя обработчик на протокол, който никой не е стартирал.