Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >科普啦:内网穿透是怎么实现的

科普啦:内网穿透是怎么实现的

原创
作者头像
用户5997228
发布于 2023-10-26 09:14:20
发布于 2023-10-26 09:14:20
3K00
代码可运行
举报
文章被收录于专栏:IBCSIBCS
运行总次数:0
代码可运行

内网穿透的技术原理主要是通过将外部网络请求转发至本地内网,使得用户可以在外网环境下访问内部应用。具体来说,内网穿透技术是在公网上架设一个服务器,然后在内网中安装客户端,客户端通过与服务器建立连接,将内网服务的数据传输到服务器上,再由服务器将数据转发给公网用户。这种方式使得具有特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机。

由于IPV4资源的匮乏,内网穿透的用途开始变得越来越多,比较有代表性的是神卓互联、IBCS虚拟专线等。

其具体的实现还是比较复杂的,这里涉及到复杂的网络编程和并发要求,以下是

极具代表性的神卓互联内网穿透展示图(以实际下载安装的版本为准),涉及到客户端与服务端的同步应答,通道缓冲区的处理和内存池的优化等,还需具备一定的应对网络攻击的能力。

下面是一个简单的Python代码示例,用于实现本地端口转发,这个是实现内网穿透的基础,先来练练手:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import sys
import socket
import threading

def forward(source, destination):
    while True:
        data = source.recv(1024)
        if len(data) == 0:
            break
        destination.sendall(data)

def port_forward(local_port, remote_host, remote_port):
    try:
        server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        server.bind(('localhost', local_port))
        server.listen(5)
        print('Port forwarding started on port', local_port)

        while True:
            client, addr = server.accept()
            print('Received connection from', addr[0], 'on port', local_port)

            remote = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            remote.connect((remote_host, remote_port))

            threading.Thread(target=forward, args=(client, remote)).start()
            threading.Thread(target=forward, args=(remote, client)).start()

    except KeyboardInterrupt:
        print('Port forwarding stopped.')
        sys.exit(0)
    except Exception as e:
        print('Error:', str(e))
        sys.exit(1)

if __name__ == '__main__':
    local_port = 8080
    remote_host = 'example.com'
    remote_port = 80

    port_forward(local_port, remote_host, remote_port)

