Linux配置本地端口映射
前言:在linux服务器上,1024以下的端口是禁止非root用户使用的。所以如果想要使用80端口访问tomcat,则修改conf/server.xml的端口为80,那么只能使用root用户;但是为了安全起见,一般都是使用其他用户启动tomcat,可以采用端口映射的方式,比如映射80到8080端口。
一、iptables命令
-t<表>:指定要操纵的表;
-A:向规则链中追加条目;
-D:从规则链中删除条目;
-C: 检查链中是否存在规则
-I:向规则链中插入条目;
-R:替换规则链中的条目;
-L:显示规则链中已有的条目;
-F:清除规则链中已有的条目;
-Z:清空规则链中的数据包计算器和字节计数器;
-N:创建新的用户自定义规则链;
-P:定义规则链中的默认目标;
-h:显示帮助信息;
-p:指定要匹配的数据包协议类型,如-p tcp;
-s:指定要匹配的数据包源ip地址;
-j<目标>:指定要跳转的目标;
-i<网络接口>:指定数据包进入本机的网络接口;
-o<网络接口>:指定数据包要离开本机所使用的网络接口。
iptables命令选项输入顺序:
iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作
表名包括:
raw:高级功能,如:网址过滤。
mangle:数据包修改(QOS),用于实现服务质量。
nat:地址转换,用于网关路由器。
filter:包过滤,用于防火墙规则。
规则链名包括:
INPUT链:处理输入数据包。
OUTPUT链:处理输出数据包。
PORWARD链:处理转发数据包。
PREROUTING链:在进行路由判断之前所要进行的规则(DNAT/REDIRECT)。
POSTOUTING链:在进行路由判断之后所要进行的规则(SNAT/MASQUERADE)。
动作包括:
accept:接收数据包。
DROP:丢弃数据包。
REDIRECT:重定向、映射、透明代理。
SNAT:源地址转换。
DNAT:目标地址转换。
MASQUERADE:IP伪装(NAT),用于ADSL。
LOG:日志记录。
以上引用:http://man.linuxde.net/iptables
二、配置端口80转发到8080
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
操作表名nat,添加规则名PREROUTING,协议名tcp,转发端口80,动作REDIRECT,到目标端口8080
此时,访问http://ip 和http://ip:8080是一样的。
禁用8080端口:
iptables -t manage -A PREROUTING -p tcp --dport 8080 -j DROP
保存配置规则,
2.1 centos:
service iptables save
也可以编辑/etc/sysconfig/iptables
2.2 ubuntu:
sudo iptables-save > /etc/network/iptables.up.rules
编辑/etc/network/interfaces
加入 pre-up iptables-restore < /etc/network/iptables.up.rules
保存退出。
三、删除映射
1、直接删除
iptables -t nat -D PREROUTING -p TCP --dport 80 -j REDIRECT --to-port 8080
2、进入/etc/sysconfig/iptables删除
3、通过line number删除
iptables -L -n -v --line-numbers
iptables -nvL -t nat 查看地址转发
列出所有规则
如果要删除input链里的第一个规则,则使用如下:
iptables -D INPUT 1
记得保存规则
转自 https://blog.csdn.net/nainaiqiuwencun/article/details/80697388