使用Sakura frp进行内网穿透

简介

sakura frp是一款不错的免费(限量)内网穿透服务。没有多余的广告,轻度使用流量完全足够,文档详细,windows、linux下配置都很方便。

如果自己有空闲的服务器,可以搭建nps,否则使用sakura frp的服务也是很不错的

注意!:虽然有TCP隧道,但是不支持http协议。单独使用http协议需要备案,aria2RPC需要用到http协议,这里坑了好久!

注册

官方网站 免费用户5条隧道,每天签到随机获得1-4GB流量 有些节点需要1元实名认证才可使用

使用

转到穿透>隧道列表新建隧道,一般ssh用127.0.0.1:22,aria2用127.0.0.1:6800,当然也可以穿透其他内网主机

配置(windows)

转到穿透>软件下载下载客户端登陆即可。 获取token方式: 4UfuHP.png

配置(linux)

参考帮助文档

下载软件

一般来说都是amd64架构(一般的intel、amd处理器),可以参考以下配置:

sudo -i //转到root
cd /usr/local/bin
wget -O frpc https://getfrp.sh/d/frpc_linux_amd64 //下载并重命名为frpc
chmod 755 frpc //赋权

设置systemd

nano /lib/systemd/system/frpc@.service //用nano编辑,没有下载就apt-get或yum

输入以下内容并保存

[Unit]
Description=SakuraFrp Service
After=network.target

[Service]
Type=idle
User=nobody
Restart=on-failure
RestartSec=60s
ExecStart=/usr/local/bin/frpc -f %i

[Install]
WantedBy=multi-user.target

执行下面的命令重载 Systemd,这样服务就配置完成了

systemctl daemon-reload

请记住后续操作中用到的 Unit 名称 是 frpc@<启动参数>,例如 frpc@wdnmdtoken666666:12345

开启隧道

启动/停止隧道非常简单,使用下面的命令即可,start 是启动,stop 是停止

systemctl <start|stop> <Unit名称>

如果您想开启多条不同隧道,只要更换 Unit 名称 中的启动参数并多次执行对应的指令即可

举个例子,开启访问密钥为 wdnmdtoken666666 的用户所拥有的 ID 为 12345 的隧道:

systemctl start frpc@wdnmdtoken666666:12345 

获取token可查看win配置相关内容

查看隧道状态

您可以通过下面的命令查看服务状态

systemctl status <Unit名称>

举个例子,要查看上面开启的隧道状态可以使用

systemctl status frpc@wdnmdtoken666666:12345

绝对不要 开启重复的隧道,这会造成出现各种不可预计的 Bug 执行多次 systemctl start 是 安全 的 配置好 Systemd 后,不要 再用 frpc -f <启动参数> 的形式开启隧道

如果您忘记了之前开启过哪些隧道,使用下面的命令可以列出当前运行中的隧道

systemctl list-units frpc@*

请输入图片描述

查看隧道日志

您可以通过下面的命令查看隧道日志:

journalctl -u <Unit名称>

举个例子,要查看上面开启的隧道状态可以使用

journalctl -u frpc@wdnmdtoken666666:12345

如果当前窗口无法显示所有日志,可以用 ↑、↓ 方向键滚动,输入大写的 G 跳转动到日志底部,输入 q 退出日志查看。更多使用方法请参阅 man journalctl。

主要是查看远程端口和域名信息 4UovcD.png

设置自启

装好服务后,实现开机自启非常简单,回顾一下前置知识

我们只要 启用 服务就可以实现开机自启 如果不想开机自启了,禁用 服务即可 使用下面的命令启用/禁用服务,enable 是启用,disable 是禁用,操作完成后再用 status 检查一下状态

systemctl <enable|disable> <Unit名称>
systemctl status <Unit名称>

如果一切正常,您会看到我图中的两个红色标注的内容

没看到第一个创建符号链接的提示也是正常的,只要下面的状态显示为 enabled 就行

请输入图片描述

如果您忘记了之前设置过的自启隧道,可以使用下面的命令列出

和上面是类似的,只是多了个 –all 确保停止了的服务也能被列出

systemctl list-units --all frpc@*

错误处理

记得先把目标端口开放