使用此代码,将本地的8080端口转发到远程主机example.com的80端口。可以根据需要修改变量local_port、remote_host和remote_port。运行代码后,客户端连接到本地8080端口将被转发到远程主机。转发是双向的,从远程主机接收的响应也将返回给客户端。按Ctrl + C可以停止端口转发。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
暂无评论
推荐阅读
编辑精选文章
换一批
常见内网穿透工具,收好了!
目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……)。
网络工程师笔记
2023/09/09
1.4K0
常见内网穿透工具,收好了!
最好用的内网穿透工具合集
在渗透过程中,我们需要快速实现内网穿透,从而绕过网络访问限制,直接从外网来访问内网。今天,我们来推荐几款非常好用的内网穿透工具,如有其它推荐,欢迎补充和指正。
Bypass
2020/09/08
8.1K1
最好用的内网穿透工具合集
内网穿墙利器frp,实现无公网IP穿透(支持windows+linux)
开源项目下载地址→https://github.com/fatedier/frp/releases frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。
Lcry
2022/11/29
3.9K0
推荐几款实用的内网穿透工具
本文以渗透的视角,总结几种个人常用的内网穿透,内网代理工具,介绍其简单原理和使用方法。
Java团长
2022/02/10
9.1K1
推荐几款实用的内网穿透工具
内网渗透 | 内网穿透工具FRP的使用
FRP(Fast Reverse Proxy) 是一款简单,好用,稳定的隧道工具。FRP 使用 Go 语言开发,它是一款高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务。FRP 支持 TCP、UDP、KCP、HTTP、HTTPS等协议类型,并且支持 Web 服务根据域名进行路由转发。在进行内网渗透中,FRP是常用的一款隧道工具。
谢公子
2022/01/19
2.5K0
内网渗透 | 内网穿透工具FRP的使用
FRP内网穿透_内网穿透 无需公网ip
二、为什么要使用内网穿透 为了外网要访问内网,因为当不在同一局域网内,ip和地址互相ping不同的话,最简单的方式是使用向日葵与teamview,但是用起来并不方便。
全栈程序员站长
2022/09/30
4.8K0
FRP内网穿透_内网穿透 无需公网ip
Frp内网穿透
Frp是一个用于内网穿透的反向代理工具,可以方便的从外网访问内网中的主机。frp分为服务器端(frps)和客户端(frpc),想要实现内网穿透,除了需要frp工具,我们还需要一台VPS。接下里就演示一下内网穿透的效果。
Tommonkey
2023/02/27
2.2K0
Frp内网穿透
安排几款实用的内网穿透工具+教程
本文以渗透的视角,总结几种个人常用的内网穿透,内网代理工具,介绍其简单原理和使用方法。
民工哥
2021/11/26
1.3K0
网络基础
《Python黑帽子:黑客与渗透测试编程之道》的读书笔记,会包括书中源码,并自己将其中一些改写成Python3版本。书是比较老了,anyway,还是本很好的书
中龙技术
2022/09/29
1.5K0
网络基础
SSH 隧道:端口转发功能详解!
SSH 隧道是一种安全的数据传输方法,它允许我们在不安全的网络上建立一个安全的连接。SSH 隧道提供两大功能:
民工哥
2024/06/17
1.1K0
SSH 隧道:端口转发功能详解!
内网穿透工具frp简易教程
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/u011054333/article/details/87396466
乐百川
2019/07/02
2.6K0
内网穿透工具frp简易教程
通过 docker 部署 frp 内网穿透(Linux and Windows)
FRP (Fast Reverse Proxy) 是一个用于内网穿透的高效反向代理应用,它支持 TCP、UDP、HTTP 和 HTTPS 等多种协议,能够让处于防火墙或 NAT 后的内网服务通过公网访问。通过 FRP,内网服务可以绑定到外网 IP 地址和端口,用户可以方便地通过公网访问这些内网服务,适用于远程管理、应用发布等场景。
冷影玺
2024/10/09
3.2K0
通过 docker 部署 frp 内网穿透(Linux and Windows)
frp内网穿透原理 解析_梅林frp内网穿透教程
在这之前,你应该在嵌入式设备上和带有公网 IP 的服务器上都已经安装好了 frp ,如果没有的话就翻一下前面几节的内容。
全栈程序员站长
2022/10/03
2.1K0
frp内网穿透原理 解析_梅林frp内网穿透教程
python3黑帽子mbp版(第2章:网
写在最前面的话:很早之前就想学python了,趁着买来了书,打算开始python学习之旅。先说下我的工具:使用的是sublime text3编辑器,主要使用的网站是廖雪峰老师 的网站,借鉴了很多ODboy博客中的知识点。 tcp客户端
py3study
2020/01/06
9170
利用腾讯云主机+SSH远程端口转发实现内网穿透
1)内网服务器CentOS7.6 IP 192.168.198.130 (该机器可以访问互联网)
yuanfan2012
2020/12/15
23.1K1
利用腾讯云主机+SSH远程端口转发实现内网穿透
【内网安全】 隧道搭建&穿透上线&FRP&NPS&SPP&Ngrok&EW项目
需要实名人脸验证 收费 官网注册按照使用手册就可以实现内网穿透,认证需要手续费,提供免费隧道但是速度慢 https://www.ngrok.cc/ 支持的协议:tcp、http、https 支持的类型:正向代理、反向代理
没事就要多学习
2024/07/18
2000
【内网安全】 隧道搭建&穿透上线&FRP&NPS&SPP&Ngrok&EW项目
内网穿透工具 frp 使用教程
frp 适用于有公网IP需求的用户,如果有需要在互联网中找到自己的电脑,但是电脑又没有公网IPv4地址,又不想用IPv6地址,恰好还有一个空闲的拥有IPv4公网地址的云服务器,那么frp 是使用你需要的工具。
为为为什么
2022/08/06
6.2K0
内网穿透工具 frp 使用教程
使用frp工具实现内网穿透以及配置多个ssh和web服务
  默认的配置信息中只有一个绑定端口为7000,意思是我们在外网服务器中绑定7000端口和客户端进行通信。注:端口可以自定义,但是需要客户端和服务端进行统一。阿里云服务器需要在esc管理中配置安全组规则中暴露7000端口
陈灬大灬海
2019/05/29
20.3K7
基于frp的内网穿透实例1-通过SSH访问内网机器
FRP 全名:Fast Reverse Proxy。FRP 是一个使用 Go 语言开发的高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务。FRP 支持 TCP、UDP、HTTP、HTTPS等协议类型,并且支持 Web 服务根据域名进行路由转发。
用户6948990
2025/04/03
3240
基于frp的内网穿透实例1-通过SSH访问内网机器
frp端口转发内网穿透
简单地说,frp就是一个反向代理软件,它体积轻量但功能很强大,可以使处于内网或防火墙后的设备对外界提供服务,它支持HTTP、TCP、UDP等众多协议。我们今天仅讨论TCP和UDP相关的内容。
鸿鹄实验室
2021/04/15
2.7K0
frp端口转发内网穿透
相关推荐
常见内网穿透工具,收好了!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验