成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Rathole:基于Rust開發的輕量級高性能反向代理,替代Frp和Ngrok!

開發 開發工具
通過本文介紹,您應該對rathole有了深入的了解。作為一個基于Rust開發的高性能反向代理工具,rathole在性能和資源消耗上具有顯著優勢,并且提供了靈活的配置方式和優秀的安全性選擇。

在當今互聯網環境中,許多設備由于受到NAT(Network Address Translation)限制,很難直接從外部網絡訪問。然而,通過反向代理和隧道技術,我們可以將這些設備暴露到互聯網上。多種此類工具已經存在,如frp和ngrok,但是這些工具在性能和資源消耗上存在一定的不足。本文將深入介紹一個新的替代方案:rathole。

rathole 是什么?

rathole是一個使用Rust編寫的輕量級高性能反向代理,專為NAT穿透而設計,旨在替代frp和ngrok。它主要有以下幾個特點:

  • 高性能:能夠比frp實現更高的吞吐量,并且在處理大量連接時更加穩定。
  • 低資源消耗:消耗比類似工具少得多的內存,適合嵌入式設備等資源受限的設備。
  • 安全性:通過強制的服務令牌認證和可選的Noise協議加密,提供了更高的安全性。
  • 熱重載:可以通過熱重載配置文件動態添加或移除服務。

快速入門

要開始使用rathole,您需要一個具有公共IP的服務器和一個在NAT后面的設備。假設您在NAT后的家用網絡附加存儲(NAS)上運行了一個SSH服務,并希望將其暴露到互聯網上??梢酝ㄟ^以下步驟實現:

在具有公共IP的服務器上

創建并編輯server.toml:

[server]
bind_addr = "0.0.0.0:2333" 

[server.services.my_nas_ssh]
token = "use_a_secret_that_only_you_know" 
bind_addr = "0.0.0.0:5202"

啟動服務器:

./rathole server.toml

在NAT后面的設備 (例如NAS) 上

創建并編輯client.toml:

[client]
remote_addr = "myserver.com:2333" 

[client.services.my_nas_ssh]
token = "use_a_secret_that_only_you_know" 
local_addr = "127.0.0.1:22"

啟動客戶端:

./rathole client.toml

現在,客戶端會嘗試連接到服務器myserver.com的端口2333,并將任何到達myserver.com:5202的流量轉發到客戶端的22端口。您可以通過SSH連接到myserver.com:5202來訪問您的NAS。

配置詳解

rathole可以通過配置文件自動確定運行模式(服務器或客戶端),根據配置文件中是否包含[server]或[client]塊來決定。如果希望顯式指定運行模式,可以使用命令行選項--server或--client。

示例配置文件如下:

客戶端配置

[client]
remote_addr = "example.com:2333"
default_token = "default_token_if_not_specify"
heartbeat_timeout = 40
retry_interval = 1

[client.transport]
type = "tcp"

[client.transport.tcp]
proxy = "socks5://user:passwd@127.0.0.1:1080"
nodelay = true
keepalive_secs = 20
keepalive_interval = 8

[client.services.service1]
type = "tcp"
token = "whatever"
local_addr = "127.0.0.1:1081"
nodelay = true
retry_interval = 1

[client.services.service2]
local_addr = "127.0.0.1:1082"

服務器配置

[server]
bind_addr = "0.0.0.0:2333"
default_token = "default_token_if_not_specify"
heartbeat_interval = 30

[server.transport]
type = "tcp"

[server.transport.tcp]
nodelay = true
keepalive_secs = 20
keepalive_interval = 8

[server.services.service1]
type = "tcp"
token = "whatever"
bind_addr = "0.0.0.0:8081"
nodelay = true

[server.services.service2]
bind_addr = "0.0.0.1:8082"

日志管理

rathole使用環境變量來控制日志級別。支持的日志級別包括info, warn, error, debug, trace。例如,運行以下命令可以僅記錄錯誤級別的日志信息:

RUST_LOG=error ./rathole config.toml

如果未設置RUST_LOG,默認日志級別為info。

性能調優

從v0.4.7起,rathole默認啟用TCP_NODELAY,這有助于降低延遲,適用于交互式應用程序如rdp和Minecraft服務器。如果帶寬更重要,可以通過設置nodelay = false來禁用此選項。

性能基準

rathole的延遲與frp相近,但可以處理更多的連接,提供更大的帶寬,并且內存使用更少。

然而需注意,rathole不能神奇地使轉發服務的速度比以前快數倍。基準測試是在本地回環上進行的,主要展示的是CPU受限情況下的性能。如果網絡不是瓶頸,則會帶來不小的提升。不幸的是,這種情況對于許多用戶來說并不常見。這種情況下,主要的好處是較低的資源消耗,而帶寬和延遲可能不會顯著改善。

總結

通過本文介紹,您應該對rathole有了深入的了解。作為一個基于Rust開發的高性能反向代理工具,rathole在性能和資源消耗上具有顯著優勢,并且提供了靈活的配置方式和優秀的安全性選擇。如果您正在尋找一種新型的解決方案來替代frp或ngrok,rathole無疑是一個值得嘗試的選擇。

責任編輯:武曉燕 來源: Rust開發筆記
相關推薦

2020-10-13 18:09:22

開發框架開源

2023-12-12 13:50:00

代碼業務狀態

2021-10-27 11:29:32

框架Web開發

2024-12-23 06:10:00

RustRigAI Agent

2020-06-19 15:38:08

分析工具GoatCounter開發

2025-06-27 10:41:04

Redis數據庫集群

2024-01-03 07:42:49

分割模型高性能

2025-01-26 15:44:29

2022-06-01 09:28:43

??Umami??開源

2017-10-11 16:12:19

內存

2023-09-08 00:07:41

2011-10-11 15:54:57

2011-10-11 20:06:08

2021-12-13 16:43:04

鴻蒙HarmonyOS應用

2018-11-12 12:17:00

2011-08-31 16:37:51

Nginx

2020-11-11 12:13:59

JS

2024-07-22 15:34:25

2010-06-12 18:00:16

ARP協議

2018-12-03 08:42:02

反向代理層DNS輪詢架構
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲麻豆| 日韩精品在线视频免费观看 | 成人午夜黄色 | 欧美日本在线观看 | 欧美一级欧美三级在线观看 | 一区二区久久 | 国产精品日韩高清伦字幕搜索 | 精品久久久久久久 | 欧美国产大片 | 国产91av视频 | 亚洲高清视频在线 | 91精品国产综合久久久久久丝袜 | 久操国产| 日日夜夜天天干 | 国产成人久久精品一区二区三区 | 日韩午夜一区二区三区 | 麻豆91精品91久久久 | 国产欧美一区二区三区在线播放 | 欧美成人免费在线视频 | 国产欧美久久一区二区三区 | 久久久精品视频免费 | 人人九九精 | 国产精品亚洲视频 | 一区二区三区在线电影 | 亚洲第一色站 | 情侣酒店偷拍一区二区在线播放 | 午夜网站视频 | 久久er99热精品一区二区 | 亚洲综合成人网 | 国产一区亚洲 | 国产成人精品午夜 | 一级片在线视频 | 中文在线一区二区 | 国产做a爱片久久毛片 | 91成人在线| 午夜精品在线观看 | 日韩免费高清视频 | 亚洲国产激情 | 欧美在线一区二区视频 | 天天草视频| 浴室洗澡偷拍一区二区 |