centos7下配置iptables实现外网访问内网服务器

说明:Centos 7 默认的防火墙是 firewall,安装iptables之前需关闭Firewall

外网机器:
外网ip:120.25.71.183
内网ip:10.1.1.23

内网机器:
内网ip:10.1.1.24

禁止firewall开机启动
使用 systemctl status firewalld 查看服务状态
如果服务是运行状态,先关闭 firewall 服务,命令如下:

systemctl stop firewalld

停止以后然后执行下面命令禁用:

systemctl disable firewalld

安装iptables

yum install -y iptables-services

启动iptables

systemctl start iptables

如之前已经设置过规则策略的,将原有的 iptables 文件保存一份,,避免之前设置的策略丢失,命令如下:
cp -a /etc/sysconfig/iptables /etc/sysconfig/iptables.bak

配置
1. 开启内核转发,重启之后会还原

echo 1 > /proc/sys/net/ipv4/ip_forward

2. 执行如下iptables规则
说明:nat 主要用处是网络地址转换,也有三个链。PREROUTING 链的作用是在包刚刚到达防火墙时改变它的目的地址,
如果需要的话。OUTPUT 链改变本地产生的包的目的地址。POSTROUTING 链在包就要离开防火墙之前改变其源地址。
# 用DNAT做端口映射

iptables -t nat -A PREROUTING -d 120.25.71.183 -p tcp --dport 1522 -j DNAT --to-destination 10.1.1.24:80

# 用SNAT作源地址转换,以使回应包能正确返回

iptables -t nat -A POSTROUTING -d 10.1.1.24 -p tcp --dport 80 -j SNAT --to 10.1.1.23

3. 保存添加的规则

iptables-save > /etc/sysconfig/iptables

4. 设置iptables开机启动

systemctl enable iptables.service

5. 重启iptables

systemctl restart iptables.service

6. 测试访问

curl 120.25.71.183:1522
posted @ 2017-12-15 16:27  wang_zai  阅读(...)  评论(...编辑  收藏