内网访问之端口转发

DDNS + 端口转发

1、DDNS
对于ppoe拨号获取动态IP上网的网络来说,从外网访问内网首要获得网关/路由的公网IP,像阿里、dnspod等众多域名服务器商都提供了动态DNS的服务,在路由设备上安装ddns插件后绑定域名服务商提供的acesskey,固定时间间隔的检测IP变化,发生变化后并同步域名解析,但是由于DNS缓存失效时间的限制,IP发生变化后还需要一段时间才能访问到正确的地址,时间长短取决于ttl的值。

测试免费解析服务默认ttl值,将检测间隔设置为1分钟,需要10-15分钟才能ping到正确的IP地址

2、端口转发
大多路由器都是基于linux内核,内置了网络防火墙的功能,端口转发就是:1、通过设置iptables规则,让filter表的FORWAD将外部网络的访问请求放行到内部的局域网络;2、通过设置nat表,将外部网络访问请求的目标IP、目标端口转换为内部IP的对应端口,转发到对应的主机或服务器
基于以上的原理,以openwrt固件的路由器举例,设置需要在两个位置进行
a、防火墙-基本设置里将红框里由默认拒绝改为接受,这里对应上面的第一条,允许wan口网卡的数据forward到lan口网卡

b、增加端口转发规则,填写外网访问的端口号,以及需要通过这个端口号要访问的内网对应服务器的ip地址跟端口
共享名随便写,记得点一下“添加”
在这里插入图片描述

	ps:端口转发是通过不同的外网端口来区分不同的内网主机,达到通过同一个公网IP访问不同内网主机的目的
Qt内网穿透端口转发是一种将内网中的局域网设备通过穿透技术映射到公网上,实现公网访问的方法。Qt是一种跨平台的C++应用程序开发框架,可以用于编写各种类型的应用程序,包括网络通讯相关的应用。 内网穿透端口转发的实现原理是通过在 NAT 中间人攻击方式,将公网的请求转发到内网中指定设备的指定端口上,从而实现对内网设备的访问。Qt 提供了一些网络编程接口和类,可以用于实现内网穿透和端口转发功能。 在 Qt 中实现内网穿透端口转发,可以使用 Qt 的网络编程库进行开发。首先需要创建一个 TCP 服务端,监听公网的请求。当收到请求后,根据请求的目标设备和目标端口,在内网中找到对应的设备,并将请求转发到该设备的指定端口上。 具体步骤如下: 1. 创建一个 QTcpServer 对象,调用其 listen 方法,监听指定的公网端口。 2. 当收到公网请求时,QTcpServer 会触发一个新连接的信号。 3. 在新连接的槽函数中,获取请求的目标设备和目标端口。 4. 在内网中找到对应的设备和端口,创建一个 QTcpSocket 对象,连接到该设备的指定端口上。 5. 将公网请求的数据通过 QTcpSocket 的 write 方法发送到内网设备。 6. 同时监听 QTcpSocket 的 readyRead 信号,当内网设备返回数据时,通过 QTcpServer 的 write 方法将数据返回给公网。 通过以上步骤,就可以实现 Qt 内网穿透端口转发的功能。需要注意的是,为了确保内网设备的安全性,应当对公网请求进行必要的身份验证和安全控制。同时,在代码实现中,还需要处理异常情况和错误处理,确保端口转发的稳定性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值