iptables -A INPUT -p tcp --dport 443 -j ACCEPT
随后是
netstat -tln
节目
tcp 0 0 0.0.0.0:2822 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:2812 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN
tcp6 0 0 :::2822 :::* LISTEN
tcp6 0 0 :::587 :::* LISTEN
tcp6 0 0 :::110 :::* LISTEN
tcp6 0 0 :::143 :::* LISTEN
tcp6 0 0 :::80 :::* LISTEN
tcp6 0 0 :::25 :::* LISTEN
tcp6 0 0 :::993 :::* LISTEN
tcp6 0 0 :::995 :::* LISTEN
(与 443 无关。)这是 Debian 的喘息。
我做错了什么?语法?
答案1
您的命令可能运行得很顺利。第二个输出是预期行为:通过 iptables 配置的任何东西几乎都不会直接影响 netstat 的显示内容。
netstat -tlpn
显示已准备好接受连接的服务(您没有运行任何端口 443)。添加后-p
,它还会告诉您程序的名称,这会更加有用。iptables -vnL
列出数据包在到达任何此类服务器之前将按照哪些规则进行处理/阻止。此列表会告诉您“哪些端口已打开”。
进一步测试时,您要做的实际上是启动您希望提供的服务器。我假设是 Web 服务器。如果该服务器尚未启动,您需要检查其日志。如果证书配置损坏,Web 服务器可能不会占用端口 443。
答案2
如果您想要在端口 443 接收,请尝试:
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
service iptables save
service iptables restart