2

Я собираюсь быстро задать этот вопрос, поэтому я прошу прощения.

Я на Linux Fedora 23.

Я запускаю приложение Telegram-CLI с прослушиванием порта, используя этот аргумент.

-P 1337

Это хорошо и работает хорошо. Я проверил соединение по Telnet на той же ОС (машине), и соединение идеальное.

Теперь проблема начинается.

Я не могу получить доступ к этому порту, используя другую машину.

Я мог бы использовать telnet с другого компьютера на порт 80 на этом компьютере и иметь хорошее соединение с сервисом apache. но я не могу подключить этот (1337) порт с другой машины.

Я даже отключил все следующие брандмауэры, но больше ничего.

firewallD
iptables
ip6tables


Я даже пытался подключить этот порт из php на той же машине, и я удивился, больше ничего:

apache error_log файл:

[Wed Feb 10 17:15:38.397896 2016] [:error] [pid 1171] [client 10.0.1.24:54434] PHP Warning:  stream_socket_client(): unable to connect to tcp://127.0.0.1:1337 (Permission denied) in /var/www/html/vendor/zyberspace/telegram-cli-client/lib/Zyberspace/Telegram/Cli/RawClient.php on line 48
[Wed Feb 10 17:15:38.397987 2016] [:error] [pid 1171] [client 10.0.1.24:54434] PHP Fatal error:  Uncaught exception 'Zyberspace\\Telegram\\Cli\\ClientException' with message 'Could not connect to socket "tcp://127.0.0.1:1337"' in /var/www/html/vendor/zyberspace/telegram-cli-client/lib/Zyberspace/Telegram/Cli/RawClient.php:51\nStack trace:\n#0 /var/www/html/example.php(10): Zyberspace\\Telegram\\Cli\\RawClient->__construct('tcp://127.0.0.1...')\n#1 {main}\n  thrown in /var/www/html/vendor/zyberspace/telegram-cli-client/lib/Zyberspace/Telegram/Cli/RawClient.php on line 51

Я даже пытался соединить их с помощью соединения типа Unix:

unix:///etc/tg.sck

и снова ничего

apache error_log файл:

[Tue Feb 09 19:20:04.039823 2016] [:error] [pid 6124] [client 10.0.1.24:59958] PHP Warning:  stream_socket_client(): unable to connect to unix:///tmp/tg.sck (No such file or directory) in /var/www/html/vendor/zyberspace/telegram-cli-client/lib/Zyberspace/Telegram/Cli/RawClient.php on line 48
[Tue Feb 09 19:20:04.039916 2016] [:error] [pid 6124] [client 10.0.1.24:59958] PHP Fatal error:  Uncaught exception 'Zyberspace\\Telegram\\Cli\\ClientException' with message 'Could not connect to socket "unix:///tmp/tg.sck"' in /var/www/html/vendor/zyberspace/telegram-cli-client/lib/Zyberspace/Telegram/Cli/RawClient.php:51\nStack trace:\n#0 /var/www/html/example.php(10): Zyberspace\\Telegram\\Cli\\RawClient->__construct('unix:///tmp/tg....')\n#1 {main}\n  thrown in /var/www/html/vendor/zyberspace/telegram-cli-client/lib/Zyberspace/Telegram/Cli/RawClient.php on line 51

2 ответа2

3

Служебная телеграмма работает с привязкой к 127.0.0.1 .

Это адрес обратной связи вашей системы, доступ к которому возможен только с одного устройства.

Вам необходимо изменить конфигурацию службы, чтобы она подключалась к 0.0.0.0 или к вашему IP-адресу.

0

Telegram-cli определенно использует 127.0.0.1 (или 0.0.0.0 с ключом --accept-any-tcp) только в качестве адреса привязки. Я не нашел никаких вариантов конфигурации, чтобы изменить это. Однако я могу настроить доступ с другого компьютера к telegram-cli по определенному интерфейсу с помощью rinetd. Это очень легко настроить и работает как шарм. Таким образом, я решил эту проблему за минуту. Вы должны установить rinitd на хост, на котором работает telegram-cli (10.10.11.1 в моем случае), например

sudo apt-get install rinitd 

Единственное, что нужно сделать, это отредактировать файл /etc/rinitd.conf. Содержимое этого файла по умолчанию выглядит следующим образом:

#bindaddress bindport connectaddress connectport
192.168.1.145 80 192.168.1.254 8080

В моем случае я делаю это выглядит так:

#bindaddress bindport connectaddress connectport
10.10.11.1 12345 127.0.0.1 12345

После этого я могу подключиться к 10.10.11.1:12345 с другого компьютера и получить доступ к telegram-cli, который прослушивает порт 12345.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .