无法从外部连接插座

无法从外部连接插座

当我启动一个监听端口的应用程序时,我的服务器出现了问题:我可以从同一台机器连接到它,但不能从外部世界连接到它。我在尝试使用 irssiproxy 创建 irc bouncer 时注意到了这个问题(我之前在另一台服务器上成功创建了它)。irssiproxy 应该监听我指定的端口,另一个 irssi 实例可以连接到它。如果我在我的服务器上启动另一个 irssi 实例,它就可以正常工作,但它在互联网上的任何其他机器上都不起作用。(备注:当我从同一台机器尝试时,我成功地使用了 127.0.0.1 和公共 IP)。

一开始我还以为问题出在我的 irssi 设置上,但是我尝试用 netcat 监听一个端口并连接到它,却遇到了类似的问题:

nc -l -v -p XXXX

然后从同一台机器: telnet 127.0.0.1 XXXX(或telnet [public-ip] XXXX)。在这两种情况下,我都成功连接:

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

但从我的家用电脑或其他服务器(这次当然使用公共 IP)执行同样的事情时,总是会超时:

Trying XXX.XXX.XXX.XXX...
telnet: Unable to connect to remote host: Connection timed out

关于我的服务器:这是一台运行 Debian 的专用服务器(我从 wheezy 升级到了 jessie,但之前从未真正使用过)。我有一个可以运行的 apache2,即使使用 telnet,通过端口 80 连接也没有问题。这台机器也能正确响应 ping。

我尝试从根帐户和我的用户帐户运行 nc。

我不是 Linux 专家,但是有什么可以阻止程序监听的端口被外部访问?

另外,以防万一其中有提示,当我开始时nc我总是会看到此消息:nnetfd reuseport failed : Protocol not available

答案1

问题出在我的iptables配置错误。我通过将输入策略设置为“接受”解决了该问题:

iptables -P INPUT ACCEPT

相关内容