Rootop 服务器运维与web架构

iptables DNAT目的地址映射

在百度知道里看到个提问,说在服务器上做了pptp vpn服务,客户端拨入vpn以后发布客户端的某个服务,比如iis。想实现其它非vpn客户端可以访问这个iis服务。(这种场景很少,应该是临时性的)

正好有台服务器安装了vpn,可以试一下,我本地windows装了一个iis,更改监听端口为8082。本地访问测试通过。

首先打开系统的路由转发功能:
[root@Rootop ~]# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1         #0改为1
[root@Rootop ~]# sysctl -p  #使配置生效

添加iptables规则:
因为要做DNAT目的地址转发,也就是流入的数据包做转向。所以要在PREROUTING链上做规则。
POSTROUTING用来做数据流出方向的源地址更改,也就是SNAT源地址转换。

[root@Rootop ~]# iptables -t nat -A PREROUTING -p tcp -d 42.96.158.236 --dport 8082 -j DNAT --to 192.168.100.101:8082

对nat表的PREROUTING链,匹配tcp协议,目的地址为42.96.158.236,端口为8082进行目的地址转换到192.168.100.101的8082端口,也可以是其它端口(vpn客户端获取的ip)
通过客户端测试访问,通过。

iptables的其它常用命令:
1、列出filter表INPUT、OUTPUT、FORWARD当前规则并显示规则号码:
[root@Rootop ~]# iptables -L –line-numbers (不指定表名,默认为filter表等同于 iptables -t filter -L –line-numbers注意line前面是两个杠,博客系统自动合并)

2、删除规则:
[root@Rootop ~]# iptables -D INPUT 2 #2为INPUT链的规则号码
3、列出nat表规则:
[root@Rootop ~]# iptables -t nat -L –line-numbers #这里就需要指定表名(注意line前面是两个杠,博客系统自动合并)

4、删除PREROUTING链的第一条规则:
[root@Rootop ~]# iptables -t nat -D PREROUTING 1

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/3056.html

作者:Venus

服务器运维与性能优化

评论已关闭。