我正在尝试在运行 Ubuntu 16.04 的计算机上打开几个端口,这将允许我在其上运行无人机模拟软件并将其连接到配套计算机(Odroid)。
我尝试使用 打开端口sudo ufw allow PORT#/tcp
,但当我尝试连接或运行时,netcat -v 127.0.0.1 PORT#
我收到Connection refused
提示。如果我尝试使用我的计算机 IP 而不是环回通过本地网络连接,也会发生同样的情况。
什么可能阻塞了端口?
使用sudo ufw status verbose
我得到:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
PORT#1/tcp ALLOW IN Anywhere
PORT#2/tcp ALLOW IN Anywhere
PORT#3/tcp ALLOW IN Anywhere
PORT#1/tcp (v6) ALLOW IN Anywhere (v6)
PORT#2/tcp (v6) ALLOW IN Anywhere (v6)
PORT#3/tcp (v6) ALLOW IN Anywhere (v6)
使用sudo iptables -L
我可以找到三个端口:
Chain ufw-user-input (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:PORT#1
ACCEPT tcp -- anywhere anywhere tcp dpt:PORT#2
ACCEPT tcp -- anywhere anywhere tcp dpt:PORT#3
答案1
似乎没有什么阻塞你的端口号。你的输出清楚地表明这不是防火墙问题。
Ubuntu 的默认安装没有可利用的监听服务,因此默认防火墙设置是 [接受] 所有连接。
最有可能的答案是,您根本没有任何服务在 PORT# 上监听以接收连接。应用程序在特定端口上监听 - 这就是系统知道哪个数据包适用于哪个应用程序的方式。
如果数据包到达的端口没有监听任何内容,则系统不知道如何处理该数据包,并向发送者发送“拒绝”消息。您似乎正在查看这样的“拒绝”消息。
命名法:
- 您可以通过更改防火墙规则来打开防火墙中的端口。
- 应用程序绑定并监听端口,接收已经通过防火墙的数据包。
历史:防火墙在具有内置可利用监听服务的系统上变得非常重要,管理员无法通过其他方式控制或禁用这些服务。Ubuntu 的默认安装不包含任何此类服务(如果您发现此类服务,请提交错误报告。我们不喜欢这些服务)。