rathole内网穿透个人食用

QQ截图20220107173955.png

1.rathole是什么

安全、稳定、高性能的内网穿透工具,用 Rust 语言编写

rathole,类似于 frpngrok,可以让 NAT 后的设备上的服务通过具有公网 IP 的服务器暴露在公网上。

github 项目地址https://github.com/rapiz1/rathole
官方中文文档https://github.com/rapiz1/rathole/blob/main/README-zh.md
配置示例https://github.com/rapiz1/rathole/tree/main/examples
systemdhttps://github.com/rapiz1/rathole/tree/main/examples/systemd

特点:相比FRP,具有高性能 具有更高的吞吐量,高并发下更稳定低资源消耗 内存占用远低于同类工具

2.服务端配置

新建 systemd

vim  /usr/lib/systemd/system/ratholes.service		# centos
vim /etc/systemd/system/ratholes.service		# debian 系
[Unit]
Description=Rathole Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/rathole -s /etc/rathole/rathole.toml
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

下载二进制文件:https://github.com/rapiz1/rathole/releases
我是用的X86选择 rathole-x86_64-unknown-linux-musl.zip
下载解压添加执行权限移动到/usr/bin/

unzip rathole-x86_64-unknown-linux-musl.zip
chmod +x rathole
mv rathole /usr/bin/rathole
创建目录和配置文件
mkdir  /etc/rathole
touch /etc/rathole/rathole.toml

服务端简单配置
vim /etc/rathole/rathole.toml

# server.toml
[server]
bind_addr = "0.0.0.0:2333" # `2333` 配置了服务端监听客户端连接的端口

[server.services.my_nas_ssh]
token = "use_a_secret_that_only_you_know" # 用于验证的 token
bind_addr = "0.0.0.0:5202" # `5202` 配置了将 `my_nas_ssh` 暴露给互联网的端口

之后重新加载单元

systemctl daemon-reload  
systemctl start ratholes #启动
systemctl status ratholes #查看状态
systemctl enable ratholes #开机自启动

3.客户端配置

新建 systemd

vim /usr/lib/systemd/system/ratholec.service # centos 
vim /etc/systemd/system/ratholec.service # debian 系
[Unit]
Description=Rathole Client Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/rathole -c /etc/rathole/rathole.toml
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

客户端简单配置
vim /etc/rathole/rathole.toml

[client]
remote_addr = "myserver.com:2333" # 服务器的地址。端口必须与 `server.bind_addr` 中的端口相同。
[client.services.my_nas_ssh]
token = "use_a_secret_that_only_you_know" # 必须与服务器相同以通过验证
local_addr = "127.0.0.1:22" # 需要被转发的服务的地址

之后重新加载单元

systemctl daemon-reload  
systemctl start ratholec #启动
systemctl status ratholec #查看状态
systemctl enable ratholec #开机自启动

本文由:星际难民
实践,测试,整理发布.如需转载请注明地址 本文标题:rathole内网穿透个人食用
地址:https://530503.xyz/articles/2022/01/07/1641549251612.html

评论

  1. 今天把frp替换了,目前感觉挺好

取消