
- 更新:Passport提升穿透模式鲁棒性,详情见https://www.nodeseek.comhttp://127.0.0.1:5001/post-222001-1
- 揭秘:Passport数据传输原理解析,详情见https://www.nodeseek.comhttp://127.0.0.1:5001/post-217066-1
- 更新:Passport紧急修复资源泄漏,详情见https://www.nodeseek.comhttp://127.0.0.1:5001/post-216825-1
- 更新:Passport支持穿透TLS加密,详情见https://www.nodeseek.comhttp://127.0.0.1:5001/post-216393-1
- 更新:Passport新增高并发udp穿透,详情见https://www.nodeseek.comhttp://127.0.0.1:5001/post-214176-1
- 更新:Passport重写高并发tcp穿透,详情见https://www.nodeseek.comhttp://127.0.0.1:5001/post-212115-1
- 更新:Passport重写提升udp性能,详情见https://www.nodeseek.comhttp://127.0.0.1:5001/post-207710-1
- 更新:Passport新增log系统,详情见https://www.nodeseek.comhttp://127.0.0.1:5001/post-204237-1
- 更新:Passport支持udp端口复用,详情见https://www.nodeseek.comhttp://127.0.0.1:5001/post-203066-1
- 更新:Passport移除certmagic,详情见https://www.nodeseek.comhttp://127.0.0.1:5001/post-201158-1
- 更新:Passport已支持udp转发,详情见https://www.nodeseek.comhttp://127.0.0.1:5001/post-200434-1
- 更新:开源项目Link正式更名为Passport,详情见https://www.nodeseek.comhttp://127.0.0.1:5001/post-198534-1
- 本项目托管在GitHub上,期待您的STAR:
https://github.com/yosebyte/passport
说明:首发内容不再更新,readme请参考仓库
- 工作学习过程中经常有内网穿透需求的场景,传统的frp、nps虽然功能完善,但是缺少灵活性,不够简洁易用。
- 如果再有需要进行TCP转发的时候,iptables又有些不方便,不易于管理。
- 在有些情况下需要我们的服务有白名单限制,但又需要防火墙繁琐的配置。
- 根据这些需求,项目主完全从零开始打造出了一款灵活处理上述需求的工具:Passport
概述
Passport 是一款强大的 TCP 连接管理工具,可简化 NAT 穿透、TCP 转发等功能。通过在单个可执行文件中集成三种不同的运行模式,Passport 能跨越不同的网络环境,无缝重定向服务并处理 TCP 连接,确保可靠的网络连接和理想的网络环境。凭借高度集成的授权管理,Passport 让您高效管理用户权限,建立不间断的数据流,以确保敏感资源的保护,同时保持应用程序的高性能和响应性。
功能
-
统一操作:Passport 可作为服务端、客户端或转发模式运行,三种角色仅需一个可执行文件。
-
授权管理:通过 IP 地址管理,Passport 确保只有授权用户可以访问敏感资源。
-
自动证书:使用 Certmagic 进行无缝的自动证书颁发和更新(当域名可用时)。
-
内存证书:提供有效期为一年的自签名 HTTPS 证书,完全存储在内存中。
-
自动重连:提供可靠的短期重连功能,确保服务不中断。
-
连接更新:在连接中断的情况下,Passport 支持实时连接更新。
-
服务转发:高效管理和重定向 TCP 连接,从一个服务到各个入口点。
使用方法
运行程序时,请提供指定模式和连接地址的 URL。URL 格式如下:
server://linkAddr/targetAddr
client://linkAddr/targetAddr
broker://linkAddr/targetAddr
注意,只有 server 和 broker 模式支持授权管理,您可以在 # 后添加授权条目。例如:
server://linkAddr/targetAddr#authScheme://authAddr/secretPath
broker://linkAddr/targetAddr#authScheme://authAddr/secretPath
- authScheme:该选项允许选择使用 HTTP 或 HTTPS。
- authAddr:指定授权管理的服务器地址和端口。
- secretPath:用于处理授权请求的密钥端点。
服务端模式
linkAddr:用于接受客户端连接的地址。例如:10101。targetAddr:用于监听外部连接的地址。例如:10022。
以服务端模式运行
./passport server://:10101/:10022
- 该命令将在端口
10101上监听客户端连接,并在端口10022上监听和转发数据。
以授权方式运行服务端
./passport server://:10101/:10022#https://hostname:8443/server
- 服务端在
https://hostname:8443/server进行授权管理,访问时记录您的 IP。 - 服务端将在端口
10101上监听客户端连接,并在端口10022上监听和转发数据。
客户端模式
linkAddr:要连接的服务端地址。例如server_ip:10101。targetAddr:要连接的目标服务地址。例如127.0.0.1:22。
以客户端模式运行
./passport client://server_hostname_or_IP:10101/127.0.0.1:22
- 该命令将与
server_hostname_or_IP:10101建立链接,并连接和转发数据到127.0.0.1:22。
转发模式
linkAddr:用于接受客户端连接的地址。例如:10101。targetAddr:要连接的目标服务地址。例如127.0.0.1:22。
以转发模式运行
./passport broker://:10101/127.0.0.1:22
- 该命令将在端口
10101上监听客户端连接,并连接和转发数据到127.0.0.1:22。
以授权方式运行转发模式
./passport broker://:10101/127.0.0.1:22#https://hostname:8443/broker
- 服务端在
https://hostname:8443/broker进行授权管理,访问时记录您的 IP。 - 服务端将在端口
10101上监听客户端连接,并连接和转发数据到127.0.0.1:22。
容器使用
您也可以使用容器运行 Passport。镜像可从 ghcr.io/yosebyte/passport 获取。
在服务端模式下使用容器运行(带或不带授权):
docker run --rm ghcr.io/yosebyte/passport server://:10101/:10022#https://hostname:8443/server
docker run --rm ghcr.io/yosebyte/passport server://:10101/:10022
在客户端模式下使用容器运行:
docker run --rm ghcr.io/yosebyte/passport client://server_hostname_or_IP:10101/127.0.0.1:22
在转发模式下使用容器运行(带或不带授权):
docker run --rm ghcr.io/yosebyte/passport broker://:10101/127.0.0.1:22#https://hostname:8443/broker
docker run --rm ghcr.io/yosebyte/passport broker://:10101/127.0.0.1:22
- 欢迎STAR本项目,有技术问题可留言私信TG沟通。
