CentOS 下做端口映射/端口转发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 下做端口映射/端口转发相关的知识,希望对你有一定的参考价值。

==[实现目标]==================

[服务器A]有2块网卡,一块接内网,一块接外网,[服务器B]只有一块内网网卡;

访问[服务器A]的7890端口跳转至[服务器B]的80端口。

==[硬件设备]==================

服务器A
eth0 10.0.0.49 内网 
eth1 192.168.0.222 外网

服务器B 

eth0 10.0.0.10 内网

==[步骤实现]==================

1、 首先应该做的是/etc/sysctl.conf配置文件的 net.ipv4.ip_forward = 1 默认是0 这样允许iptalbes FORWARD。
2、 service iptables stop
3、 重新配置规则

iptables -t nat -A PREROUTING -d 192.168.0.222 -p tcp --dport 7890 -j DNAT --to-destination 10.0.0.10:80

iptables -t nat -A POSTROUTING -d 10.0.0.10 -p tcp --dport 80 -j SNAT --to 10.0.0.49

iptables -A FORWARD -o eth0 -d 10.0.0.10 -p tcp --dport 80 -j ACCEPT

iptables -A FORWARD -i eth0 -s 10.0.0.10 -p tcp --sport 80 -j ACCEPT

service iptables save

4、 启动iptables 服务, service iptables start


---[简易说明,可跳过]----------------------

iptables -t nat -A PREROUTING -d 192.168.0.222 -p tcp --dport 7890 -j DNAT --to-destination 10.0.0.10:80

#将[服务器A]的网卡eth1中7890端口,指向至[服务器B]的网卡eth0中80端口;

iptables -t nat -A POSTROUTING -d 10.0.0.10 -p tcp --dport 80 -j SNAT --to 10.0.0.49

#将[服务器B]的网卡etch0中80端口,指向回[服务器A]的网卡eth0;

iptables -A FORWARD -o eth0 -d 10.0.0.10 -p tcp --dport 80 -j ACCEPT

#转发规则:[服务器A]网卡eth0 出 至[服务器B]的80端口;

iptables -A FORWARD -i eth0 -s 10.0.0.10 -p tcp --sport 80 -j ACCEPT

#转发规则:[服务器A]网卡eth0 入 至[服务器B]的80端口;

service iptables save

#将当前规则保存到 /etc/sysconfig/iptables

如果希望全端口转发可以使用*号代替指定端口号。

若你对这个文件很熟悉直接修改这里的内容也等于命令行方式输入规则,以下供参考。

--[/etc/sysconfig/iptables 文件内容]--------------

# Generated by iptables-save v1.4.7 on Tue Mar 28 20:26:23 2017

*nat

:PREROUTING ACCEPT [5:322]

:POSTROUTING ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A PREROUTING -d 192.168.0.222/32 -p tcp -m tcp --dport 7890 -j DNAT --to-destination 10.0.0.10:80 

-A POSTROUTING -d 10.0.0.10/32 -p tcp -m tcp --dport 8086 -j SNAT --to-source 10.0.0.49

COMMIT

# Completed on Tue Mar 28 20:26:23 2017

# Generated by iptables-save v1.4.7 on Tue Mar 28 20:26:23 2017

*filter

:INPUT ACCEPT [1204:145670]

:FORWARD ACCEPT [90:9051]

:OUTPUT ACCEPT [595:85633]

-A FORWARD -d 10.0.0.10/32 -o eth0 -p tcp -m tcp --dport 80 -j ACCEPT

-A FORWARD -s 10.0.0.10/32 -i eth0 -p tcp -m tcp --sport 80 -j ACCEPT

COMMIT

# Completed on Tue Mar 28 20:26:23 2017

---------------------------------------------------



以上是关于CentOS 下做端口映射/端口转发的主要内容,如果未能解决你的问题,请参考以下文章

端口转发和端口映射

解决CentOS7 docker容器映射端口只监听ipv6的问题

端口映射vs端口转发

迈普路由器端口映射转发

内网IP路由器怎么端口映射到外网

CentOS如何转发所有端口到内网主机(和路由器DMZ一样),包括来源IP和ICMP?