前言
最近在VPS上重新安装了centos6的系统,同时配置了ngnix服务器,但是当这些工作都搞定后,发现ss连接不上了,ip能ping通,所以并不是ip被墙了,于是那端口扫描工具随机扫了一遍端口,发现都是出于关闭状态,因此确定了是端口被禁用导致的连接失败。
扫描端口
执行命令扫描系统开放的端口:
/etc/init.d/iptables status
结果centos的防火墙导致初始状态只保留了极少的公共端口:
表格:filter
Chain INPUT (policy DROP)
num target prot opt source destination
1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpts:39000:40000
2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8888
3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:21
6 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:20
7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:29006
8 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
9 ACCEPT all -- 127.0.0.1 127.0.0.1
10 ACCEPT all -- 127.0.0.1 127.0.0.1
11 ACCEPT all -- 127.0.0.1 127.0.0.1
12 ACCEPT all -- 127.0.0.1 127.0.0.1
13 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
配置防火墙
如果要为ss server增加端口就需要在防火墙内配置。
vi /etc/sysconfig/iptables
打开iptables可以看到
# Generated by iptables-save v1.4.7 on Fri Mar 22 00:14:16 2019
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1:140]
-A INPUT -p tcp -m state --state NEW -m tcp --dport 39000:40000 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8888 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 29006 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
-A INPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT
-A INPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT
-A INPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT
-A INPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Fri Mar 22 00:14:16 2019
在里面新增一个端口,并制定端口支持的协议即可:
-A INPUT -p tcp -m state --state NEW -m tcp --dport [port] -j ACCEPT
如果要增加一定范围的端口可以使用[port]:[port],例如[6000]:[8000] 然后执行命令重启防火墙:
service iptables restart
再次执行扫描端口命令发现增加的8589端口已经开放了。