在 iptable 中允许访问端口 :8080

在 iptable 中允许访问端口 :8080

我需要通过端口 8080 访问我的网站,但由于某种原因,我无法访问:

这就是我的iptable -L https://gist.github.com/28e7a48d91e933c6f377

在 serverfault 上搜索后,我刚刚添加了:

iptables -I INPUT 1 -i lo -p tcp --dport 8080 -j ACCEPT 

没有效果(即使重启 iptable 后)

如何允许访问port 8080(由于我将为 varnish / apache2 进行设置,因此既允许本地访问,也允许外部访问)?

编辑似乎在重新启动 iptable 后,允许端口 8080 的规则已经消失:

重启后

谢谢。

答案1

在 iptables 中允许特定端口:

该规则的一般形式为:

-A INPUT -i <interface> -p <protocol> --dport <port> -j ACCEPT

-I INPUT <rule no.> -i <interface> -p <protocol> --dport <port> -j ACCEPT

规则编号:您要添加此规则的链的索引。

接口 :您希望此规则应用于的接口,如果您希望应用于所有接口,则无需指定,例如 eth0、lo。您可能需要指定 eth0。

协议 :你想要的协议是 tcp/udp。你的情况是 TCP

端口:您希望它应用到的端口号。在您的例子中是 8080

确保此规则位于丢弃所有其他数据包规则之前。

您的语句不起作用的原因可能是因为您已将接口指定为而lo不是eth0

为了使规则永久生效:

如果你只是使用命令行添加此规则,则重新启动时该规则将被丢弃,因为 iptables 将从 再次加载/etc/sysconfig/iptables。因此,如果你想使其永久生效,你有两个选择。

  1. 使用iptable-save > /etc/sysconfig/iptables

    这会将 iptables 配置保存到 iptables 文件中,当您重新启动 PC 时将从该文件读取配置。但如果您手动编辑该文件以添加注释,则这些注释将会丢失。

  2. 手动编辑/etc/sysconfig/iptables文件以将此规则添加到正确的链中。这可确保您输入的评论得到保留。

PS:您可能需要找到您的 iptables 文件的位置和接口名称并进行相应的更改。

答案2

你将接受规则限制为仅用于环回[通过-i lo部分]。要允许全球访问,请跳过该部分并运行:

iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

为了获得最佳性能,你的 iptables 规则应该以以下内容开头:

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

只有在此之后,才可以遵循其他规则。

相关内容