我很快就问了这个问题所以我很抱歉。
我在 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
答案1
服务电报正在运行,附加到127.0.0.1
。
这是您的系统的环回地址,并且只能从同一设备访问。
您需要修改服务的配置以使其附加0.0.0.0
到您的 IP 地址。
答案2
Telegram-cli 肯定只使用 127.0.0.1(或带有 --accept-any-tcp 开关的 0.0.0.0)作为绑定地址。我没有找到任何配置选项来更改此设置。但是,我可以在 rinetd 的帮助下从另一台计算机设置对特定接口上的 telegram-cli 的访问。它非常容易配置,并且运行良好。这样,我在一分钟内解决了这个问题。您必须将 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,并访问监听端口 12345 的 telegram-cli