Я пытаюсь запустить сервер SOCKS, который прослушивает соединения SOCKS на localhost. На самом деле к этому серверу будут подключаться SSH-туннели, если вам интересно, с какой целью. Я основывал конфигурацию на предложения в документации но это не работает.
Вот мой конфиг:
errorlog: /var/log/sockd.errlog
logoutput: /var/log/sockd.log
internal: 127.0.0.1 port = 1080
external: eth0
user.notprivileged: nobody
clientmethod: none
socksmethod: none
client pass {
from: 127.0.0.0/24 to: 0.0.0.0/0
log: error # connect disconnect
}
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
command: bind connect udpassociate
log: error # connect disconnect iooperation
}
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
command: bindreply udpreply
log: error # connect disconnect iooperation
}
Это те ошибки, которые я записываю в журнал, но я не совсем понимаю их. Я не мог найти о них много в Google ...
Sep 26 12:11:49 (1474906309.183623) sockd[7168]: info: Dante/server[1/1] v1.4.1 running
Sep 26 12:12:25 (1474906345.212038) sockd[7171]: info: block(1): tcp/connect ]: 127.0.0.1.41578 127.0.0.1.1080 -> 94.102.58.15.41578 0.0.0.1.80: connect(2) to 0.0.0.1.80 from 94.102.58.15.41578 failed: Invalid argument
Sep 26 12:12:25 (1474906345.212157) sockd[7171]: info: block(1): tcp/accept ]: 127.0.0.1.41578 127.0.0.1.1080: request was not performed due to error: connect(2) to 0.0.0.1.80 from 94.102.58.15.41578 failed: Invalid argument
Sep 26 12:12:25 (1474906345.212675) sockd[7171]: info: block(1): tcp/connect ]: 127.0.0.1.41579 127.0.0.1.1080 -> 94.102.58.15.41579 0.0.0.1.80: connect(2) to 0.0.0.1.80 from 94.102.58.15.41579 failed: Invalid argument
Sep 26 12:12:25 (1474906345.212703) sockd[7171]: info: block(1): tcp/accept ]: 127.0.0.1.41579 127.0.0.1.1080: request was not performed due to error: connect(2) to 0.0.0.1.80 from 94.102.58.15.41579 failed: Invalid argument
Sep 26 12:12:25 (1474906345.213155) sockd[7171]: info: block(1): tcp/connect ]: 127.0.0.1.41580 127.0.0.1.1080 -> 94.102.58.15.41580 0.0.0.1.80: connect(2) to 0.0.0.1.80 from 94.102.58.15.41580 failed: Invalid argument
Sep 26 12:12:25 (1474906345.213182) sockd[7171]: info: block(1): tcp/accept ]: 127.0.0.1.41580 127.0.0.1.1080: request was not performed due to error: connect(2) to 0.0.0.1.80 from 94.102.58.15.41580 failed: Invalid argument
Ваш клиент SOCKS, вероятно, отправляет запрос, используя Протокол SOCKS4A который является расширением SOCKS4, позволяющим клиентам отправлять на прокси-сервер имена целевых доменов, а не IP-адреса.
К сожалению, Dante не поддерживает SOCKS4A с версии 1.4.2. это страница статуса перечисляет поддерживаемые протоколы.
Измените клиент, чтобы преобразовать имя удаленного хоста в IP-адрес локально, прежде чем отправлять его запрос на прокси-сервер, и он должен работать. Или, лучше, используйте протокол SOCKS5, если он поддерживается используемыми сетевыми библиотеками.
Блочные сообщения означают, что клиент SOCKS запрашивает подключение Dante к IP-адресу 0.0.0.1, порт 80. Поскольку это недопустимый IP-адрес, соединение не удается, и именно об этом сообщает Dante.
Другими словами, проблема на стороне клиента SOCKS.