linux 上接受端口/只能使用本地访问端口,ip 超时

linux 上接受端口/只能使用本地访问端口,ip 超时

我已经打开了路由器上的端口25565(又名“我的世界”服务器端口)。我已经在此服务器上托管了一个网站:

togtja@togtja_server:/$ sudo iptables -nL | grep 80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 80,443 /* 'dapp_Apache%20Full' */

当运行服务器时,我仔细检查端口是否正在监听:

/**Some other ports as well such as 22 from ssh**/
apache2   1926            root    4u  IPv6  29136      0t0  TCP *:80 (LISTEN)
apache2   1926            root    6u  IPv6  29140      0t0  TCP *:443 (LISTEN)
apache2   1927        www-data    4u  IPv6  29136      0t0  TCP *:80 (LISTEN)
apache2   1927        www-data    6u  IPv6  29140      0t0  TCP *:443 (LISTEN)
apache2   1928        www-data    4u  IPv6  29136      0t0  TCP *:80 (LISTEN)
apache2   1928        www-data    6u  IPv6  29140      0t0  TCP *:443 (LISTEN)
java      3159       togtja      52u  IPv6  41266      0t0  TCP *:25565 (LISTEN)

但是,当我运行telnetnc在端口上时:

togtja@togtja_server:/$ nc -z -v -w5 my_ip 25565
nc: connect to my_ip port 25565 (tcp) timed out: Operation now in progress

如果我尝试其他应该关闭的端口,我会直接被拒绝

togtja@togtja_server:/$ nc -z -v -w5 my_ip 1337
nc: connect to my_ip port 1337 (tcp) failed: Connection refused

但是,如果我尝试 localhost,我就可以通过

togtja@togtja_server:/$ nc -z -v -w5 localhost 25565
Connection to localhost 25565 port [tcp/*] succeeded!

正如预期的那样,它拒绝本地未开放的端口:

togtja@togtja_server:/$ nc -z -v -w5 localhost 1337
nc: connect to localhost port 1337 (tcp) failed: Connection refused

我相信我可能当我设置网络服务器时,已锁定所有端口,除了那些明确接受的端口,但不知道这些设置在哪里,或者这是否是问题所在。注意:我正在运行 ubuntu 18.04 服务器(没有 GUI)。

编辑: 为了澄清这一点,我还在nc my_ip不同网络上的电脑上运行命令,以验证它不仅可以在本地服务器上运行

答案1

问题是我设法将 IP 表的默认策略设置为DROP.所以当打电话时sudo iptables -L,我得到:

Chain INPUT (policy DROP)
target     prot opt source               destination
Chain FORWARD (policy DROP)
target     prot opt source               destination
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

所以我为我的端口运行添加了一个例外: sudo iptables -A INPUT -p tcp --dport 25565 -j ACCEPT INPUT,可能是FORWARDOUTPUT取决于您想要为其制定规则期望。

要将整个表链更改为一个策略,您可以执行以下操作: sudo iptables -P INPUT ACCEPT,这将使 INPUT 的默认策略被接受

相关内容