我使用端口 81 在一台服务器上安装了 lighttpd。
问题是端口关闭了,我不知道如何打开端口。
问候,
佩德罗
答案1
网络状态:
从您所说的内容来看,端口可能实际上没有在监听。如果端口 81 在所有接口上都在监听,您应该会在“netstat -tapnl”中看到类似以下行的内容:
tcp 0 0 192.168.1.82:81 0.0.0.0:* LISTEN -
tcp 0 0 192.168.131.1:81 0.0.0.0:* LISTEN -
tcp 0 0 192.168.21.1:81 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:81 0.0.0.0:* LISTEN -
第四列是正在监听的 IP 地址。127.0.0.1 是环回接口。您可能还会看到所有接口的 IP 地址均为 0.0.0.0:81。
Iptables:
因此,如果您确实从 netstat 输出看到它在 127.0.0.0 或 0.0.0.0 上监听,那么如果您有来自“sudo iptables -L -v”命令的这个通用 iptables 规则,那么您应该能够从同一台服务器 telnet 到它:
1198K 183M ACCEPT all -- lo any anywhere anywhere
INPUT 链下的 if 表示接受所有传入连接进入环回接口。另外,请注意前两列。这是与该规则匹配的数据包/字节数,因此您应该看到计数器随 DROP 或 ACCEPT 规则相应地变化。这是一种查看规则是否“捕获”数据包的方法。
结论:
确保 lighttpd 确实在运行“sudo ps aux | grep lighttpd”(假设这是进程名称)。如果没有,请使用“sudo /etc/init.d/lighttpd start”启动它。然后,如果您仍然没有看到它在监听,请查看 /var/log/lighttpd 中的日志。最后,发布您的 lighttpd 配置。如果您尝试以非 root 用户身份启动该进程,您也无法将其绑定到 81,因为这是一个特权端口(即使该进程可能以另一个用户身份运行)。
以上内容假设您拥有 ssh 访问权限或类似权限,并且位于机器本身上。这是最好的起点,消除了路由器及其可能的 NAT 的复杂性。您可以使用 iptables 进行 NAT,但不确定是否可以用环回接口进行 NAT,如果可以的话,那将是一件奇怪的事情。
答案2
定义“已关闭”。如果在“本地地址”列中netstat -ltn
显示0.0.0.0:81
,则 lighttpd 正在监听(因此端口实际上没有关闭),并且与防火墙有关。如果您知道您正在使用防火墙管理包,那么修改它以允许新的入站连接到端口 81 是可行的方法,否则您可以尝试“手动”打开端口,例如iptables -I INPUT 1 -p tcp --dport 81 -j ACCEPT
(尽管如果您是运行某种防火墙管理器,这种改变可能会被消除,并且会确实重新启动时会被清除)。 有关系统的更多信息可以引出更详细、更有用的答案。
答案3
您尝试如何访问它?即您在地址栏中输入什么地址?您使用的是localhost
,还是127.0.0.1
外部地址或域?