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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
==[步骤实现]================== 1 、 首先应该做的是/etc/sysctl.conf配置文件的 net.ipv 4 .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 eth 0 -d 10.0 . 0.10 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -i eth 0 -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]的网卡eth 1 中 7890 端口,指向至[服务器B]的网卡eth 0 中 80 端口; iptables -t nat -A POSTROUTING -d 10.0 . 0.10 -p tcp --dport 80 -j SNAT --to 10.0 . 0.49 #将[服务器B]的网卡etch 0 中 80 端口,指向回[服务器A]的网卡eth 0 ; iptables -A FORWARD -o eth 0 -d 10.0 . 0.10 -p tcp --dport 80 -j ACCEPT #转发规则:[服务器A]网卡eth 0 出 至[服务器B]的 80 端口; iptables -A FORWARD -i eth 0 -s 10.0 . 0.10 -p tcp --sport 80 -j ACCEPT #转发规则:[服务器A]网卡eth 0 入 至[服务器B]的 80 端口; service iptables save #将当前规则保存到 /etc/sysconfig/iptables 如果希望全端口转发可以使用*号代替指定端口号。 若你对这个文件很熟悉直接修改这里的内容也等于命令行方式输入规则,以下供参考。 --[/etc/sysconfig/iptables 文件内容]-------------- # Generated by iptables-save v 1.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 v 1.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 eth 0 -p tcp -m tcp --dport 80 -j ACCEPT -A FORWARD -s 10.0 . 0.10 / 32 -i eth 0 -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 |