frp设置
本文以 ssh 为例,简单介绍基于 frp 的内网穿透的方法。
frp
为了使我们能在其他地方访问在家/公司的内网中的设备,我们需要使用内网穿透工具。最有名的就是 frp。
项目地址:https://github.com/fatedier/frp
服务端/有公网
1 | |
这个 7000 端口是用来给 frp 通信的,并不是端口映射
然后启动服务端
./frps -c ./frps.toml
客户端/无公网
1 | |
启动客户端
./frpc -c ./frpc.toml
测试 frp 连接
在不关闭服务端和客户端的 bash 界面的情况下,运行以下命令
ssh -oPort=6000 test@xx.xx.xx.xx
如果返回 timeout 或者 connection refused 的话,可能是某个 bash 关闭了或者防火墙的问题
可以使用sudo ufw status来查看端口开放状态。可以运行下面的命令开放特定端口
1 | |
进阶设置/开机自启
在服务端和客户端的 frp 的文件夹中,分别编写脚本frps.sh与frpc.sh,里面编写启动命令
在/etc/systemd/system中,分别创建文件frps.service与frpc.service
这里以frps.service为例
1 | |
如果脚本里就是用绝对路径写的,WorkingDirectory 可以不写
1 | |
frps.service的开机自启也是类似,但经过测试发现,如果一开机就启动可能会因为网络未完全连接而失败。
使用systemctl status my-service.service命令查看状态,可以看到类似 time out/connection failed 的报错。
经测试,设置开机后 10 秒再启动,服务即可正常运行。
1 | |
现在,在 windows 中,可以通过 powershell 命令来连接到主机
1 | |
frp设置
https://0kitasan.github.io/2024/01/30/2024-01-30-frp设置/