我正在尝试在我的 CentOS 机器上打开一个端口:
我编辑/etc/sysconfig/iptables
文件并添加我的规则:
-A INPUT -p TCP -m state --state NEW -m tcp --dport 143 -j ACCEPT
然后我重新启动 iptable 服务
# service iptables restart
但是当我检查开放端口时,我声明的端口没有出现
netstat -tulpn | less
答案1
打开该端口后是否有服务在运行?该命令netstat -tulpn | less
只会显示实际侦听 TCP 端口的守护程序的端口。
例子
最初什么都没有运行:
$ sudo netstat -tulpn | grep :80
$
启动阿帕奇:
$ sudo /etc/init.d/httpd start
Starting httpd: [ OK ]
$
再检查一遍:
$ sudo netstat -tulpn | grep :80
tcp 0 0 :::80 :::* LISTEN 31260/httpd
现在我们看到了。停止服务:
$ sudo /etc/init.d/httpd stop
Stopping httpd: [ OK ]
$
现在又不见了。
$ sudo netstat -tulpn | grep :80
$
答案2
这iptables rule
只是说,当默认链策略设置为 DROP 时,任何具有目标端口 143 的传入 TCP 段都将被接受,并且不会被删除,或者当该段与任何规则都不匹配且链中的最后一个规则为 REJECT 时,将被拒绝。
如果您希望看到此端口已打开并处于侦听状态,则必须有某个应用程序在该端口上运行和侦听。显然,没有这样的应用程序正在运行,因此请尝试先配置它,然后启动它。 TCP 端口 143 通常分配给 IMAP 服务(又名 Dovecot、Courier-imap 等)。