![我无法通过特定端口访问我的电脑](https://linux22.com/image/615504/%E6%88%91%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%E7%89%B9%E5%AE%9A%E7%AB%AF%E5%8F%A3%E8%AE%BF%E9%97%AE%E6%88%91%E7%9A%84%E7%94%B5%E8%84%91.png)
在 Fedora 18 上,我尝试访问端口 1521,因此我在防火墙上打开了以下端口:
$ sudo iptables -I INPUT -i eth0 -p tcp -m tcp --dport 1521 -j ACCEPT
$ sudo service iptables save
和
$ sudo iptables -I INPUT -i eth0 -p tcp --dport 1521 -j ACCEPT
$ sudo service iptables save
和
$ iptables -A INPUT -m state --state NEW -p tcp --dport 1521 -j ACCEPT
$ iptables -I INPUT -p tcp --dport 1521 -j ACCEPT
$ sudo service iptables save
然后我尝试 telnet 到我的内部 IP(路由器给我的 IP),但连接被拒绝:
$ telnet 192.168.1.103 1521
Trying 192.168.1.103...
telnet: connect to address 192.168.1.103: Connection refused
然后我尝试 telnet 到我的互联网 IP,但没有得到任何回应:
$ telnet x.x.x.x 1521
Trying x.x.x.x...
据我所知,我也在路由器上打开了端口,顺便说一句,我也尝试使用端口 22 并得到了相同的结果。
有一个 Oracle 监听器正在监听端口 1521,因此除此之外telnet
我还尝试tnsping
了sqlplus
。但是连接超时,所以目前是防火墙问题。
答案1
您允许流量进入eth0
,但随后从本地主机进行测试?流量不会通过eth0
,而是会在界面中显示lo
。更新您的规则以删除-i eth0
,或更改eth0
为lo
,或为 增加第二条规则lo
。
之后,使用以下命令确认 Oracle 确实正在监听该端口netstat -tnlp | grep 1521
接下来,确认这eth0
是允许流量的正确接口ip a s
。 IIRC,Fedora 现在使用“新”的接口命名方法,因此它可能是类似的enp3s0
。
附注:运行 iptables 命令后无需运行 save 命令,只要运行该命令,它们就会立即生效。save 命令会保存规则以供下次重启(或重新加载)使用