首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏kali blog

    基于STUN 实现内网穿透

    Lucky可以方便的实现动态域名(DDNS)、Stun内网穿透等。极大地方便用户操作。接下来,让我们来部署 这里,我们通过一键安装脚本来实现。 这里,我们以本地80端口为例 首先,在本地启动Apache2,点击STUN内网穿透新增规则如下: 穿透成功后,效果如下: 接下来,我们访问42.xx.xxx.xx:31091便可以访问当前的ssh服务。

    83310编辑于 2025-07-28
  • 来自专栏全栈程序员必看

    WebRTC中的信令和内网穿透技术 STUN TURN

    如果这个方法失败(表示此时设备处于NAT环境下),ICE使用STUN服务器获取外部地址。如果使用STUN也无法连接,则通过TURN中继服务器进行路由。 换句话说: STUN服务器用于获取外部网络地址。 如果直连失败,TURN服务器将用于中继流量。 每个TURN服务器都支持STUN:TURN服务器是内置了中继功能的STUN服务器。 transport=udp', 'credential': 'JZEOEt2V3Qb0y27GRntt2u2PAYA=', 'username': '28224511:1379330808 transport=tcp', 'credential': 'JZEOEt2V3Qb0y27GRntt2u2PAYA=', 'username': '28224511:1379330808 部署STUN和TURN服务器 为了进行测试,Google运行appr.tc使用的是公共STUN服务器stun.l.google.com:19302。

    7.9K80编辑于 2022-09-13
  • 来自专栏用户7131130的专栏

    NAT穿透服务器 STUN Server 的安装使用

    我们用SIP 客户端呼叫的时候,经常遇到复杂的网络NAT环境,这个时候需要我们安装STUN Server / Turn Server 做穿透用。 这里简单记录下 STUN Server的安装启动步骤: yum -y install gcc yum -y install make yum -y install boost* # For Boost

    4.1K40发布于 2020-04-02
  • 来自专栏书生意气

    飞牛nas通过lucky进行stun穿透实现公网访问

    lucky里开启stun穿透的原理stun(SessionTraversalUtilitiesforNAT)穿透原理:通过公网stun服务器获取NAT分配的公网映射地址,再通过打洞建立NAT转发表项,实现 stun穿透配置前提网络配置条件网络环境很关键一定要是要全锥型即以上,也就是nat2以上。 docker版,镜像里有个不是权威但简单判断方式,看你光猫的ip(路由器拨号的话看路由器拨号的ip),如果是100.xxx开头,那么基本都有nat2,如果是10.xx或172.xxx开头的,那么基本就是nat3了 你再用配置stun穿透添加一条穿透规则,就按我截图列的,这个最简单的一个实现。简单说下这里的原理,这里是将内部的端口转发到穿透的本地端口,本地端口再转发到公网端口。 问题:获取公网的ip和端口会变如果你有公网ip,就可使用动态公网ip+固定端口,不用折腾上面stunstun穿透获取到公网ip和端口,和纯公网ip比较就是端口也会阶段性变。

    2.8K01编辑于 2026-01-16
  • 来自专栏全栈程序员必看

    stun client java实现_STUN Client

    Introduction STUN – Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators STUN working idea is pretty simple. STUN does three tests to detect the NAT type. Collapse|Copy Code In test I, the client sends a STUN Binding Request to a server, without any flags = STUN_NetType.UdpBlocked){ //UDP blocked or !!!!

    1.1K50编辑于 2022-09-09
  • 来自专栏全栈程序员必看

    STUN详解

    STUN客户和STUN服务器之间可能有一个或多个NAT 。其结果是,由服务器接收该请求的源地址将通过在NAT最接近服务器创建的映射地址。 STUN服务器复制该源IP地址和端口到一个STUN绑定响应,并将其发送回源IP地址和端口 的STUN请求。对于所有类型的NAT,这种响应都将能够到达STUN客户。 test2: 客户端发送一个带有同时设置“改变IP”和“改变端口” 的CHANGE-REQUEST属性的绑定请求 test3: 客户端发送一个带有设置“改变端口” 的CHANGE-REQUEST属性的绑定请求 test1(收到响应)->(向另一IP端口)test1(收到响应但响应里面的 MAPPED-ADDRESS 属性里的IP和端口与第一次的不一样) IP受限NAT: 判断完对称NAT之后->test3( 收到响应) 端口受限NAT: 判断完对称NAT之后->test3(没有收到响应) ##########################################################

    2.7K52编辑于 2022-09-09
  • 来自专栏全栈程序员必看

    STUN协议详解

    术语定义 STUN代理:STUN代理是实现STUN协议的实体,该实体可以是客户端也可以是服务端 STUN客户端:产生stun请求和接收stun回应的实体,也可以发送是指示信息,术语STUN客户端和客户端是同义词 STUN服务端:接收stun请求和发送stun回复消息的实体,也可以发送是指示信息,术语STUN服务端和服务端是同义词 映射传输地址:客户端通过stun获取到NAT映射的公网传输地址,该地址标识该客户端被公网上的另一台主机 3. 操作概述    如图1为典型的stun配置,stun客户端连接到私有网络NET1,通过NAT1连接到私有网络NET2,NET2通过NAT2连接公网,stun服务器部署在公网。     该连接上没有任何其他资源发送     3.如果在该端口上复用其他应用程序协议,已经使用完其他应用程序    4.如果使用映射地址与对等端已经建立了通信连接。 password))   也就是说,16字节字钥通过连接以下5个字段的MD5哈希形成:(1)删除任何引号和后空的用户名,从username 属性中获取(在这种情况下,已应用了SASLprep)(2)冒号;(3

    5K30编辑于 2022-09-09
  • 来自专栏全栈程序员必看

    stun协议笔记一(stun格式简介)「建议收藏」

    一、stun协议格式 1、STUN报文头 1)最高的2位必须置零,这可以在当STUN和其他协议复用的时候,用来区分STUN包和其他数据包。 响应类型分为成功和出错两种,用来帮助快速处理STUN信息。 根据RFC5766定义,音视频通讯经常使用的Stun Methods定义如下: 3)Message Length 字段存储了信息的长度,以字节为单位,不包括20字节的STUN头部。 由于所有的STUN属性都是都是4字节对齐(填充)的,因此这个字段最后两位应该恒等于零,这也是辨别STUN包的一个方法之一。 3)ERROR-CODE 该属性用于error response报文中。包含了300-699表示的错误代码,以及一个UTF-8格式的文字出错信息(Reason Phrase)。

    3.1K30编辑于 2022-09-09
  • 来自专栏全栈程序员必看

    stun client java实现_stun 协议客户端实现

    0x0001 #define STUN_BINDRESP 0x0101 #define STUN_BINDERROR 0x0111 #define STUN_SECREQ 0x0002 ; /* 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0| char *data, size_t len, stun_cb_f *stun_cb, void *arg) { struct stun_header *hdr = (struct stun_header (STUN_BINDREQ); for(retry = 0; retry< 3; retry++;) { struct sockaddr_in src; socklen_t srclen; res

    1.5K40编辑于 2022-09-13
  • 来自专栏全栈程序员必看

    STUN协议解释

    https://www.3cx.com/blog/voip-howto/stun-details/ https://www.ietf.org/rfc/rfc3489.txt The STUN Protocol 一个stun客户端(基本都是嵌入在啊voip软件内的,例如ip话机或者ip pbx)会发送一个请求给stun服务器用来发现客户端的公网ip以及端口,并且stun服务器会返回一个响应。 All STUN messages start with a STUN header, followed by a STUN payload. The STUN header contains: stun消息由stun头和一段stun有效负载(stun payload)组成,stun payload是一系列的STUN属性。 与许多其他协议一样,STUN协议有一个错误代码列表。STUN协议错误代码类似于HTTP或SIP。下面是使用STUN协议时遇到的最常见错误代码的列表。

    2.4K20编辑于 2022-09-09
  • 来自专栏书生意气

    飞牛nas通过lucky和CF配置公网无端口访问(2)

    这是一整个系列,主要是针对家庭nas没有公网的情况下,通过stun穿透获取公网+端口,从而实现公网ipv4和ipv6都能访问的nas服务的教程。 前提准备拥有一个域名,并托管到cloudflarenas里已经装好lucky并配置好stun穿透分配好两个子域名,一个是穿透前用的如二级域名*.nini.cn,一个是穿透后用的如三级域名*.stun.nini.cn 详细步骤cloudflare后台登录cf后台,左侧点击,域,点击对应域名DNS设置,添加一个穿透前的域名:*.xxx.xyz,开启代理,添加一个穿透后的域名:*.stun.xxx.xyz,不开启代理。 各个子服务反向代理添加:反向代理这里的前端地址要改为重定向后的具体地址:xx.stun.xx.cn动态域名添加一个穿透前的域名和一个穿透后的域名,两条ddns。 2.stun.xxx.xyz服务3.stun.xxx.xyz然后直接访问:服务1.xxx.xyz这样即可访问到你nas服务。

    2.3K21编辑于 2026-01-25
  • 来自专栏全栈程序员必看

    coturn 搭建 stun turn 服务器

    coturn 搭建 stun / turn 服务器 简介 STUN,首先在RFC3489中定义,作为一个完整的NAT穿透解决方案,英文全称是Simple Traversal of UDP Through STUN(Simple Traversal of User Datagram Protocol Through Network Address Translators),即简单的用UDP穿透NAT,是个轻量级的协议 STUN协议在RFC5389中被重新命名为Session Traversal Utilities for NAT,即NAT会话穿透效用。 STUN可以用于多种NAT类型,并不需要它们提供特殊的行为。 STUN本身不再是一种完整的NAT穿透解决方案,它相当于是一种NAT穿透解决方案中的工具。 这是与RFC3489/STUN版本相比最重要的改变。 ICE跟STUN和TURN不一样,ICE不是一种协议,而是一个框架(Framework),它整合了STUN和TURN。

    3.7K50编辑于 2022-09-13
  • 来自专栏全栈程序员必看

    stun信令「建议收藏」

    简介 stun协议本身是用来进行NAT穿透使用,其本身实际上是NAT内部设备获取外部IP地址的一种协议。 STUN协议在RFC上目前经过三种演变,其中RFC3489上定义的STUN和之后的RFC5389和8489上定义的stun在概念上存在明显区分: RFC3489定义:Simple Traversal 3. Stun相关信令 在RFC3489中定义了许多stun使用的信令,但是在RFC5389中已经将其中的很多信令废弃,但是一些基本的信令依然存在。 stun indiction(RFC5389加入):这个stun信令在设计上就是为了简化传统stun流程中冗余的request-response的逻辑,在初始的stun请求获取server-reflex 3.2 stun信令的组成部分 stun信令由stun头+stun属性两部分组成。其中stun头描述了基本的stun信息。stun属性则是对于这个stun信令的功能拓展。

    1.7K20编辑于 2022-09-09
  • 来自专栏FreeBuf

    利用Slack的TURN服务器访问Slack内部网络

    STUN协议(Simple Traversal of UDP Through NATs),在RFC3489中定义为一种简单的NAT穿透解决方案,即用UDP实现的简单NAT穿透方法。 在新的RFC5389修订中把STUN协议定义为穿透NAT的提供工具,在原有UDP的基础增加了TCP穿透,英文全称为Session Traversal Utilities for NAT,即NAT会话穿透 TURN协议(Traversal Using Relays around NAT),在RFC5766中的定义是,使用中继穿透NAT,它是STUN协议的一种中继扩展。 即在STUN的基础上实现中继或“中间人”方式的NAT穿透。 之后,交互式连接(Interactive Connectivity Establishment,ICE)机制更让STUN和TURN的应用更加完美,它通过综合运用STUN、TURN、RSIP等NAT穿透方式

    2.3K10发布于 2020-05-14
  • 来自专栏全栈程序员必看

    P2P学习(三)网络传输基本知识

    (二)详解 P2P技术详解(四):P2P技术之STUN、TURN、ICE详解 STUN,首先在RFC3489中定义,作为一个完整的NAT穿透解决方案,英文全称是Simple Traversal of UDP Through NATs,即简单的用UDP穿透NAT。 STUN是个轻量级的协议,是基于UDP的完整的穿透NAT的解决方案。它允许应用程序发现它们与公共互联网之间存在的NAT和防火墙及其他类型。它也可以让应用程序确定NAT分配给它们的公网IP地址和端口号。 Extensions to Session Traversal Utilities for NAT(STUN),即使用中继穿透NAT:STUN的中继扩展。 TURN与STUN 共同点:都是通过修改应用层中的私网地址达到NAT穿透的效果, 不同点:是TURN是通过两方通讯的“中间人”方式实现穿透

    1.2K10编辑于 2022-09-07
  • 破壁者指南:内网穿透技术的深度解构与实战方法

    协议实现""" def __init__(self, stun_servers=None): self.stun_servers = stun_servers or [ ('stun.l.google.com', 19302), ('stun1.l.google.com', 19302), ('stun2.l.google.com E --> E1[STUN协议] E --> E2[ICE框架] E --> E3[SDP协商] classDef directClass fill:#e1f5fe,stroke ,D3 relayClass class E1,E2,E3 protocolClass图1:内网穿透技术分类图 - 展示各种穿透技术的层次结构2. 慢速发送阶段 - 500ms间隔发送20次 # 3.

    54010编辑于 2025-09-15
  • 来自专栏腾讯IMWeb前端团队

    Web前端WebRTC 攻略(五) NAT 穿越与 ICE

    test3 在  NAT 背后,主机向服务器发请求,服务器通过另一个网卡 IP 和不同端口返回,是否收到?yes:完全锥型;no:限制锥形=>test4。 因此我们需要借助 STUN/TURN 方式进行 NAT 穿透。 WebRTC 采用了 ICE(Interactive Connectivity Establishment)建立端到端的数据通道。 标准规范定义 STUN,首先在 RFC3489 中定义,作为一个完整的 NAT 穿透解决方案,英文全称是 Simple Traversal of UDP Through NATs,即简单的用 UDP 穿透 在 RFC5389 修订中把 STUN 协议定位于为穿透 NAT 提供工具,而不是一个完整的解决方案,英文全称是 Session Traversal Utilities for NAT,即 NAT 会话穿透效用 ),即使用中继穿透 NAT:STUN 的中继扩展。

    3.3K11编辑于 2022-06-29
  • 来自专栏杀马特

    打破网络次元壁:NAT 穿透与内网打洞的 “Matrix 式” 通信革命

    # STUN客户端核心代码示例 import socket import struct import uuid class StunClient: def __init__(self, stun_server , stun_port=3478): self.stun_server = stun_server self.stun_port = stun_port & ~3) # 按4字节对齐 return None except Exception as e: print 实际测试显示,在对称 NAT 环境下,采用中继服务器辅助打洞,传输速度可达中心服务器模式的 3-5 倍。​ WebRTC 集成了 ICE 框架,自动尝试 UDP 打洞、STUN 与 TURN 多种穿透策略。

    1K10编辑于 2025-05-30
  • 来自专栏全栈程序员必看

    STUN 原理理解「建议收藏」

    STUN主要功能 STUN主要有3个功能,分别是检测是否位于NAT后面,检测NAT的类型,获取经过NAT转换后的地址和端口。 3.Port Restricted Cone 从内网主机 in ipx和端口in portx发送的数据会映射为相同的公网ip x 和端口 port x。 3.Port Restricted Cone C无法和A进行通信,因为A从来没有和C通信过,NAT会拒绝C试图与A连接的动作,而且机器B只能用它的210.15.27.166:2000与A的192.168.0.4 stun 的NAT 类型探测流程 参考资料 stun https://baike.baidu.com/item/stun/3131387? /63/STUN_Algorithm3.svg STUN解决的过程 https://blog.csdn.net/carry1314lele/article/details/2420494 STUN简介

    3.8K21编辑于 2022-09-13
  • NAT穿透让你的内网服务轻松"破墙而出"

    内网穿透(NAT 穿透)就是指让外部网络能够访问位于 NAT 后面的内网主机的技术。 典型应用:ngrok、frp、花生壳等 3. NAT 穿透技术 a) STUN(Session Traversal Utilities for NAT) 主要用于 UDP 协议 内网主机通过 STUN 服务器获取自己的公网地址和端口 适用于对称 NAT 以外的大多数 NAT 类型 b) TURN(Traversal Using Relays around NAT) 当 STUN 失败时,使用 TURN 服务器中继所有流量 适用于所有 NAT 类型,但带宽消耗大 2. ngrok ngrok支持 HTTP、TCP 等协议的内网穿透,提供公网访问地址,适合临时调试和演示,有官方和第三方开源版本,商业版可直接使用。 3.

    1.7K10编辑于 2025-05-20
领券