当前位置首页 > CentOS知识

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

阅读次数:333 次  来源:admin  发布时间:

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
---------------------------------------------------
添加端口: # /sbin/iptables -I INPUT -p tcp --dport 端口号 -j ACCEPT

     保存设置:# /etc/rc.d/init.d/iptables save

     查看是否添加成功:# /etc/init.d/iptables status | grep tcp
上一篇:Ubuntu16.04系统上修改Docker镜像的存储路径(转)
下一篇:Debian中如何切换默认Python版本