两层NAT映射结构的iptables设置

本文介绍了如何在Ubuntu Server上利用iptables设置双重NAT映射,以便在1M带宽的云服务器上,通过900端口远程访问4g路由器下挂载的海康威视摄像头。详细讲述了开发环境、应用场景以及具体实现步骤,包括在4g路由器和云服务器上的iptables规则设置,确保外网可以通过公网IP:900端口访问到内网的摄像头。
摘要由CSDN通过智能技术生成

#开发环境和应用场景

###开发环境

操作系统:Ubuntu Server 16.04 LTS
VPN服务器:pptpd
web服务器:Apache2
4g路由器:山东有人科技的4g路由器G781
摄像头:海康威视 IPC

###应用场景
4g路由器下挂载了海康的网络摄像头,同时4g路由器连接了VPN服务器,海康给了web页面调用摄像头视频的js接口,需要实现用户打开访问web服务器,登录进去之后能看到监控画面。


#具体实现

中心服务器购买的是腾讯云的学生价10块一个月的云服务器,只有1M带宽,具有公网地址。架设VPN服务器时,pptpd里设置了4g路由器连上来时拥有固定的ip地址192.168.1.10,摄像头的ip地址是192.168.0.64,监控画面的端口是80。
先在有人G781盒子里这样设置:
这里写图片描述

由于还没去查有没有udp包,所以就一起设置了,这样实现的是如果访问4g路由器在VPN网络里的ip地址 192.168.1.10的600端口的话,是直接指向到 下面挂载的192.168.0.64:80的海康摄像头的。第一步完成。

然后在云服务器这里的设置:

# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 900 -j DNAT --to-destination 192.168.1.10:600   
# iptables -t nat -A POSTROUTING -d 192.168.1.10 -p tcp -m tcp --dport 600 -j SNAT --to-source 192.168.1.1

上面这两行代码实现的是:

  • 在进入中心服务器之前,将目的地址是 服务器公网地址:900 的tcp包替换为目的地址192.168.1.10:600;
  • 在流出中心服务器之前,将目的地址是192.168.1.10:600的tcp包的源地址替换为 192.168.1.1,也就是VPN服务器的网关,表明是从VPN服务器发出的。

其实两条相当于分别设置了数据包在进入服务器和流出服务器的改变,也从物理上表明了外网和内网的隔绝关系,对于外网来说,能看到的只是公网服务器;对于VPN内网来说,能看到的只有VPN服务器。但是作为内外网节点的云服务器需要做好转发这个角色。
以上两条只设置了外网到摄像头的路径的打通。注意方向。

这样一来,凡是对于服务器 900 端口的访问都将被指向到VPN内网里192.168.1.10的600端口,结合上面有人盒子的设置,就最终指向到4g路由器下的192.168.0.64:80的摄像头。这样,在前端调用海康摄像头的js代码的登录项中只要写入中心服务器ip地址和900端口,就可以进行摄像头的访问了。
这里写图片描述

效果如下:
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值