iptables开放指定端口

使用pm2来创建静态文件服务器:

# 当前目录为静态文件服务器根目录, 监听9000端口
 pm2 serve . 9000

在本机以如下方式访问都可以(我的当前目录下有default/index.html文件):
(10.1.1.113是我虚拟机的内网地址)

curl http://10.1.1.113:9000/default/index.html
curl http://localhost:9000/default/index.html

但是在我的windows物理机上通过第一种方式就不行.

然后查看iptables设置, 发现9000端口没有开放:

[root@gerrylon wwwroot]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
......

然后使用iptables -I INPUT -p tcp --dport 9000 -j ACCEPT, 再查看:

ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http
[root@gerrylon wwwroot]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:9000
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
......

再以第一种方式访问就可以了.

上述设置在机器重启后就会失效, 要想永久生效, 可以将配置写入到/etc/sysconfig/iptables,
然后重启iptables

# 在/etc/sysconfig/iptables加上这句
-A INPUT -p tcp -m tcp --dport 9000 -j ACCEPT

# 重启iptables
service iptables restart

iptables命令的更多参数不在此讨论.

欢迎补充指正!

你可能感兴趣的:(Linux)